tags: [‘frida’,‘jnitrace’,‘objection’]
categories: ‘经验教程’
# Frida
面向开发人员、逆向工程师和安全研究人员的动态检测工具包。
frida 文档:https://frida.re/docs/home/
# 对应版本
frida&frida-tools 版本对应查看 :frida-releases
找到你使用 frida 的版本,查看其版本下 frida-tools 的版本,它们就是对应版本。(建议多准备几个 Python 与 firda 的版本,因为它并不稳定)
1 | pip install frida==14.2.13 |
# frida-server
安卓手机需要安装 frida-server,版本与 frida 版本需一致,根据设备架构选择 x86 或 arm 等。
解压文件
1 | 7x x frida-server.xz |
启动 frida-server
1 | adb root |
测试服务
1 | frida-ps -U // 查看正在运行进程 |
显示如下内容则表示服务启动,手机重启后需要再次执行命令启动。
1 | PID NAME |
# 常用命令
1 | frida -FU packagename -l hookscript.js |
# Jnitrace
JNItrace 是一个基于 Frida 框架的Hook jni方法的库。https://github.com/chame1eon/jnitrace
Python 安装
1 | pip install jnitrace // 需要frida版本14以上 |
# 依赖:
- arm、arm64、x86 或 x64 Android 设备
- Frida 安装在 Android 设备上
- Frida 支持 > 14
- 使用 Python 3 和 pip 的 Linux、Mac 或 Windows 主机
# 启动命令:
两个参数分别为待分析的 SO 与 APP 包名。-l 参数可以多次使用 <font style="color:rgb(70, 70, 70);background-color:rgb(253, 253, 253);">-l libname.so -l libname1.so ...</font>
1 | jnitrace -l libname.so packagename |
默认使用 spawn
启动,可以通过 -m attach
设置通过 attach
启。
1 | jnitrace -m attach -l libname.so packagename |
>>
导出 log 日志保存至文件,控制台将不输出 log。例:
jnitrace -l libname packagename >> jnitrace.txt
# objection
# 安装
官方安装教程:https://github.com/sensepost/objection/wiki/Installation
1 | pip3 install -U objection |
在内存中所有已加载的类中搜索包含特定关键词的类
1 | android hooking search classes |
hook java 方法
1 | android hooking watch class_method <methodName> |
hook java 类
1 | android hooking watch class <classname> |
列出进程所有的 activity
1 | android hooking list activities |