objection简介
objection在Frida的基础上实现了很多具体功能,包括重打包、交互等,支持Android和IOS两大平台,可以快速完成内存搜索、类和模块的搜索、方法Hook以及打印参数、返回值、调用栈等常见功能,从海量代码中定位关键函数。
安装
frida-server下载地址:https://github.com/frida/frida/releases/tag/12.8.0
adb push frida-server-12.8.0-android-arm64 /data/local/tmp
adb shell
cd /data/local/tmp
chmod 777 frida-server-12.8.0-android-arm64
pip install frida==12.8.0
pip install frida-tools==5.3.0
frida --version
pip install objection==1.8.4
objection version
进入REPL界面
objection --help
objection -g com.android.settings explore
objection -N -h 192.168.185.101 -p 8888 -g com.android.settings explore
jobs
作业系统
frida 查看frida相关信息
内存漫游
列出内存中所有类
android hooking list classes
搜索包含特定关键词的类,如display
android hooking search classes display
搜索所有包含关键词key的方法
android hooking search methods <key>
查看关心类的所有方法
android hooking list class_methods <class>
列出进程所有的活动
android hooking list activities
列出进程所有的服务
android hooking list services
列出进程所有的广播接收器
android hooking list receivers
列出进程所有的内容提供者
android hooking list providers
Hook的相关方法
Hook指定方法
android hooking watch class_method <methodName>
android hooking watch class_method java.io.File.$init --dump-args --dump-backtrace --dump_return
job list
job kill <id>
--dump-args
用于打印函数的参数。
--dump-backtrace
用户打印调用栈。
--dump_return
用于打印返回值。
Hookclassname中的所有函数
android hooking watch class <classname>
android hooking watch class java.io.File
主动调用
android heap search instances <classname>
android heap search instances java.io.File
调用实例方法
android heap execute <Handle> <methodname>
android heap execute 0x3606 getPath
执行带参数的函数
android heap evaluate <Handle>
android heap evaluate 0x3606
console.log(&#39;File is canWrite? &#61;>&#39;, clazz.canWrite())
clazz.setWritable(false);
console.log(&#39;File is canWrite? &#61;>&#39;, clazz.canWrite())