安卓App网络抓包分析:从工具选择到加密参数定位
安卓 App 网络抓包分析是逆向的基本功。搞清楚 App 跟服务器通信了什么,才能理解它的逻辑。一、工具选择
[*]Charles:Mac/Win 通用,界面友好,适合 HTTP/HTTPS 抓包
[*]mitmproxy:命令行,支持脚本编程,适合批量分析和自动化
[*]HTTPCanary(安卓端):手机上直接抓包,不需要电脑
[*]Reqable:国产新工具,跨平台,免费
二、抓包配置
[*]电脑开代理工具,设置 WiFi 代理指向电脑 IP 和端口
[*]安装代理工具的 CA 证书到手机系统证书库(Android 7+ 需要 root 才能装系统证书)
[*]Android 7 以上不信任用户证书。解决方案:用 Magisk 模块把用户证书移到系统证书
三、分析流程
[*]打开 App 操作目标功能(登录、支付、提交等)
[*]在抓包工具里找对应的 HTTP 请求——看 URL 路径判断是哪个接口
[*]看请求头:Authorization、Cookie、自定义签名头(sign、token)
[*]看请求体:JSON 参数有什么字段,哪些是动态生成的
[*]看响应体:服务器返回什么数据,跟 App 显示的内容对比
四、常见加密参数分析
很多 App 的请求参数里有加密字段(sign、data、token)。找到加密逻辑:
[*]先在 jadx 里搜参数名(如 "sign"),找到拼接和加密的代码
[*]确认加密算法(MD5/AES/RSA)
[*]用 Frida hook 加密函数,打印输入和输出
[*]自己实现同样的加密逻辑,就能构造请求了
五、遇到 SSL Pinning
App 不信任代理证书,请求失败。用 objection 或 Frida 脚本绕过(之前有专篇讲过)。
https://www.metk.cn/img/posts/android_network.jpg 我了个去,顶了 加固厂商之间差异挺大,同一套思路不一定通用。有没有推荐的入门资料? App 侧的安全基本靠客户端自觉,服务端校验才是最后一道。 实际项目里最实用的往往是最朴素的抓包手段。 做这类分析一定要有授权,边界要清楚。想了解下有没有遇到反调试的坑? 这类问题排查最怕环境差异,先在本地复现会快很多。 现在很多方案开始用双端校验,单点突破越来越难。想请教下工具链是怎么配的? 版本迭代之后要重新分析,这部分工作很难复用。 如果只是学习目的,建议从开源项目练手,别碰线上。