前言
針對android APP的安裝包測試,是測試環節中很重要的一環,也是經常被忽略的一環。
針對APP安裝包主要由以下幾個測試點:
- 能否反編譯
- 安裝包是否簽名
- 完整性校驗
- 權限設置檢查
等等
這次主要記錄一下,對自己公司產品反編譯的一次過程
準備
需要的工具
- apktool
- dex2jar
- jd-gui
直接去官網下載就好了,這邊地址就不貼了
過程
1.apktool
1.先下載拿到apktool.bat和apktool.jar(這邊可能是apktool_x_x.jar 需要手動修改一下文件名)
2.然後把這兩個文件放到C:\Windows底下
3.將需要反編譯的apk放在一個目錄中,然後cd 到對應的目錄
4.執行命令
apktool.bat d app-online-release.apk
會在該目錄下生成一個app-online-release的文件夾
APK反編譯
1.將xxx.apk 改爲xxx.zip,然後解壓
2.解壓後的文件夾中有一個class.dev
3.將這個文件複製到dex2jar的目錄下
4.cd 到dex2jar目錄下,執行命令
d2j-dex2jar.bat classes.dev
會生成一個jar文件
可能遇到的坑
1.在執行d2j-dex2jar.bat classes.dev的時候可能會報錯
jar2dex classes.dex -> classes-jar2dex.dex
call 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
可以到看到代碼經過了混淆