Android抓包方式与工具详解
一、Android抓包方式
对Https降级进行抓包,降级成Http
使用抓包工具对Https进行抓包
二、常用的抓包工具
1. Wireshark
- 侧重于TCP、UDP传输层
- HTTP/HTTPS也能抓包,但不能解密HTTPS报文
- 功能强大但操作复杂
2. Fiddler
- 支持HTTP/HTTPS协议
- 可篡改请求参数和响应数据
- 支持设置请求断点重发
- 支持弱网模拟
- 仅支持Windows平台
3. Charles
- 功能与Fiddler类似
- 支持所有主流平台
- 界面简洁,操作简单
4. Sniff Master(抓包大师)
- 专为移动端设计的抓包工具
- 支持HTTPS流量解析
- 提供直观的数据可视化界面
- 支持请求/响应修改和重发
- 跨平台兼容性好
三、抓包工具Charles详解
1. 下载安装
从官网下载安装包,直接点击安装即可。
2. 工作原理
- 拦截请求,代理客户端向服务端发送请求
- 拦截服务端响应,拿到服务端返回的公钥
- 客户端安装Charles证书并添加信任
- 客户端生成会话密钥并使用Charles公钥加密发送
- Charles解密会话密钥并用服务端公钥加密发送
- 服务端解密会话密钥
- 使用会话密钥加密response并返回
- Charles解密response展示明文
3. 证书配置注意事项
- Android 6.0及以下:只需安装Charles证书
- Android 7.0及以上:需手动添加证书信任
系统网络安全配置差异:
Android 6.0及以下:
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
Android 7.0及以上:
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
4. 解决方案
- 在res/raw目录下添加charles.pem证书文件
- 创建res/xml/network_security_config.xml文件
- 配置清单文件:
<application
android:networkSecurityConfig="@xml/network_security_config"
</application>
5. 使用教程
- 查看Charles端口号(默认8888)
- 查看本机IP地址
- 设置手机WiFi代理
- 保存Charles根证书
- 将证书添加到项目res/raw目录
- 创建网络安全配置文件
- 在手机上安装并信任证书
四、抓包大师(Sniff Master)的优势
- 一键式配置:相比Charles复杂的证书配置流程,Sniff Master提供了更简单的配置向导
- 智能解析:自动识别和解析多种协议格式
- 性能优化:针对移动端优化的低资源占用
- 实时监控:提供流量实时监控和统计功能
- 数据导出:支持多种格式的数据导出和分析
无论是开发调试还是安全测试,选择合适的抓包工具能大大提高工作效率。Charles作为老牌抓包工具功能全面,而Sniff Master则在易用性和移动端适配方面有独特优势,开发者可根据实际需求选择最适合的工具。