Objection是一个基于Frida的命令行hook工具。
通过命令pip install objection
进行安装
基本使用
注入进程
objection -g <packageName>/<PID> explore
选项
-s <command>
加上-s选项,可以在objection注入进程的时候就执行一些命令-c <路径>
如想在注入进程的时候执行多条命令,可以把他们放在一个文件里,然后把文件路径放这里--json
将输出以JSON格式返回
android
-
列出全部的类
android hooking list classes
-
列出类中全部的方法
android hooking list class_methods <class_name>
-
查找类
android hooking search classes <class_name>
-
查找方法
android hooking search methods <method_name>
-
监听类
android hooking watch class <class_name>
-
监听方法
android hooking watch class_method <method_name> --dump-backtrace --dump-return --dump-backtrace
-
列出所以的activities
android hooking list activities
-
启动一个
activity
android intent launch_activity <package_name> <activity_name>
-
在内存堆中查找类实例
android heap search instances <class_name>
-
在内存堆区执调用实例方法
android heap execute <hashcode> <class_method>
-
在内存堆区执行表达式,并返回其结果
android heap evaluate <hashcode>
通过hashcode
定位实例
memory
- 列出所有的模块
memory list modules
- 列出模块中的导出函数
memory list exports <moduleName>
jobs
- 列出后台任务
jobs list
- 终止任务
jobs kill <ID>
Wallbreaker
Wallbreaker是一个基于objection的插件工具
git clone https://github.com/hluwa/Wallbreaker.git
(注意路径)
启动Objection,然后加载Wallbreaker插件
plugin load /root/Documents/Wallbreaker(自己的路径)
-
plugin wallbreaker classsearch <pattern>
:
根据给定的模式(pattern)对所有类名进行匹配,并列出所有匹配到的类名。 -
plugin wallbreaker objectsearch <classname>
:
根据类名搜索内存中已经被创建的实例,并列出 handle 和 toString() 的结果 -
plugin wallbreaker classdump <classname> [--fullname]
:
输出类的结构。如果加上 --fullname 参数,打印的数据中类名会带着完整的包名。 -
plugin wallbreaker objectdump <handle> [--fullname]
:
在 ClassDump 的基础上,输出指定对象中的每个字段的数据。如果加上 --fullname 参数,打印的数据中类名会带着完整的包名。plugin wallbreaker classdump android.os.Buil # 查看 android.os.Build 类的结构