对已经使用了某60等等加固的apk的反编译教程

571 阅读3分钟

写在前面

纯属玩玩是可以的,可不要干坏事哦,对好奇的东西反编译来学习是挺好的。

反编译准备

1.首先下载好想要反编译的apk,查看好包名(很多方式可以查看到包名,可以用apktool执行apktool d xxx.apk来查看,一些工具也可以做到,可以是:《Android 开发工具箱》,或者小米系统详细信息也可以查看,其他系统就不知道了)

2.下载一个安卓模拟器,可以是MuMu模拟器(android12),可以dump出代码,获取其他自己查阅,但雷电模拟器(android9)踩坑了,在android9时,开启root权限后,会一直卡在app的debugger页面,进不去app,所以dump不出来。

3.安装python环境(必须用到pip,pip3最好),我这安卓的是目前最新的python3.12版本,之后添加到系统Path。

4.模拟器安装Server用到的包,下载直达地址:github.com/frida/frida… 模拟器基本都是x86_64,所以下载图中的即可

image.png 版本随意,下载对就行了, 下载后解压放好备用

5.下载frida相关包,在cmd环境中执行:pip3 install frida-tools pip3 install frida,下载完成后执行 pip3 show frida 查看到有相关版本即可,一般如下: Name: frida Version: 15.2.2

反编译步骤


1.adb链接到模拟器,打开MUMU模拟器(端口号默认是7555,其他模拟器自行查)后,执行adb connect 127.0.0.1:7555 链接到MUMU模拟器,如果使用adb devices 查看模拟器已经在线,则不用再执行connect,之后在模拟器的设置中找到root选择开启并重启模拟器。

2.推送刚刚下载好的Server进模拟器指定目录 adb -s 模拟器名称(一般是emulator-5554等名称) push frida-server-16.1.4-android-x86_64 /data/local/tmp(注意,要去到frida-server-16.1.4-android-x86_64所在目录执行或者添加完整目录链接在前)。

3.给Server修改权限并开启服务,执行adb -s 模拟器名称 shell进入模拟器shell环境输入 su + 回车进入到最高权限操作环境,而后 cd /data/local/tmp,执行chmod 777 frida-server-16.1.4-android-x86_64修改权限,再执行 ./frida-server-16.1.4-android-x86_64启动服务,到这就已经启动服务完成了,但是注意了,别关闭这个cmd窗口,保留在这就行,其他操作另起一个cmd窗口操作。

4.另起cmd窗口后,下载完整的frida脱壳库:frida-dexdump 具体可以查看:github.com/hluwa/frida… (这是别人写的基于frida的自动脱壳的脚本) 下载命令:pip3 install frida-dexdump 下载完成后执行frida-ps -Uai即可查看到当前的模拟器中的相关程序和对应包名

5.开始dump出代码,先在模拟器打开对应程序注意一定要进入到程序里面,不能像android9那样卡在打开app的debugger页面),执行:frida-dexdump -U -f com.app.pkgname,如果需要更加深层次的dump,则执行 frida-dexdump -U -d -f com.app.pkgname 如果程序确实在前台运行着,你还可以直接这样执行:frida-dexdump -FU 来dump出代码dex。

最后

最后代码对应的dex目录一般在执行时会有提示,基本都是以包名作为目录。

最后使用jadx(去github搜索即可找到)直接拉入所有dex分析出项目(还可以用它保存程gradle项目哦)