一、前记

使用Frida完全是因为2020年网鼎杯的时候一些道非常有意思的安卓逆向题(其实就是经过简单加密的题)。但是安装Frida的过程和做题过程我觉得还是应该记录一下。

二、frida

1、简介

Frida是一个动态代码插桩框架,这里的介绍主要以应用在Android平台应用程序上。动态二进制插桩(DBI)是将外部代码注入到现有的正在运行的二进制文件中,从而让它执行额外的操作操作。DBI可以:
①访问进程内存
②在应用程序运行时覆盖函数
③从导入的类调用函数
④在堆上查找对象实例并使用
⑥Hook、跟踪和拦截函数等

2,安装过程

Ⅰ、实验环境
Windows 10
python 3.7.3
frida 12.8.20(惨惨今天更新了最新的12.9)

Ⅱ、安装过程
①通过使用pip安装frida

pip3 install frida -i https://pypi.tuna.tsinghua.edu.cn/simple

②参照对应版本下载frida-server,下载地址
③安装frida-server
这个地方是一个特别的坑
在安装frida-server的时候要选择正确的版本(这个一定一定!!!),一开始我安装的版本为Windows版本(frida-server-12.9.2-windows-x86.exe.xz),其实并不能安装这个版本的,要安装安卓版本的(像frida-server-12.9.2-android-x86.xz,因为安卓模拟器一般都是x86的,这里特别感谢kabeo师傅的提醒)。
将frida-server文件重命名为frida-server,然后通过使用安卓命令器adb推送到手机里面

adb push frida-server /data/local/tmp/

④赋予执行权限

adb shell
su
cd /data/local/tmp/
chmod 777 frida-server
./frida-server

(在这里也有一个坑点,在这个里面的执行文件应该是./可执行文件名,而不一定是./frida-server)
⑥验证frida-server是否安装正确

frida-ps -U
PID  Name
-----  ------------------------------------------
 3835  31:0
 3724  HwCamCfgSvr
 3954  adbd
 5011  android.process.acore
 5029  android.process.media
 3739  bastetd
 3736  check_longpress
 3764  check_longpress
13962  com.UCMobile:channel
14462  com.UCMobile:push

如果出现以上结果就说明安装成功,至此frida-server的安装就结束了。

3,使用过程

1、frida配合脚本的使用(在这里使用的是frida dump dex,文章链接),例子为2020年网鼎杯reverse--bang
过程:
第一步:首先在安卓模拟器里面打开frida-server
KS700LE-GO4Z9E7-PQHP-KS
然后检查frida-server是否连接成功:frida-ps -U
连接成功之后(在这里会有一个坑,就是我们需要自己指定转发端口,在这里我使用的是27042的端口进行的转发和接收)

adb forward tcp:27042 tcp:27042

第二步:使用frida dump dex脱壳参考连接
在cmd里面运行main.py文件

python3 main.py

出现结果
A6TH4J1-2PZUON_-86VZBGG
再将其放到jadx里面,搜索flag
出现结果
N-GSQ1L-DG-LP-QIBDSG-43

flag{borring_things}

三、结语

这次学习感觉frida简直就是一个神器,同时我对安卓脱壳也有了进一步的了解。