工具簡介
APK反編譯的工具網(wǎng)上有很多,我先是用了一個叫apkdb的,雖然簡單,但不好用,所以就改用下邊這套工具了:
apktool 作用:可以查看圖片和布局等資源文件;
dex2jar 作用:將apk中classes.dex文件轉(zhuǎn)化成 jar文件;
jd-gui 作用:查看由APK中classes.dex轉(zhuǎn)化出的jar文件,即源碼文件;
工具使用前提
必須已經(jīng)安裝了JDK;
使用方法
- apktool的使用:
進入CMD命令界面,cd到[圖片上傳中...(QQ截圖20180531201838.png-1f81d0-1527772876802-0)]
apktool工具所在目錄,并輸入:java -jar apktool_2.0.1.jar d -f E:\AndroidDevelopTool\Android反編譯工具包\測試apk\MMTS-release-1.0.2.apk -o MMTS
命令說明:這個命令是啟動apktool_2.0.1.jar將位于【E:\AndroidDevelopTool\Android反編譯工具包\測試apk\】目錄下的"MMTS-release-1.0.2.apk"這個apk反編譯,然后將反編譯生成的文件存放到當前目錄(apktool_2.0.1.jar所在的目錄,也就是"E:\AndroidDevelopTool\Android反編譯工具包"目錄)下的一個【MMTS】文件夾中。打開MMTS文件夾,就可以看到反編譯后的生成的文件了。

apktool的使用圖.png
- dex2jar的使用:
1.將要反編譯的APK后綴名改為.rar或者 .zip,并解壓,得到其中的classes.dex文件(它就是java文件編譯再通過dx工具打包而成的);
2.將獲取到的classes.dex放到之前解壓出來的工具【dex2jar-2.0】文件夾內(nèi);
3.在cmd命令行下定位到dex2jar.bat所在目錄,輸入"d2j-dex2jar classes.dex";
4.在dex2jar.bat同級目錄中,會生成.jar文件;

dex2jar使用結(jié)果圖.png
-
jd-gui反編譯.class文件,得到java源代碼:
1.運行jd-gui.exe文件;
2.將生成的.jar文件拖拽到jd-gui的主界面;注意:運行jd-gui.exe時,可能會報錯This application requires a Java Runtime Environment 1.7.0,此時若是你已經(jīng)安裝了jdk,并且也配好了環(huán)境,那么您是否是先安裝的jdk,之后又重新安裝了電腦系統(tǒng)呢?這就會導致注冊表中沒有java的相關(guān)信息,而有些程序是直接通過讀取注冊表判斷 java 版本及相關(guān)信息的,所以對于這樣的情況,解決方法有3種:
- 重新動安裝一遍JDK;
- 直接使用現(xiàn)有的java工具打開.exe程序: 在cmd命令行下定位到jd-gui.exe所在目錄(或按住Shift鍵,右擊空白處,點選”在此處打開命令窗口”, ),并執(zhí)行java -jar jd-gui.exe(文件名,含后綴) ;
- 手動增加注冊表信息,一勞永逸 :win + r, 輸入regedit,然后新建相關(guān)項,并新建相應字符串值,如下:
項:[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
字符串值:"CurrentVersion"="1.8"
項:[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8]
字符串值:"JavaHome"="D:\Java\jdk1.8.0_64\jre"

注冊表配置.png
???? 最后正常運行jd-gui.exe文件,并導入.jar文件即可;

jd-gui反編譯結(jié)果圖.png
- 反編譯使用總結(jié):dex2jar、jd-gui都需要解壓后使用,apktool、dex2jar需要借用cmd窗口使用,jd-gui可直接運行(注冊表中已注冊),也可以借用cmd窗口通過java啟動使用;
相關(guān)網(wǎng)址推薦:https://blog.csdn.net/s13383754499/article/details/78914592