一烹植、Apktool 安裝
1. 下載
https://ibotpeaches.github.io/Apktool/install/
安裝教程
2.安裝
右鍵“wrapper script” 橡羞,鏈接另存為担租,名字為“apktool”,注意不要有擴展名,這個類似于windows下的bat文件
下載 apktool-2xxx.jar
重命名為“apktool.jar”
把 apktool.jar 和 apktool 移到 /usr/local/bin
4.1 Finder 訪達 /usr/local/bin
4.2 如果顯示“No such file” 或 “文件不存在”鲫构,可以 先訪達到 /usr/local浓恶,然后新建一個bin文件夾即可。在啟動臺中结笨,類似于注冊或者授權(quán)輸入:
cd /usr/local/bin
chmod +x apktool
chmod +x apktool.jar
注意第一步必須包晰,不然會提示找不到apktool 和 apktool.jar在啟動臺中,直接輸入 apktool 炕吸,查看是否展示相關(guān)信息伐憾,有則配置成功颗圣。
二吨娜、dex2jar
https://sourceforge.net/projects/dex2jar/
點擊綠色Download
這個就下載解壓即可,但需要注意一點程癌,需要類似于apktool授權(quán)一樣嘴瓤,在控制臺中調(diào)用 chmod。
常見問題
huangweideMacBook-Pro:dex2jar-2.0 huangwei$ d2j-dex2jar.sh classes.dex
-bash: d2j-dex2jar.sh: command not found
少了 sh
huangweideMacBook-Pro:dex2jar-2.0 huangwei$ sh d2j-dex2jar.sh classes.dex
d2j-dex2jar.sh: line 36: ./d2j_invoke.sh: Permission denied
沒有授權(quán)
三莉钙、JD-GUI
http://java-decompiler.github.io/
選擇相應(yīng)系統(tǒng)的版本
MAC是直接下載之后就可以解壓了廓脆。這個點進去有一個 .app 。注意直接打開不行磁玉,是因為蘋果系統(tǒng)的原因停忿,在系統(tǒng)偏好設(shè)置里面能改,不想修改的話蚊伞,在右鍵后席赂,按住 Control 再打開即可。
Control + 打開
四时迫、反編譯流程
1. 使用apktool 將APK 文件解析出來颅停,這樣能獲取到 /res 目錄下的資源文件(如果不需要直接掠過)。
在控制臺中輸入 apktool d xxx.apk
(注意掠拳,如果這樣輸入的話癞揉, xxx.apk 要在控制臺的當前目錄下,想偷懶就直接把 xxx.apk 拖到這里來,不過喊熟,這樣生成的文件就會在當前文件夾下)
其中d是decode的意思柏肪,表示我們要對Demo.apk這個文件進行解碼。那除了這個基本用法之外芥牌,我們還可以再加上一些附加參數(shù)來控制decode的更多行為:
· f 如果目標文件夾已存在烦味,則強制刪除現(xiàn)有文件夾(默認如果目標文件夾已存在,則解碼失敱诶)谬俄。
·o 指定解碼目標文件夾的名稱(默認使用APK文件的名字來命名目標文件夾。
·s 不反編譯dex文件扇商,也就是說classes.dex文件會被保留(默認會將dex文件解碼成smali文件)凤瘦。
·r 不反編譯資源文件,也就是說resources.arsc文件會被保留(默認會將resources.arsc解碼成具體的資源文件)案铺。
常用用法就這么多了蔬芥,那么上述命令的執(zhí)行結(jié)果如下圖所示:
原文鏈接:https://blog.csdn.net/u013082948/article/details/52195514
生成文件夾結(jié)構(gòu)
直接解壓和apktool解析生成的不同
原文鏈接:https://blog.csdn.net/fengyuzhengfan/article/details/80286704
2. 使用解壓軟件將APK解壓,得到若干個 classes.dex ,然后用dex2Jar 將 classes.dex 解析成 jar 包控汉。
將直接解壓的文件中的classes.dex 文件拖到 dex2jar 文件夾中笔诵,然后在控制臺里面運行:
sh d2j-dex2jar.sh classes2.dex
每個dex文件生成一個jar包
x_x
這里需要主要 控制臺要進入 dex2jar 文件夾下才運行上述代碼,且姑子,最后會有一個錯誤報告乎婿,直接忽視就好。街佑。谢翎。
3. 打開 JD-GUI ,將 jar 拖拽到 JD-GUI 區(qū)域就可以看代碼了(該代碼是混淆之后的)
涉及公司代碼就不放出來了沐旨,反正是混淆過后的森逮,也沒啥用 X_X