JetBrains IDEA破解原理学习

JetBrains IDEA激活成功教程原理学习JetBrains IDEA 激活成功教程原理学习 IDEA 激活成功教程原理学习 背景 我下载的 IntelliJ IDEA 2023 2 1 Ultimate Edition 版本 采用这篇文章中的方式 IDEA 激活到 2099 年 激活的基本思路是采用 Java Agent 技术拦截注册验证逻辑 绕过服务端 告诉客户端自己是合法的 本文主要分析拦截了哪些点 做了什么修改 但是不包括激活注册码的生成

大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说JetBrains IDEA激活成功教程原理学习,希望您对编程的造诣更进一步.

JetBrains IDEA激活成功教程原理学习

IDEA激活成功教程原理学习

背景

我下载的 IntelliJ IDEA 2023.2.1 (Ultimate Edition)版本,采用这篇文章中的方式 IDEA 激活到 2099 年。

有图为证

激活的基本思路是采用 Java Agent 技术拦截注册验证逻辑,绕过服务端,告诉客户端自己是合法的。本文主要分析拦截了哪些点,做了什么修改,但是不包括激活注册码的生成。

初步分析

从教程中看核心的一步是增加了 IDEA JVM 启动时参数-javaagent:/Users/[user]/tools/jihuo-tool-2099/active-agt-idea.jar,可以确定采用的是 Java Agent 拦截技术。

为了搞清楚 Java Agent 中做了什么,使用 JD-GUI 反编译 jihuo-tool-2099 目录下 jar 文件。

从反编译后的源文件看,使用的是 janetfilter 包。

从网上搜索了一下,janetfilter 来自https://ja-netfilter.com,来自一位@pengzhile的大佬,但是这个网站貌似已经不能访问了。知乎有一个大神从框架和字节码层面对代码做了比较细致的分析。

github 上 ja-netfilter 代码仓库插件部分不全,gitee 上找到一个比较全的(@pengzhile 大神的),于是 fork 出来几个项目看源码。

序号

模块

介绍

1

https://gitee.com/shidongwa/ja-netfilter

JVM Options 加载的 java agent

2

https://gitee.com/shidongwa/plugin-power

插件:激活验证码时非对称加解密

3

https://gitee.com/shidongwa/plugin-dns

插件:屏蔽 jetbrains.com

4

https://gitee.com/shidongwa/plugin-url

插件:屏蔽https://account.jetbrains.com/lservice/rpc/validateKey.action

5

config 目录下的*.conf

插件配置包括 url,dns 和 power

进阶

Java Agent

这部分对了解 Java Agent 的同学来说比较好理解,在 IDEA 启动时 main 主流程执行前通过 Java Agent premain 加载 ja-netfilter 框架和插件;注册码激活阶段,url、dns 和 power 插件 hook 点产生拦截,改写原有的验证逻辑。这部分功能还是比较透明的,主要逻辑在 ja-netfilter 项目中。了解 Java Agent、ClassFileTransformer、ASM 的同学来说不是难事。

hook 点

主要定义在 plugin-url,plugin-dns 和 plugin-power 三个项目中。

插件

hook 点

hook 逻辑简介

url

sun/net/www/http/HttpClient.openServer

验证注册码时拦截返回 SocketTimeoutException

dns

java/net/InetAddress.getAllByName 和 isReachable

拦截返回 java.net.UnknownHostException 和 jetbrains.com 域名不可达

power

java/math/BigInteger.oddModPow

拦截幂指数取模方法,非对称加解密用到

拦截域名和激活网站的访问

以 url 插件为例,hook 逻辑拦截了 sun/net/www/http/HttpClient 类 openServer 调用。从 HttpClient 类中获取 url 属性,作为参数调用 URLFilter.testURL 方法,如果和 url.conf 配置的验证地址匹配,直接返回 SocketTimeoutException 异常终止检查流程。假设我是正版用户,现在本地上不了网,你总不能禁止我用 IDEA 吧?

采用 ASM 在方法入口处插入字节码

翻译后的字节码逻辑

字节码中调用的方法逻辑

url.conf

拦截激活逻辑

url 和 dns 插件都比较好理解,核心是 power 这个插件逻辑是黑盒。power 的配置 conf 和激活码有关。

贴一下 power.conf 配置感受一下。power 插件通过拦截 java/math/BigInteger 的 oddModPow 方法(幂指取模,非对称加解密用到),通过匹配到几个大数参数后,直接返回结果大数。配置中这几个大数都是黑盒,猜测和提供的激活码是一一对应的。

配置和激活码

用 gitee 或者 github 中的项目编译生成 jar 包加上https://blog.idejihuo.com/jetbrains/intellij-idea-2023-1-3-activation-code-cracking-to-2099.html中的配置和激活码IDEA并不能启动成功。猜测jar包+配置+激活码必须要匹配。

前文中提到的@pengzhile 大佬个人网站有很多原始资料。这篇博文中其实提到了如何获取完整 jar 包+配置+激活码。我试了一下,可以用。文中提到的热心大佬很神秘,另外一个中本聪?

框架和插件扩展

ja-netfilter 设计时考虑了扩展性,通过自定义插件和配置,GoLand、PyCharm、DataGrip 等都可以采用同样的思路激活。

总结

本文学习了 Java Agent 拦截绕过 Jetbrains 注册流程。如果你对 Java Agent,ASM 字节码不感兴趣,只对激活 IDEA 感兴趣的话,有两种方式获取(亲测都可用)。

激活到 2099 年

激活到 2025 年,动态更新。随便点开一个网站,下载 jar 和配置,提取激活码

免责声明

如果您觉得本程序好用,建议您立即删除本程序并购买正版;本项目只做个人学习研究之用,不得用于商业用途!

编程小号
上一篇 2026-04-02 11:30
下一篇 2026-04-02 09:29

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://daima100.com/post/2384.html