APK反編譯之APKTOOL的使用
阿新 • • 發佈:2019-01-22
APKTool
APKTOOL是解包 APK 檔案最常用的工具,許多 APK 工具箱都集成了 apktool。它可以完整解包 APK,解包後你可以看到 APK 裡面的宣告檔案、佈局檔案、圖片資原始檔、由 dex 解包出來的 smali 檔案、語言檔案等。如果你要漢化、修改介面、修改程式碼的話,apktool 可以幫你一站式完成。
常用命令
需要在 CMD 命令視窗中輸入命令來使用,常用命令如下:
解包 APK:java -jar apktool.jar d *.apk -o out
其中 *.apk 是被解包的 APK 檔名, out 是輸出目錄名稱
重新打包:java -jar apktool.jar b out
out 就是上面的輸出目錄
匯入 framework-res.apk 架構檔案:java -jar apktool.jar if frameword-res.apk
需要將 framework-res.apk 檔案放在 apktool.jar 的相同目錄下,匯入架構檔案可以解決一些呼叫了系統框架資源的 APK 包解包失敗的問題
操作過程
- 下載解壓工具包
- 將需要反編譯的APK檔案放到該目錄下,開啟命令列介面(執行-CMD) ,定位到apktool資料夾,輸入以下命令:
apktool.bat d -f *.apk out
或者用上邊的命令也可以!
- 將要反編譯的APK字尾名改為.rar或則 .zip,並解壓,得到其中的額classes.dex檔案(它就是java檔案編譯再通過dx工具打包而成的),將獲取到的classes.dex放到之前解壓出來的工具dex2jar-0.0.9.15 資料夾內,在命令列下定位到dex2jar.bat所在目錄,輸入
dex2jar.bat classes.dex
注意:有些APK在打包的時候做過混淆處理,反編譯之後裡邊好多都是以abc之類的命名,但是裡邊的邏輯還是很清晰的,能給我們提供一個實現的思路。
Smali2Java
我在搜尋類似的的這種反編譯的工具時,發現了這個Smali2Java,它不用在命令列輸入命令來進行,直接解壓後開啟Smali2JavaUI.exe執行,將要反編譯的APK檔案直接開啟即可。