banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

macOS如何反編譯APK查看其源碼

需要用到的工具

查看 apktool 版本

 apktool --version

image

Mac 安裝 dex2jar

 brew install dex2jar

第一步 Apktool 反編譯 APK 文件

 apktool d xxx.apk

image

從 apktool 中可以查看 apk 的一些源碼文件,通過這種方式反編譯的只能看 smali 源碼。

image.png

第二步 dex2jar 將 dex 反編譯為 jar

將 apk 文件後綴變為 zip 壓縮包後綴。

image

解壓 zip 文件得到 dex 後綴的文件,然後通過 dex2jar 將 dex 文件轉成 jar 文件。

 d2j-dex2jar classes.dex

image

或者直接下載dex2jar,然後執行

sh d2j-dex2jar.sh classes.dex

如果編譯失敗,顯示版本問題,需要修改 dex 文件頭的版本。

image

dex 文件頭中的 magic 字段是一個 8 個字節的固定字符數組,表示 dex 文件的類型和版本。以下是不同版本的 dex 文件頭中的 magic 字段內容:

・Android 1.0 版本和 1.1 版本:dex 035
・Android 1.5 版本:dex 035
・Android 1.6 版本:dex 036
・Android 2.0 到 2.3.7 版本:dex 035
・Android 3.0 到 3.2.6 版本:dex 036
・Android 4.0 到 4.0.4 版本:dex 035
・Android 4.1 到 4.4.4 版本:dex 036
・Android 5.0 到 6.0.1 版本:dex 037
・Android 7.0 到 7.1.2 版本:dex 038
・Android 8.0 及以上版本:dex 039

得到 jar 文件後,便可通過 jd-gui 查看 jar 代碼

第三步 JD-GUI 查看 jar 代碼

image

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。