apk反編譯

工具簡介

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種:

    1. 重新動安裝一遍JDK;
    2. 直接使用現(xiàn)有的java工具打開.exe程序: 在cmd命令行下定位到jd-gui.exe所在目錄(或按住Shift鍵,右擊空白處,點選”在此處打開命令窗口”, ),并執(zhí)行java -jar jd-gui.exe(文件名,含后綴) ;
    3. 手動增加注冊表信息,一勞永逸 :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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 處理反編譯,首先先要了解apk文件的結(jié)構(gòu),然后是編譯過程,最后是反編譯。反編譯Apk的目的就是Apk拆成我們...
    yzzCool閱讀 5,901評論 0 8
  • apk是安卓工程打包的最終形式,將apk安裝到手機或者模擬器上就可以使用APP。反編譯apk則是將該安卓工程的源碼...
    隋胖胖LoveFat閱讀 67,221評論 6 56
  • 作為一名客戶端開發(fā)者,在使用別人Android應用的時候,你可能會遇到一些你覺得非常不錯或者精致的布局、動畫,你想...
    愛情小傻蛋閱讀 1,477評論 2 1
  • 1. 為什么要反編譯? 場景一 產(chǎn)品經(jīng)理:xxx,反編譯xxx的播放器,看看他們是怎么實現(xiàn)的? 場景二 測試:這個...
    傷口不該結(jié)疤閱讀 12,462評論 7 51
  • 在學習Android開發(fā)的過程你,你往往會去借鑒別人的應用是怎么開發(fā)的,那些漂亮的動畫和精致的布局可能會讓你愛不釋...
    AiPuff閱讀 2,919評論 0 9

友情鏈接更多精彩內(nèi)容