APP反编译+重新打包+查看java代码

在对APP进行测试时,除了从web层面进行测试,还需对app进行安全评估,这时需要我们对app进行反编译,如果APP未加壳,我们还可通过修改反编译后的文件并重新打包,来验证APP的安全性。

反编译

  • 工具:apktools,可以去官网下载最新版,也可以去百度网盘下载,链接我会在文末给出。
    我使用是jar,需要安装java环境,具体教程大家可以网上搜。
  • app安装包:app-release(4).apk
    利用apktools进行反编译的命令为:
java -jar apktool_2.4.1.jar d -f  "app-release(4).apk"

APP反编译+重新打包+查看java代码_第1张图片
此时app-release(4).apk所在的文件夹中会出现一个app-release(4)的文件夹。
在这里插入图片描述
对app的名称进行修改,然后重新打包看是否能成功安装。

  • 在app-release(4)中查找app名称:打开notepad++ ,菜单栏选择:搜索-在文件中查找
    APP反编译+重新打包+查看java代码_第2张图片
    查找目标输入app名称,目录选择app-release(4)文件夹,选择“全部查找”即可找到app名称信息所在文件并进行修改。
    APP反编译+重新打包+查看java代码_第3张图片
    此处我在app名称后添加“TEST”字符。

重新打包,签名

保存修改的文件,利用apktools对修改后的文件夹重新进行打包。

java -jar apktool_2.4.1.jar b  "app-release(4)"

APP反编译+重新打包+查看java代码_第4张图片
此处虽然有“failed”的项,但依然打包成功,打包后的apk在app-release(4)内的dist文件夹中。
在这里插入图片描述
但这个apk无法直接安装还需签名。

  • 利用signapk.jar工具对重新打包后的apk 进行签名并重命名为test.apk
java -jar signapk.jar platform.x509.pem platform.pk8 C:\Users\xinling\Desktop\重新打包\app-release(4)\dist\app-release(4).apk test.apk

签名成功:
在这里插入图片描述
APP反编译+重新打包+查看java代码_第5张图片
在模拟器中安装test.apk,可看到app名称已被添加"TEST"字符:
APP反编译+重新打包+查看java代码_第6张图片

查看java 文件

  • 将app-release(4).apk重命名为app-release(4).zip,利用解压文件解压,可得到app-release(4)文件夹。
    APP反编译+重新打包+查看java代码_第7张图片
    利用dex2jar工具将classex.dex转换为Jar包,此处也可将classes.dex文件直接复制到 dex2jar所在文件中
dex2jar C:\Users\xinling\Desktop\重新打包\app-release(4)\classes.dex

在这里插入图片描述
执行成功,在app-release(4)文件夹中会新增一个classes_dex2jar.jar文件
在这里插入图片描述
利用jd-gui工具打开该文件,此处未进行混淆可成功查看代码,如果进行了混淆包的名字为 a ,b ,c 等。
APP反编译+重新打包+查看java代码_第8张图片

工具

链接:https://pan.baidu.com/s/1zEQTv-SmU_clFCGTJB5UKQ
提取码:tu7a
复制这段内容后打开百度网盘手机App,操作更方便哦。
欢迎大家关注我的微信公众号进行交流。
APP反编译+重新打包+查看java代码_第9张图片

你可能感兴趣的:(APP测试)