android APK反编译
2018-11-22 本文已影响4人
迈阿密小白
前言
针对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

可以到看到代码经过了混淆