最近也在学习安卓app脱壳以及渗透测试方面的技巧,也是接触到了frida这个工具,这里就简单记录一下如何用这个工具来演示一下脱壳操作吧!
前戏准备
- 安卓模拟器:如夜神模拟器,雷电模拟器
- Python环境:本次演示环境的Python版本为:3.10.8
- Frida:本次Frida安装版本为:Frida 16.2.1
- Jadx:反编译工具
- Java: Java环境,本次版本为:java version “17.0.5”
- 准备一个加壳的APP
- frida-dexdump:帮我们导出dex内存数据的tool,这里我的版本为:2.0.1
撸袖开干
安装测试的app和MT管理器
1 | # MT管理器地址 |
安装frida(注意:若你的python版本比较低,比如3.6,建议下载较低版本的frida发行版,比如12.*)
1 | pip3 install frida |
根据我们下载的frida版本和模拟器配置下载相应的frida-server版本
将下载好的frida-server解压并将该文件放入安装模拟器共享目录,通过MT管理器将该解压文件放入安卓模拟器/data/local/tmp目录下
启动app软件,运行起来即可
进入安卓模拟器安装目录的bin文件夹下,通过adb进入shell启动frida-server服务
再起一个终端,同样进入安卓模拟器的bin目录下,通过adb执行如下操作进行转发监听
安装frida-dexdump,项目地址为
1 | https://github.com/hluwa/frida-dexdump/releases/tag/v2.0.1 |
下载解压后直接执行
1 | # -f 后面跟我们这次app的应用程序包名,Identifier栏的内容 |
当前目录下生成的相应包名的文件夹,里面就是拖出来的dex文件
dex文件按文件大小排序后,用jadx打开
即可看见反编译后的源码了
相关工具地址:
1 | # jadx |