Mac下搭建 Android 反編譯環(huán)境

需要安裝的工具如下:apktool、dex2jar、jd-gui

Apk介紹

一個Android應(yīng)用程序的代碼想要在Android設(shè)備上運行,必須先進行編譯,然后被打包成為一個被Android系統(tǒng)所能識別的文件才可以被運行,而這種能被Android系統(tǒng)識別并運行的文件格式便是“APK”。

一個APK文件內(nèi)包含被編譯的代碼文件(.dex 文件),文件資源(resources), assets,證書(certificates),和清單文件(manifest file)。

APK 文件基于 ZIP 文件格式,它與 JAR 文件的構(gòu)造方式相似。它的互聯(lián)網(wǎng)媒體類型是:application/vnd.android.package-archive

工具介紹

  • apktool

    apktool 是 Google 提供的 Apk 編譯工具,能夠編譯和反編譯 apk。

    apktool 的介紹和使用

  • dex2jar

    dex2jar 是一個能將 .dex 文件轉(zhuǎn)化成 .jar 文件的工具集

  • jd-gui

    jd-gui 是一個獨立的圖形實用程序,可顯示“.class”文件的Java源代碼應(yīng)用。

安裝

如果嫌棄一個個官網(wǎng)下麻煩的可以直接使用下面的地址

百度網(wǎng)盤地址

Apktool 的版本為 2.3.3

dex2jar 的版本為 2.0

jd-gui 的版本為 1.4.0

安裝 apktool

apktool官網(wǎng)下載地址

  1. 檢查 jdk 是否安裝
  2. Mac OS X 下安裝
    1. 下載Mac包裝器腳本(右鍵單擊,將鏈接另存為apktool
    2. 下載apktool
    3. 將下載的jar重命名為 apktool.jar
    4. 將兩個文件(apktool.jarapktool)移動到/usr/local/bin(需要root)
    5. 確保兩個文件都是可執(zhí)行的(chmod +x
    6. 嘗試apktool通過命令提示符運行

有了上面的安裝步驟現(xiàn)在我們來安裝吧

  1. 前往官方的下載地址下載我們需要的兩個文件(apktool,apktool.jar)

    1. 下載apktool腳本,修改下載的文件名為 apktool 不加任何后綴名。
    image
    1. 下載 apktool.jar ,下載下來的文件名會帶有版本信息,將下載的jar重命名為 apktool.jar
  2. 將兩個文件移動到 /usr/local/bin

    1. 打卡文件管理系統(tǒng)按 command + shift + g 鍵,最后將文件保存在 /bin 文件夾下面
    image
  3. 確保兩個文件都是可執(zhí)行的(chmod +x

    1. 打開終端,輸入

      chmod +x apktool.jar
      chmod +x apktool
      
  4. 測試 apktool 命令

    1. 在終端中輸入 apktool
    image-20180721143947106

安裝 dex2jar

dex2jar 官方下載地址

這個的安裝很簡單只需要把下載的壓縮文件解壓到你想的文件夾中即可。

安裝 jd-gui

jd-gui 官方下載地址

也是解壓即可

簡單的例子

下面我們?nèi)フ覀€ apk 文件練練手吧。

Apktool 的使用

打開終端

//切換到 apk 所在的目錄
輸入命令 apktool d demo.apk

它會在當前目錄生成一個跟 apk 文件同名的文件夾。

資源文件是有了,那 java 代碼在哪里呢?apktool 只能提取到資源文件,java 代碼還需要另外處理

dex2jar 使用

我們現(xiàn)在把 apk 當成一個壓縮包解壓開來,里面有個 .dex 文件。dex2jar 能把 .dex 文件轉(zhuǎn)化成 .jar 文件

1. 將 apk 中 .dex 文件移動到我們剛剛解壓 dex2jar 安裝的目錄下
2. 終端輸入 sh d2j-dex2jar.sh classes.dex

這時我們會在目錄中看到有個 .jar 文件。

運行 sh d2j-dex2jar.sh classes.dex 如果出現(xiàn)了 Permission denied

只需要終端中運行 chmod +x d2j_invoke.sh 即可

jd-gui 使用

直接打開我們安裝的 JD_GUI.app ,將 .jar 文件拖入應(yīng)用上,我們即可看到 java 代碼了。

image-20180721151415259

到此一個簡單的例子就結(jié)束了

參考

APK 介紹維基百科

Apktool 介紹百度百科

最后編輯于
?著作權(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)容