對class文件進(jìn)行加密混淆的類文件,一般情況下,我們是看不到其源代碼的。
這里為您提供的是java class反編譯工具(Class反編譯工具jd-gui)對絕大部分的加密混淆class文件都能很好的做到反編譯,目前大象還沒遇到失敗的情況,大家也可以多測試一下。jadclipse插件體積很小(只有40幾K),和jad完美結(jié)合。大象強(qiáng)烈推薦!
java class反編譯工具使用方法
因?yàn)橹拔覀円呀?jīng)將jad加入到了%JAVA_HOME%\bin中,只要配置了環(huán)境變量,我們就可以在命令行中方便的使用。在這里,大象還是以dom4j-1.6.1.jar為例來說明具體的操作步驟。
解壓dom4j-1.6.1.jar和jaxen-1.1-beta-7.jar。為了方便,我將JAR包解壓放到F盤根目錄,在cmd中,進(jìn)入到F盤根路徑下,輸入命令:jad -o -r -s java -d src org/**/*.class
我解釋一下這些參數(shù)的含義:
-o:覆蓋舊文件,而且不用提示確認(rèn)。
-r:重新加載生成包結(jié)構(gòu)。
-s:定義輸出文件的擴(kuò)展名。jad為默認(rèn)擴(kuò)展名,我們反編譯后當(dāng)然是要.java源文件了。
-d:輸出文件的目錄。src表示反編譯后的所有文件都放在src目錄下。
org/**/*.class:org是解壓后的文件夾的名字,整個(gè)表示org目錄下的所有class文件。你也可以寫成這樣**/*.class,這表示當(dāng)前目錄及其子目錄下所有的class文件(包含所有的子目錄)。
反編譯dom4j-1.6.1.jar必須得有jaxen-1.1-beta-7.jar,因?yàn)閐om4j里面有對xpath的調(diào)用,而這些東西都是引用jaxen里的API,如果不加則會(huì)有這樣的錯(cuò)誤:
到此,關(guān)于反編譯的內(nèi)容全部說完了,不過我還想補(bǔ)充一點(diǎn),有可能JAR包中的class文件不是老外的,而是我們自己寫的,里面可能會(huì)有中文的情況,這時(shí),雖然反編譯通過了,但里面卻是gb2312形式的unicode編碼,因此我們還得做一個(gè)工作,將這些編碼轉(zhuǎn)換成中文。
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版