安卓那档事05
Objection
好像是基于frida的一个整合
https://github.com/sensepost/objection
安装配置
没啥主动配置的印象,像是装frida的同时会安装的
简单使用
首先要启动frida-server,这个还是通过frida-server来进行内存通信访问的。
Frida真顶啊
注入命令
objection -g 包名 explore
使用这个命令之后会以spawn模式启动(就是由这个东西启动)
- help:不知道当前命令的效果是什么,在当前命令前加help比如:help env,回车之后会出现当前命令的解释信息
- 按空格:不知道输入什么就按空格,会有提示出来 - jobs:可以进行多项hook
- 日志:objection的日志文件生成在 C:.objection
启动前就hook
objection -g 进程名 explore --startup-command "android hooking watch class 路径.类名"
一些api
memory list modules
查看内存中加载的库
memory list exports so名称
查看库的导出函数
android hooking list activities
查看内存中加载的activity
android hooking list services
查看内存中加载的services
android intent launch_activity 类名
启动
activity
或service
(可以用于一些没有验证的activity,在一些简单的ctf中有时候可以出奇效)关闭ssl校验
android sslpinning disable
关闭root检测
android root disable
内存漫游
内存搜刮类实例
android heap search instances 类名
调用实例的方法
直接调用方法
android heap execute <handle> <function Name>
handle 就是上面那条指令搜刮出来的Hashcode
function name 就是方法名
对于带参数的方法
android heap evaluate <handle>
然后进入到写js界面。。
clazz
这个变量名就是指的调用的类剩下的看提示
android hooking list classes
列出内存中所有的类(结果比静态分析的更准确)
android hooking search classes 关键类名
在内存中所有已加载的类中搜索包含特定关键词的类
android hooking search methods 关键方法名
在内存中所有已加载的类的方法中搜索包含特定关键词的方法(一般不建议使用,特别耗时,还可能崩溃)
android hooking list class_methods 类名
内存漫游类中的所有方法
objectionHook
hook类的所有方法
1 |
|
args : 参数
return : 返回值
backtrace : 堆栈
hook方法
1 |
|
hook 类的构造方法
1 |
|
hook 方法的所有重载
1 |
|
控制流混淆
混淆
一个控制流混淆工具:BlackObfuscator
项目地址: BlackObfuscator
有空分析一下
应对
分析控制流混淆一般来说是追踪控制流,反正混淆了,咱也读不懂(
52这篇文章是介绍了个工具:r0tracer
其实就是一个frida脚本,大体上分析了一遍,在另一篇文章里面。
就是一个记录和hook所有的方法,调用的时候就先把一些东西打印出来,倒是学会了怎么打印出堆栈,方法还是蛮出人意料的,楽。
对于这个的对抗倒是有些想法,首先这个完完全全是直接hook的,加个反hook的都得似,感觉能在这个基础上改进,去针对一些anti-frida。
第二个不知道能不能实现?做个异常处理,就能把堆栈打印顶掉?不过它这个是基于安卓的一些异常的基类,从而获取的堆栈。不如一开始就打断frida的使用。