【Android安全-Frida定位发包函数】此文章归类为:Android安全。
Frida定位发包函数
这里以移动TV(版本为12.2) 这个APP为例
1)切换到 ~/.objection 目录下,删除旧的objection.log,然后按下图启动APP,并使用objection附加到APP进程,运行一下命令获取APP已加载的所有类
1
2
|
objection -g com.cz.babySister explore
//
启动APP
android hooking list classes
//Hook
所有类
|
2)在加载所有类后,使用exit命令退出objection,为了之后运行所产生的日志不再继续影响本次产生的日志,需将objection.log进行重命名,并保存
1
|
mv
~/.objection
/objection
.log ~
/objection_moveTV
.log
|
3)使用cat
命令和grep
管道符过滤出HttpURLConnection
和okhttp(3)
相关类
4)使用>
符号,将上面过滤出来的类重定向到txt文件中,然后通过文本编辑器快速输入多行相同的数据来补全每一行中objection命令。以vscode为例,通过win系统 Alt + Shift +鼠标
MAC系统 option + shift + 鼠标
的方式对每一行行首进行全选并输入以下命令
1
|
android hooking
watch
class
|
5)使用以下命令,将objection附加到APP上,并自动执行文件中的所有命令。由于Hook过多类可能导致APP崩溃,这时将文本中的类分批Hook分批测试就可以了
1
|
objection -g com.cz.babySister explore -c
"/Users/angel/1.txt"
|
6)将所有类Hook之后,便可以在手机上对APP进行操作,这里主要想抓到登录时的网络通信数据,所有在登录框中输入用户名和密码后点击“确定”按钮。如果objection的界面中没有任何函数被调用,说明实际发包函数并没有使用对应的框架,这是应当更换包含Hook命令的文本文件,继续通过-c
参数执行文件中所有Hook命令,如果在objection的界面上看到一堆函数被调用,则说明框架类型确认成功。
注意:这里虽然有一堆okhttp相关字眼,但并不是使用okhttp3网络框架,而是因为httpURLconnection这个原生库底层使用的是okhttp,与okhttp3第三方网络框架不是一个概念

7)退出objection重新进入,对Hook到的方法进一步Hook,例如选择com.android.okhttp.HttpHandler.openConnection
函数进一步Hook。通过传参为URL,调用关键词HttpClient 猜测发包函数可能是 com.cz.babySister.c.a.a(HttpClients.java:22)
8)退出objection重新进入,对判断的函数进一步Hook,发现URL和用户名密码都清晰可见
更多【Android安全-Frida定位发包函数】相关视频教程:www.yxfzedu.com