Frida初体验
Frida初体验
Frida安装
Frida与Python与模拟器的版本是互相匹配的,大约对应关系如下:
雷电模拟器9 对应 Android9 对应 Frida14.2.18 对应 Python3.10
如果能这么安装上更好:
1 | pip3 install frida==14.2.18 |
装不上自认倒霉(比如说我),去清华源上啥的自己下载报错提示的.egg文件,放在报错提示的缓存文件夹下,应该就行了。
然后下载Frida-tools:
1 | pip3 install frida-tools==9.2.5 |
去Github上:https://github.com/frida/frida/releases/tag/ 下载frida-server-14.2.18-android-x86_64.xz
,直接解压,得到的文件可以自己重命名为frida-server
啥的。如果报错可以换个其他版本试试。
雷电模拟器目录下有个adb.exe
,但是版本很老了,从官网上下个新版本的,连着其他文件一起覆盖掉。
在雷电模拟器的“设置”的“其他设置”中开启root权限。用以下命令将frida-server
push进/data/local/tmp
文件夹。
1 | adb push xxx\frida-server /data/local/tmp/ |
紧接着服务器提权:
1 | adb shell |
接下来转发端口:
1 | adb forward tcp:27042 tcp:27042 |
Objection安装
Objection与Frida版本的对应关系也非常严格,建议对比两款工具在Github上发行时间,选择时间相近的版本。
1 | pip3 install objection==1.11.0 |
实战:[SWPU 2019]easyapp
开个终端,输入以下命令打开模拟器shell:
1 | adb shell |
在该shell中运行上传的Frida服务器:
1 | su |
终端会卡住,不要关,再开个终端,对该app进程进行Objection注入:
1 | objection -g com.example.ndktest2 explore |
找到MainActivity类的Encrypt函数进行Hook:
1 | android hooking watch class_method com.example.ndktest2.MainActivity.Encrypt --dump-args --dump-backtrace --dump-return |
在模拟器中输入什么点登录Objection都会给出Hook到的返回值‘YouaretheB3ST’。
附录:adb常用操作
1 | adb install <APK路径> #安装 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The Blog of Monoceros406!