android APK反編譯
前言
針對android APP的安裝包測試,是測試環節中很重要的一環,也是經常被忽略的一環。
針對APP安裝包主要由以下幾個測試點:
- 能否反編譯
- 安裝包是否簽名
- 完整性校驗
- 許可權設定檢查
等等
這次主要記錄一下,對自己公司產品反編譯的一次過程
準備
需要的工具
- apktool
- dex2jar
- jd-gui
直接去官網下載就好了,這邊地址就不貼了
過程
1.apktool
1.先下載拿到apktool.bat和apktool.jar(這邊可能是apktool_x_x.jar 需要手動修改一下檔名)

apktool.png
2.然後把這兩個檔案放到C:\Windows底下
3.將需要反編譯的apk放在一個目錄中,然後cd 到對應的目錄
4.執行命令
apktool.bat d app-online-release.apk
會在該目錄下生成一個app-online-release的資料夾

image.png
APK反編譯
1.將xxx.apk 改為xxx.zip,然後解壓
2.解壓後的資料夾中有一個class.dev

class.png
3.將這個檔案複製到dex2jar的目錄下
4.cd 到dex2jar目錄下,執行命令
d2j-dex2jar.bat classes.dev
會生成一個jar檔案

dex.png

class.png
可能遇到的坑
1.在執行d2j-dex2jar.bat classes.dev的時候可能會報錯
jar2dex classes.dex -> classes-jar2dex.dexcall com.android.dx.command.Main.main[--dex, --no-strict, --output=E:\android\dex2jar-2.0\classes-jar2dex.dex, E:\android\dex2jar-2.0\classes.dex]no classfiles specified
解決方案:將jdk版本由1.8降為1.7
5.開啟jd-gui,開啟上一步驟中生成的class-dex2jar.jar

jd-gui.png
可以到看到程式碼經過了混淆