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