安装
objectioh是对frida进行了封装,只需要命令就可以完成hook操作,很方便很实用
在安装objection之前,也是要安装frida和frida-tools,并且版本最好是接近frida的版本
pip install frida==14.2.18
pip install frida-tools==9.2.5
pip install objection==1.11.0
装好了就是这样的:
使用:
objection的使用可以说是非常简单了
注入进程,如果objection没有找到进程,会以spwan方式启动进程
查看帮助:objection –help
注入进程的方法:objection -g <进程名> explore
hook的结果存放在:objetion log 文件位置 C:\Users\Administrator.objection
常见的hook指令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| 列出所有已加载的类 android hooking list classes 在所有已加载的类中搜索包含特定关键字的类 android hooking search classes <pattern> 列出类的所有方法 android hooking list class_methods <路径.类名> hook类的所有方法(不包括构造方法) android hooking watch class <路径.类名> hook类的构造方法 android hooking watch class_method <路径.类名.$init> 默认是hook方法的所有重载 android hooking watch class_method <路径.类名.方法名> hook方法的参数、返回值和调用栈 android hooking watch class_method <路径.类名.方法名> --dump-args --dump-return --dump-backtrace hook单个重载函数,需要指定参数类型,多个参数用逗号分隔 android hooking watch class_method <路径.类名.方法名> "<参数类型>"
查看与取消hook jobs list jobs kill <jobId>
指定ip和端口连接 objection -N -h <ip> -p <port> -g <进程名> explore
启动前就hook objection -N -h <ip> -p <port> -g <进程名> explore --startup-command "android hooking watch class <路径.类名>"
启动前就hook打印参数、返回值、函数调用栈 objection -N -h <ip> -p <port> -g <进程名> explore -s "android hooking watch class_method <路径.类名.方法名> --dump-args --dump-return --dump-backtrace"
如果启动前需要运行多条命令,可以写到一个文件中,使用-c选项 objection -g <进程名> explore -c "路径"
关闭ssl校验 android sslpinning disable 关闭root检测 android root disable
搜索堆中的实例 android heap search instances <类名> 通过实例调用静态和实例方法 调用 android heap execute <handle> <方法名> 调用打印返回值 android heap execute <handle> <方法名> --return-string 调用带参数方法,进入编辑器环境 android heap evaluate <handle> console.log(clazz.getCalc(100, 200));
查看当前app的activity android hooking list activities 尝试跳转到对应activiy android intent launch_activity <activiyName> 枚举内存中所有模块 memory list modules 枚举模块中所有导出函数 memory list exports <so库名> 当结果太多,可以将结果导出到本地文件中 memory list exports <so库名> --json <路径.文件名>
|
个人还是感觉,直接写代码方便一些,本篇文章位学习的代码笔记,方便以后直接用。
好久没写hook代码了,废了废了……想写的安卓实战一直没有找到合适的案例。。。