Mac下對Android apk反編譯

在Mac上進行反編譯apk,需要三個工具,分別為(附下載地址):

  1. apktool,下載Mac版
    • 作用:資源文件獲取,能夠提取出圖片文件和布局文件進行使用查看
  2. dex2jar,下載最新的即可,目前是2.0版
    • 作用:將apk反編譯成java源代碼(classes.dex轉(zhuǎn)化成jar文件)
  3. jd-gui,下載Mac版,jd-gui-osx-1.4.0.tar
    • 作用:查看APK中classes.dex轉(zhuǎn)化成出的jar文件,即源代碼文件

安裝

一、apktool

  1. 將下載的apktool_xx.jar(apktool_xx.jar重命名為apktool.jar)和apktool.txt(apktool.txt重命名為apktool)
    • 可以直接右鍵重命名
    • 也可以再命令行輸入,例如:mv ./apktool.txt ./apktool
  2. 給予這兩個文件,可讀可寫可執(zhí)行的權(quán)限,chmod +x apktool.jarchmod +x apktool
  3. 將兩個文件(apktool.jar&apktool)移動到/usr/local/bin(需要root)sudo mv apktool.jar&apktool /usr/local/bin/
  4. 然后apktool -v,出現(xiàn)如下信息代表成功了
~ apktool -v
Apktool v2.3.4 - a tool for reengineering Android apk files
with smali v2.2.2 and baksmali v2.2.2
Copyright 2014 Ryszard Wi?niewski <brut.alll@gmail.com>
Updated by Connor Tumbleson <connor.tumbleson@gmail.com>

二、dex2jar

  1. 解壓,tree看一下大致目錄結(jié)構(gòu)
  2. 給予這兩個文件,可讀可寫可執(zhí)行的權(quán)限,chmod +x d2j-dex2jar.sh,chmod +x d2j_invoke.sh
.
├── d2j-baksmali.bat
...(省略)
├── d2j_invoke.sh
└── lib
    ├── antlr-runtime-3.5.jar
    ├── asm-debug-all-4.1.jar
    ├── d2j-base-cmd-2.0.jar
    ├── d2j-jasmin-2.0.jar
    ├── d2j-smali-2.0.jar
    ├── dex-ir-2.0.jar
    ├── dex-reader-2.0.jar
    ├── dex-reader-api-2.0.jar
    ├── dex-tools-2.0.jar
    ├── dex-translator-2.0.jar
    ├── dex-writer-2.0.jar
    └── dx-1.7.jar

1 directory, 32 files

三、jd-gui

  1. 下載后解壓即可
  2. 如果是最新的Mac OS系統(tǒng),可能會出現(xiàn)打不開的情況,是因為java版本問題,java -version查看當前版本,我電腦上java version "9.0.4"
  3. 最新的Mac OS系統(tǒng),主要原因是使用的是jdk 1.9 ,而jd-gui使用的是jdk 1.8。所以我們需要安裝在mac上安裝java8,按照網(wǎng)上安裝java教程,不用更多設(shè)置java8路徑等等
  4. 右鍵jd-gui.app,顯示包內(nèi)容,用你常用的文本編輯器打開Info.plist文件,修改<key>JVMVersion</key> <string>1.7+</string>這一行<key>JVMVersion</key> <string>1.8</string>,保存后退出
  5. 基本所有的安裝就結(jié)束了

反編譯開始

  1. apktool d -s ./xx.apk,執(zhí)行成功后,會在當前目錄下生成一個 xx文件夾,點擊去就看到相關(guān)apk的資源文件了,拿到其中的classes.dex。
  2. sh dex2jar.sh classes.dex,執(zhí)行成功后會生成一個classes_dex2jar.jar文件
  3. 打開jd-gui,把上面的java包拖進去,然后再就可以導(dǎo)出java源代碼了
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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