黄鸟抓包软件是一款强大的抓包和注入工具,已经支持HTTP/HTTPS 1.0和1.1协议,还支持HTTP2协议以及其他TCP协议。黄鸟抓包提供了强大的数据包解析和注入功能,伪造请求、修改响应都在一念之间。
如果您有分析移动端应用流量的需求,必须在移动端安装CA根证书,我们已经在Reqable中内置了Android和iOS证书安装的指引。如果您使用电脑端App,请切换到Android和iOS的Tab按照步骤进行安装;如果您使用移动端App,请进入侧边栏 -> 证书管理 -> 安装根证书到本机,然后选择合适的方案进行安装。
重要须知
如果您使用电脑端App进行流量分析,请安装电脑端的CA根证书到移动端设备;如果您使用移动端App直接进行流量分析,请安装移动端的CA根证书到移动端设备。
Reqable给每台设备生成的CA根证书均不相同。如果您希望所有设备共用同一个CA根证书,可以导出.p12格式证书后再在其他设备上导入。
备注
小技巧:移动端App初始化选择协同模式并扫码连接电脑后,会自动同步电脑端的CA根证书到当前移动端设备,此时两台设备的CA根证书为同一个。
Android
Android证书分为两种:用户证书和系统证书。用户证书位于/data/misc/user/0/cacerts目录,系统证书位于/system/etc/security/cacerts。其中,用户目录不需要额外权限即可更改,系统目录需要权限解锁system分区才可修改。您可以按照下面的场景选择任意一个合适的证书安装方案。
1. Android 7.0以下设备
Android 7.0以下设备默认信任用户证书,直接将证书安装到用户目录即可:设置-> 安全 -> 加密与凭据 -> 安装证书 -> CA证书,选择导出的证书并安装(需要用户授权验证)。
2. Root设备并已解锁system分区
直接使用adb命令推送证书到系统证书目录。此证书为hash.0格式,具体hash值请参考App内的说明。
adb root
# restarting adbd as root
adb shell avbctl disable-verification
adb remount
adb push 364618e0.0 /system/etc/security/cacerts/364618e0.0
警告
由于Android 14证书迁移到apex模块,故此方案仅适合Android 13及以下版本。
3. Android项目配置信任路径
如果您是Android开发者并拥有项目的修改权限。您可以直接将证书安装到用户目录,然后在项目中配置信任用户目录证书即可。
第一步:手机上安装证书:设置-> 安全 -> 加密与凭据 -> 安装证书 -> CA证书,选择导出的证书并安装(需要用户授权验证)。
第二步:创建 res/xml/network_security_config.xml
第三步:配置 AndroidManifest.xml
...
请在发行版本中移除此配置,更多有关网络安全配置文件资料,请参考:Android开发文档。
4. Android项目降低targetSdkVersion
如果您是Android开发者并拥有项目的修改权限。您可以直接将证书安装到用户目录,然后将项目的targetSdkVersion降低至23或以下。
第一步:手机上安装证书:设置-> 安全 -> 加密与凭据 -> 安装证书 -> CA证书,选择导出的证书并安装(需要用户授权验证)。
第二步:降低targetSdkVersion。
android {
defaultConfig {
...
targetSdkVersion 23
...
}
}
5. Magisk模块安装到系统目录
Reqable应用内提供了Magisk模块安装包,可以一键安装证书到系统目录。支持Magisk和KernelSU,支持Android 5以上任何版本。
警告
KernelSU刷入模块后,可能需要需要授予Reqable Root权限,否则证书无法生效。
6. Chrome内核浏览器
最新版本Chrome内核浏览器对系统目录证书启用了CT日志验证,即使证书已经成功安装到系统目录,仍然会出现NET:ERR_CERTIFICATE_TRANSPARENCY_REQUIRED到问题。遇到这种问题,请将证书从系统目录中移除并安装到用户目录。Chrome内核浏览器默认会信任用户证书并不会进行CT日志验证。
7. Flutter应用
Flutter框架开发的Android应用程序只信任系统目录证书,不会信任用户目录证书,这个是写死在框架里面的。无论是配置network_security_config.xml还是降低targetSdkVersion均不会生效。
iOS
在iOS设备上安装证书非常简单,按照下面的操作即可。
首先,下载并安装描述文件(证书)。描述文件可以手动保存,也可以通过浏览器下载。
● 手动保存:点击右上角导出CA证书,在文件应用的Reqable文档目录下找到导出的CA证书,并手动复制或移动到上一级目录,点击证书后出现提示已下载描述文件。
● 浏览器下载:点击证书自动打开浏览器下载,下载完成后自动出现提示已下载描述文件。
第二步:打开 设置 -> 下载的描述文件 -> 选择文件 -> 安装 刚刚下载的描述文件。
第三步:信任证书,设置 -> 通用 -> 关于 -> 证书信任设置 -> 打开开关。
特殊情况
在一些特殊情况下,即使已经安装了证书可能也无法正常解析HTTPS流量,常见的有下面这些情况。
● 网络请求启用了固定证书,要求服务器返回指定签发的证书。
● 网络请求启用了双向验证,要求客户端也要上传证书给服务器进行验证。
● 应用使用了内置的CA证书验证,而不是使用系统的CA证书。
#1 独立模式
Reqable可以独立地对流量进行监听,无需以来桌面端应用程序。用户可以在手机上直接对应用进行抓包,查看HTTP报文,分析网络请求,方便快捷地定位问题。Reqable手机端提供了各式各样的视图,例如Json视图、Hex视图、图片预览等,方便开发者查看和分析数据。此外,用户还可以对捕获的请求进行重放、编辑、分析和保存等操作。
#2 协同模式
如果你觉得手机操作不方便,可以利用App将流量转发到Reqable桌面端。无需手动配置wifi代理,只需扫描二维码,即可将手机上的流量转发到桌面端。并且,协同模式下还可以开启增强抓包功能,可以拦截不走系统代理的应用程序的流量,例如Flutter应用程序。协同模式下,用户可以在电脑端直接对请求进行重放、断点、重写和脚本等操作。
#3 流量抓包
Rehable默认使用VPN技术对应用程序流量进行抓包,目前支持下面这些特性:
- HTTP/1.x, HTTP2协议版本。
- HTTP/HTTPS/Socks4/Socks4a/Socks5代理协议。
- HTTPS,TLSv1.1、TLSv1.2和TLSv1.3加密协议。
- 基于HTTP1升级的WebSocket协议。
- IPv4 and IPv6.
- SSL代理。
- HTTP/HTTPS二级代理。
- 筛选、搜索和排序。
- 编辑API。
- 历史记录。
- 重发回放。
- 颜色高亮。
- HAR支持。
- 生成代码。
#4 API测试
Reqable还提供了API测试和管理能力:
- HTTP/1.1, HTTP2和HTTP3(QUIC)请求测试。
- API集合。
- 环境变量。
- 参数批量编辑。
- 授权设置。
- 代理设置。
- 性能数据查看。
- Cookie管理。
- 历史记录。
- cURL支持。
- 生成代码。
1、原始查看器,显示原始数据包数据。
2、文本查看器,将正文数据显示为文本。
3、十六进制查看器,将正文数据显示为十六进制字符串。
4、标头查看器,显示 http 请求和响应标头。
5、Json 查看器,显示格式化后的json 数据,支持节点展开和折叠。
6、URL 查看器,显示 url 路径和查询参数。
7、Cookie 查看器,显示 cookie 名称、值、过期时间、域等。
8、图片查看器,支持显示BPM、PNG、GIF、JPG、WEBP格式。
1、支持协议
HTTP1.0、HTTP1.1、HTTP2.0、WebSocket 和 TLS/SSL。
2、注入功能
HttpCanary支持修改请求和响应数据,然后提交到客户端或服务端,也就是注入功能。HttpCanary提供了两种不同的注入模式:静态注入和动态注入。使用这两种模式,可以实现对请求参数,请求/响应头,请求/响应体,响应行的注入。
3、内容总览
支持浏览一个网络请求的总体概况,包括URL、HTTP协议、HTTP方法、响应码、服务器Host、服务器IP和端口、Content-Type、Keep-Alive、时间信息、数据大小信息等。
4、数据筛选和搜索
提供了多维度的数据过滤器和搜索功能,比如通过应用、Host、协议、方法、IP、端口、关键词搜索过滤等。
5、屏蔽设定
可以对网络请求的数据发送以及服务器响应进行屏蔽操作,这个功能可以非常方便地帮助开发者进行Reset API的调试。
6、自定义Mod
这是一个正在开发中的实验性功能。开发者可以开发自己的Mod集成进HttpCanary中,也可以安装扩展Mod。Mod可以对数据包进行修改等自定义操作,也就是一个高级的注入器!我们将会尽快发布Mod-SDK。
9、音频查看器,支持播放AAC、WAC、MP3、OGG、MPEG格式。