objection是一个基于Frida开发的命令行工具,它可以很方便的Hook Java函数和类,并输出参数,调用栈,返回值。
安装 Objection
因为
objection
是基于 Frida 的所以必须先安装Frida
然后才能安装objection
1 | pip install objection |
启动 Objection
例子 (这是一个自定义端口加载模式其中):1
objection -N -h 192.168.31.221 -p 9898 -g com.xxx.xxx explore
各种模式的含义可以在 objection --help
中查看
操作快捷键
空格
可以快速智能化提示可以输入代码箭头右
可以快速选择之前输入过的命令
常用命令
memory list modules
查看当前程序调用的所有somemory list modules --json test.json
查看到其所有so 并保存位json (终端所在目录)frida-ps -U |grep xxx
筛选过滤memory search
内存搜索android hooking list activities
打印所有 activities (页面)android intent launch_activity com.android.settings.DisplaySettings
强行启动指定activities 可以强行启懂页面android hooking list classes
打印所有classes
android hooking search classes ***
筛选指定类android hooking list class_methods sun.util.locale.LanguageTag
打印方法体android hooking watch class_method com.xxx.xxx --dump-args --dump-return
快速hook(来看是否代码走到这里)
使用场景
快速hook密钥位置
有的情况下, 我们可以快速测试和hook来查看关键key(较为简单的app)使用objection 来实现,这样连代码都不用写就可以完成需求。 比如我们用jadx观察可疑点,然后上hook
1 | android hooking watch class_method xxx.xxx.xxx --dump-args --dump-backtrace --dump-return // 注意这里是直接hook类,她会打印内中所有函数 |
主动调用加密函数(没有其他参数的情况下)
不用各种附加进程等等,直接调用可疑函数位置就可以得到结果
寻找该函数内存位置, 并复制找到的内存地址
1
android heap search instances com.xxx.xxx.MainaActivity
先hook上可疑函数
1
android hooking watch class_method xxx.xxx.xxx.xxx --dump-args --dump-backtrace --dump-return
主动调用该函数
1
android heap execute 0x200a7a a // 0x200a7a 是内存地址 后面的 a 调用这个类的a函数