'''# 日常开发中,那些帮我省下无数时间的抓包工具
在iOS开发这几年里,遇到最多的问题,除了证书安装失败和接口调试不通,就是“我到底怎么才能方便地抓到这个App的网络包?”
一开始,我们都用Charles
如果你是前端或iOS新手,最先接触的应该是 Charles。UI不错,代理配置方便,还有各种断点修改功能。它对HTTP支持很好,对HTTPS支持也算稳定,但iOS设备上用它,难点主要有两个:
- 要配置 WiFi 代理,并安装证书
- 多数App现在启用了 HTTPS 双向验证(SSL Pinning),这就麻烦了
这时候很多人就放弃了。
Fiddler:老牌PC工具,但不太适合移动端
Fiddler 对Windows用户来说非常熟悉,特别是在企业内网或者做接口分析的时候。但它的劣势也明显:
- 在Mac上体验不佳
- 对iOS设备抓包依旧需要设置代理
- 双向验证的App依然无法搞定
你可以试着配合一些动态注入工具(例如 Frida)手动绕过pin校验,不过成本很高,效率低。
Wireshark:强大但门槛高
如果你想分析TCP、UDP甚至底层协议,Wireshark几乎无敌。但它也不是真正意义上的“开发者日常工具”。
比如你只是想看看某个App是不是成功登录、调用了哪个API,Wireshark就过于重量级了。
那有没有一个更轻量、直观,而且不需要越狱就能抓App包的方式?
其实有很多类似小工具这两年都在兴起,比如 PacketCapture、HTTP Catcher、Thor 等。有些是iOS App 有些是桌面软件,每个都有优缺点。
在尝试了几个之后,我现在用得比较多的,是一个叫 抓包大师(Sniffmaster) 的桌面端工具。它有个我非常喜欢的特性:
HTTPS抓包插上设备就能直接抓包,不需要配置WiFi代理,也不需要越狱。
比如有次我在调试一个使用了 SSL pinning 的 App 登录逻辑,用传统方法抓不了包。用它插上iPhone,点击App登录,立刻就能看到 HTTPS 解密后的请求内容,包括完整的请求头、Body、返回状态码和数据。
它和其它工具的主要差别是:
- 支持直接插线抓包(iOS/Windows/mac都支持)
- 自动安装证书,不弹窗,不提示,静默处理(非常适合内测和大批量设备调试)
- 内置拦截器,可以写 JavaScript 脚本动态修改请求或响应,等于是把 Charles 的断点调试功能提了个速
当然,我并不是说它一定比其它工具强,只是这套“即插即用、HTTPS免代理免越狱、还能脚本拦截”的组合,确实让我这半年开发效率提升不少。特别是测试阶段抓取登录、支付流程的数据,方便得多。
总结
其实工具没有好坏,只有适不适合当前任务。Charles适合做基础代理调试,Fiddler是Windows上的经典之选,Wireshark适合协议分析。而像抓包大师这种新型工具,更适合做移动端HTTPS解密和快速验证。
有时候,把工具换一换,效率就上来了。'''
0 个评论
要回复文章请先登录或注册