背景
在APP的逆向过程中避免借助使用一些反汇编工具,动静态调试分析工具,自然也免不了和frida这个工具打交道,frida作为强大的逆向分析工具在攻防过程中具有不可撼动的地位。
很多frida玩得很溜的牛人,将frida强大的功能集成一个工具便于大家去使用它,这个工具就是objection。
frida github 地址
https://github.com/frida/frida
objection github地址
https://github.com/sensepost/objection
objection 它的功能非常强大,支持的命令众多。它是基于Frida开发的命令行工具,它可以实现不用写一行代码,便可实现诸如内存搜索、类和模块搜索、方法hook打印参数返回值调用栈等常用功能,因此称它为一款非常便捷高端的逆向工程内存漫游神器都不为过。
Objection功能虽然强大,但它有个比较大的遗憾就是缺少对native层的支持。
分析准备
由于objection是基于frida的,因此在使用objection前,也是需要启动frida-server和端口转发。
1.启动frida-server
2.端口转发
3.objection功能的启动(它也是通过想目标app进行注入frida的so文件然后进行做对应功能操作)
一切就绪后目标APP就多了个frida的so文件了
四大组件分析
Android 四大组件分别为:
Activity
Service
BroadCast Receiver
Content Provider
可通过android hooking list 组件名称的命令列出想查询分析的四大组件信息
通过android hooking list activities可将应用中的所有activity列出
通过android hooking list services可将应用中的所有services列出
通过android hooking list receivers可将应用中的所有receivers列出
搜索功能分析
以下命令用于搜索内存相关的
枚举当前进程模块
https://github.com/sensepost/objection
查看指定模块的导出函数
memory list exports [lib_name]
将结果保存到json文件中
memory list exports libart.so --json /root/libart.json
搜索内存包含指定的字符串信息
memory search --string --offsets-only
dump整个内存
memory dump all from_base
列出内存中所有的类
android hooking list classes
在内存中所有已加载的类中搜索包含特定关键词的类
android hooking search classes [search_name]
在内存中所有已加载的方法中搜索包含特定关键词的方法
android hooking search methods [search_name]
直接生成hook代码
android hooking generate simple [class_name]
查询指定模块的所有接口
搜索APP指定字符串信息
查询类的详细信息
转存APP的运行内存数据
搜索内存中的所有函数
HOOK功能分析
hook指定方法, 如果有重载会hook所有重载,如果有疑问可以看
--dump-args : 打印参数
--dump-backtrace : 打印调用栈
--dump-return : 打印返回值
android hooking watch class_method com.xxx.xxx.methodName --dump-args --dump-backtrace --dump-return
hook指定类, 会打印该类下的所以调用
android hooking watch class com.xxx.xxx
设置返回值(只支持bool类型)
android hooking set return_value com.xxx.xxx.methodName false
查看目前所有hook的方法
Jobs list
android hooking watch class io.virtualapp.home.HomeActivity
进行hook 类io.virtualapp.home.HomeActivity
其他功能分析
通过执android shell_exec命令,可以实现调用执行指定命令功能
通过执行 android shell_exec “ps”查询当前环境所有运行的进程信息
通过调用env命令查看APP相关的目录
通过命令,关闭ssl校验
android sslpinning disable
Frida逆向分析APP实战