Java反編譯Jar包和Android APK(類似.NET Reflector)


JD-GUI

這個JD-GUI可以反編譯jar包,用法就是打開jar包直接瀏覽。

 

JD-Eclipse

JD-Eclipse是個Eclipse插件,安裝方法是打開Eclipse,菜單 Help – > Install new software… 輸入 http://java.decompiler.free.fr/jd-eclipse/update,然后一路安裝即可。然后行會亂掉,需要安裝另外一個插件:Realignment for JD-Eclipse, 下載了以后復制到Eclipse的plugin目錄下,重啟。然后配置默認打開方式:Eclipse,菜單 Window – > Preference – General – Editors – File Association – *.class,設置Realignment for JD Class File Editor為Default。保存即可。

在Eclipse新建一個項目,新加一個目錄叫lib,然后從機器上拷貝所有需要反編譯的jar包,點那個目錄右鍵:粘貼。設置項目的compile path把那些jar加到libraries里面,這樣就可以打開每個jar包了。還能跳轉。

 

JAD Command

首先下載Jad.exe,這個是個批處理命令行工具,沒有界面的,而且只能處理.class文件。你可以把所有的jar包用winrar或者7z先解壓到一個目錄叫classes,然后寫個bat批處理文件內容如下:

jad.exe -r -ff -d src -s java classes/**/*.class

這樣就會反編譯為*.java文件了。當然,壞處就是目錄沒了。

 

 

如果是對大量的jar包(假設在jars目錄下面)進行批量處理可以這樣:

 

1. 全選jars目錄下面所有jar包,然后右鍵選擇7z解壓:解壓到*\
2. 這樣就可以把所有jar包解壓到以jar包文件同名的目錄里面
3. 然后在系統環境變量注冊path:把當前jad路徑注冊進去
4. 然后cmd運行腳本:jad -r -sjava jars/**/*.class
   運行之前chdir /d 到 jars目錄平級目錄
5. 這樣就可以全部批量反編譯為*.java並原有目錄結構不會破壞。
6. 這樣可以在Notepad++里面可以用文件查找對文件進行搜索

 

 

 

Android APK的反編譯

第一步是把apk重命名為zip並解壓,然后用dex2jar處理其中的classes.dex。方法是將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄,運行dex2jar.bat    classes.dex,生成classes.dex.dex2jar.jar,運行JD-GUI(jd-gui.exe),打開上面生成的jar包,即可看到源代碼了。如果要處理里面的資源文件、配置文件、圖片等,可以用apktool這個工具。

 

反編譯以后的編譯

即使你得到了所有的*.java文件,可能還是不能正常編譯,因為不清楚各個項目之間的依賴關系,而且還有資源文件、配置文件等。總之,越大的項目,越混淆的項目,越難搞定。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM