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, 下載了以后復(fù)制到Eclipse的plugin目錄下,重啟。然后配置默認打開方式:Eclipse,菜單 Window – > Preference – General – Editors – File Association – *.class,設(shè)置Realignment for JD Class File Editor為Default。保存即可。
在Eclipse新建一個項目,新加一個目錄叫l(wèi)ib,然后從機器上拷貝所有需要反編譯的jar包,點那個目錄右鍵:粘貼。設(shè)置項目的compile path把那些jar加到libraries里面,這樣就可以打開每個jar包了。還能跳轉(zhuǎn)。
?
JAD Command
首先下載Jad.exe,這個是個批處理命令行工具,沒有界面的,而且只能處理.class文件。你可以把所有的jar包用winrar或者7z先解壓到一個目錄叫classes,然后寫個bat批處理文件內(nèi)容如下:
jad.exe -r -ff -d src -s java classes/**/*.class
這樣就會反編譯為*.java文件了。當然,壞處就是目錄沒了。
?
?
如果是對大量的jar包(假設(shè)在jars目錄下面)進行批量處理可以這樣:?
1. 全選jars目錄下面所有jar包,然后右鍵選擇7z解壓:解壓到*\
2. 這樣就可以把所有jar包解壓到以jar包文件同名的目錄里面
3. 然后在系統(tǒng)環(huán)境變量注冊path:把當前jad路徑注冊進去
4. 然后cmd運行腳本:jad -r -sjava jars/**/*.class
?? 運行之前chdir /d 到 jars目錄平級目錄
5. 這樣就可以全部批量反編譯為*.java并原有目錄結(jié)構(gòu)不會破壞。
6. 這樣可以在Notepad++里面可以用文件查找對文件進行搜索
?
?
Android APK的反編譯
第一步是把apk重命名為zip并解壓,然后用dex2jar處理其中的classes.dex。方法是將classes.dex復(fù)制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄,運行dex2jar.bat??? classes.dex,生成classes.dex.dex2jar.jar,運行JD-GUI(jd-gui.exe),打開上面生成的jar包,即可看到源代碼了。如果要處理里面的資源文件、配置文件、圖片等,可以用apktool這個工具。
?
反編譯以后的編譯
即使你得到了所有的*.java文件,可能還是不能正常編譯,因為不清楚各個項目之間的依賴關(guān)系,而且還有資源文件、配置文件等。總之,越大的項目,越混淆的項目,越難搞定。
轉(zhuǎn)載于:https://www.cnblogs.com/Mainz/archive/2012/04/13/2446419.html
總結(jié)
以上是生活随笔為你收集整理的Java反编译Jar包和Android APK(类似.NET Reflector)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电子商务(六)-作业题解-第3章
- 下一篇: android 地图服务开发 INSTA