这(zhè)是jocky1.0.3 (原joc) java混(hún)淆器 去除jdk版本限制下载(zǎi),不支(zhī)持现在的1.6、1.7等更高(gāo)版本,现在(zài)我把某部分限制代(dài)码从(cóng)class文件里面去(qù)除了,测试(shì)过可以用,更详细的说明在压缩(suō)包(bāo)里面,希望有其他人能(néng)继续完善后续(xù)工作,或希(xī)望能找到更好的(de)混淆器...免分提(tí)供,请(qǐng)多叫些(xiē)朋友下载几次~~
jocky1.0.3 (原joc) java混淆(xiáo)器 去除jdk版本限制,研究了下jocky1.0.3的(de)使用,发现编译时提示引用(yòng)类库版(bǎn)本不对,捣弄了半(bàn)个小时后(hòu)终于理解,原(yuán)来是我的jdk1.7版本过高,这货是06年的版本,到现在都(dōu)没更新过(guò),支持(限制)的最高版本是5.0(1.5),对应的类文(wén)件版本号是(shì)49....通过逆向编(biān)译找了一(yī)个(gè)晚上,终于发(fā)现源代码中(zhōng)一(yī)段关键(jiàn)判(pàn)断(duàn),但是又发现无法直接(jiē)编译修改(gǎi)过的源文件(引用的(de)类太多..),今天早上(shàng)寻找了下(xià)直(zhí)接(jiē)编辑class文件的方法,在同事帮(bāng)助下把相应(yīng)的字节码段删去了,导入回包里面(miàn),测试了(le)次,貌似运行没啥问题(tí),混淆编译也(yě)过(guò)去(qù)了,把编(biān)译出的class文件逆向看了下,也差(chà)不多(duō)是那个样(yàng)子,名称全部都变掉了,看着有点想吐(tǔ)。
使用jocky的时候,如果你的(de)java文件使(shǐ)用了(le)utf-8编码,而windows默认是utf-8编码(mǎ),可能(néng)会出现"unmappable character for encoding utf-8"错误而导致jocky不能使用的情况(kuàng)。可以通过(guò)修改jocky_build.xml中的javac段,为其添(tiān)加encoding="UTF-8"就可(kě)以解决这个问(wèn)题了。
Jocky混淆编译器是在Sun JDK中提供的Java编(biān)译器(javac)的基(jī)础上完成的,修改了(le)其中的代码(mǎ)生成过程,对编译器生成的(de)中(zhōng)间代码进行(háng)混淆,最后再生成class文件(jiàn),这样(yàng)编译和混淆只(zhī)需要一个步骤就可以完成。另外可以(yǐ)在源程(chéng)序中插(chā)入 符号保留指令(lìng) 来控制哪些符(fú)号(hào)需要保留,将(jiāng)混淆过程与开发过(guò)程融(róng)合在一起,不需(xū)要单独(dú)的配置。
