這是jocky1.0.3 (原joc) java混淆器 去除jdk版本限制下載,不支持現(xiàn)在的1.6、1.7等更高版本,現(xiàn)在我把某部分限制代碼從class文件里面去除了,測(cè)試過可以用,更詳細(xì)的說明在壓縮包里面,希望有其他人能繼續(xù)完善后續(xù)工作,或希望能找到更好的混淆器...免分提供,請(qǐng)多叫些朋友下載幾次~~
jocky1.0.3 (原joc) java混淆器 去除jdk版本限制,研究了下jocky1.0.3的使用,發(fā)現(xiàn)編譯時(shí)提示引用類庫版本不對(duì),搗弄了半個(gè)小時(shí)后終于理解,原來是我的jdk1.7版本過高,這貨是06年的版本,到現(xiàn)在都沒更新過,支持(限制)的最高版本是5.0(1.5),對(duì)應(yīng)的類文件版本號(hào)是49....通過逆向編譯找了一個(gè)晚上,終于發(fā)現(xiàn)源代碼中一段關(guān)鍵判斷,但是又發(fā)現(xiàn)無法直接編譯修改過的源文件(引用的類太多..),今天早上尋找了下直接編輯class文件的方法,在同事幫助下把相應(yīng)的字節(jié)碼段刪去了,導(dǎo)入回包里面,測(cè)試了次,貌似運(yùn)行沒啥問題,混淆編譯也過去了,把編譯出的class文件逆向看了下,也差不多是那個(gè)樣子,名稱全部都變掉了,看著有點(diǎn)想吐。
使用jocky的時(shí)候,如果你的java文件使用了utf-8編碼,而windows默認(rèn)是gbk編碼,可能會(huì)出現(xiàn)"unmappable character for encoding GBK"錯(cuò)誤而導(dǎo)致jocky不能使用的情況?梢酝ㄟ^修改jocky_build.xml中的javac段,為其添加encoding="UTF-8"就可以解決這個(gè)問題了。
Jocky混淆編譯器是在Sun JDK中提供的Java編譯器(javac)的基礎(chǔ)上完成的,修改了其中的代碼生成過程,對(duì)編譯器生成的中間代碼進(jìn)行混淆,最后再生成class文件,這樣編譯和混淆只需要一個(gè)步驟就可以完成。另外可以在源程序中插入 符號(hào)保留指令 來控制哪些符號(hào)需要保留,將混淆過程與開發(fā)過程融合在一起,不需要單獨(dú)的配置。