首页
社区
课程
招聘
[原创]Frida Objection 定位发包函数
发表于: 2024-1-4 10:56 11851

[原创]Frida Objection 定位发包函数

2024-1-4 10:56
11851

这里以移动TV(版本为12.2) moveTV.apk 这个APP为例

1)切换到 ~/.objection 目录下,删除旧的objection.log,然后按下图启动APP,并使用objection附加到APP进程,运行一下命令获取APP已加载的所有类

image

2)在加载所有类后,使用exit命令退出objection,为了之后运行所产生的日志不再继续影响本次产生的日志,需将objection.log进行重命名,并保存

3)使用cat​命令和grep​管道符过滤出HttpURLConnection​和okhttp(3)​相关类

image

4)使用>​符号,将上面过滤出来的类重定向到txt文件中,然后通过文本编辑器快速输入多行相同的数据来补全每一行中objection命令。以vscode为例,通过win系统 Alt + Shift +鼠标​ MAC系统 option + shift + 鼠标​的方式对每一行行首进行全选并输入以下命令

image​​​​​​​

5)使用以下命令,将objection附加到APP上,并自动执行文件中的所有命令。由于Hook过多类可能导致APP崩溃,这时将文本中的类分批Hook分批测试就可以了

​​image​​

6)将所有类Hook之后,便可以在手机上对APP进行操作,这里主要想抓到登录时的网络通信数据,所有在登录框中输入用户名和密码后点击“确定”按钮。如果objection的界面中没有任何函数被调用,说明实际发包函数并没有使用对应的框架,这是应当更换包含Hook命令的文本文件,继续通过-c​参数执行文件中所有Hook命令,如果在objection的界面上看到一堆函数被调用,则说明框架类型确认成功。

注意:这里虽然有一堆okhttp相关字眼,但并不是使用okhttp3网络框架,而是因为httpURLconnection这个原生库底层使用的是okhttp,与okhttp3第三方网络框架不是一个概念

图片描述

image

7)退出objection重新进入,对Hook到的方法进一步Hook,例如选择com.android.okhttp.HttpHandler.openConnection​ 函数进一步Hook。通过传参为URL,调用关键词HttpClient 猜测发包函数可能是 ​com.cz.babySister.c.a.a(HttpClients.java:22)

image


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2024-2-2 10:16 被Alvinlight编辑 ,原因:
收藏
免费 6
支持
分享
最新回复 (10)
雪    币: 344
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
Objection定位发包函数
2024-1-4 11:27
0
雪    币: 271
活跃值: (311)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
Damn7Kx Objection定位发包函数[em_86]
有什么问题吗,都是Frida大类的,便于搜索
2024-1-4 11:41
0
雪    币: 344
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
Alvinlight 有什么问题吗,都是Frida大类的,便于搜索
没问题
2024-1-4 13:02
0
雪    币: 3004
活跃值: (30866)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢分享
2024-1-4 13:41
1
雪    币: 237
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
直接抓包就行了,再分析请求中参数怎么生成的,一般不用去分析是哪个是发包函数
2024-1-5 16:51
0
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
objection一启动马上报错,这种怎么弄
    raise result.error
frida.core.RPCException: TypeError: cannot read property 'getApplicationContext' of null
    at getApplicationContext (/script1.js:19169)
    at <anonymous> (/script1.js:19801)
    at <anonymous> (/script1.js:19157)
    at <anonymous> (frida/node_modules/frida-java-bridge/lib/vm.js:12)
    at _performPendingVmOps (frida/node_modules/frida-java-bridge/index.js:250)
    at <anonymous> (frida/node_modules/frida-java-bridge/index.js:242)
    at apply (native)
    at ne (frida/node_modules/frida-java-bridge/lib/class-factory.js:673)
    at <anonymous> (frida/node_modules/frida-java-bridge/lib/class-factory.js:651)
Asking jobs to stop...
Unloading objection agent...
2024-1-6 14:42
0
雪    币: 271
活跃值: (311)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
mb_rgfytsxo objection一启动马上报错,这种怎么弄 raise result.error frida.core.RPCException: TypeError: cannot read prop ...
这个可能是objection和Frida版本不兼容,百度一下,找一个相互兼容的版本应该就可以了
2024-2-2 10:14
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢分享
2024-2-3 16:32
0
雪    币: 219
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
感谢分享
2024-2-23 21:06
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
mb_rgfytsxo objection一启动马上报错,这种怎么弄 raise result.error frida.core.RPCException: TypeError: cannot read prop ...
  https://github.com/sensepost/objection/pull/623,可能是启动太慢了,如果是模拟器,建议用雷电,我用MUMU不行,雷电就可以
2024-7-26 20:03
0
游客
登录 | 注册 方可回帖
返回
//