如果不熟悉的可以搜索下JRebel/JavaRebel,这里是官方网站:
www.zeroturnaround.com。
最近刚发布了4.0版本,功能更强大,配置也更加简单了。价格不菲。
官方提供30天试用版,可以先体验下再决定是否购买。
看到里面的代码混淆让我很崩溃,没有深入研究混淆后的运行机制。比如下面居然有两个名称相同,参数相同,但是返回值不同的静态方法,不知是如何执行的。
public static void a(String s)和 public static String a(String),以及
private static void c()和private static String c()。
猜测是在运行的时候自己进行JVM指令的执行。这样的代码反编译后都不知道怎么写回去,想到崩溃,因为两个方法居然都有地方调用了。
好吧,翻出08年写的JavaRebel 2.0-M1的破解程序,重新生成一个license文件,修改公钥,替换license文件,居然运行正常。这么多年了,签名算法和步骤居然一点都没变,嗯,人家真执着!
当然是无限制版,所有功能可用,也没有时间限制。
破解思路很简单,替换公钥,使用自己私钥生成签名License文件。
如果想屏蔽版本更新提示,有以下几种思路:
(1)修改调用更新坚持的类(难道有点大,因为混淆比较严重,不容易反编译)
(2)修改更新服务器的地址,将http://update.zeroturnaround.com/jrebel/ 地址修改,可以使用二进制工具直接修改字符串,比如我就将update改为updatt,无法解析域名就不能获取最新版本了。
(3)增加-Drebel.disable_update=true参数即可。(这种方法最简单)。
好吧,架不住国人的热情,这里是下载地址,需要翻X,你懂得!http://dl.dropbox.com/u/22951342/jrebel.jar