在iOS开发这几年里,遇到最多的问题,除了证书安装失败和接口调试不通,就是 “我到底怎么才能方便地抓到这个App的网络包?”
如果你是前端或iOS新手,最开始接触的应该是 Charles。UI不错,代理配置方便,还有各种断点修改功能。它对HTTP支持很好,对HTTPS支持也算稳定,但iOS设备上用它,难点主要有两个:
这时候很多人就放弃了。
Fiddler 对Windows用户来说非常熟悉,特别是在企业内网或者做接口分析的时候。但它的劣势也明显:
你可以试着配合一些动态注入工具(例如 Frida)手动绕过pin校验,不过成本很高,效率低。
如果你想分析TCP、UDP甚至底层协议,Wireshark几乎无敌。但它也不是真正意义上的“开发者日常工具”。 比如你只是想看看某个App是不是成功登录、调用了哪个API,Wireshark就过于重量级了。
其实有很多类似小工具这两年都在兴起,比如 PacketCapture、HTTP Catcher、Thor 等。有些是iOS App 有些是桌面软件,每个都有优缺点。
在尝试了几个之后,我现在用得比较多的,是一个叫 抓包大师(Sniffmaster) 的桌面端工具。它有个我非常喜欢的特性:
HTTPS抓包插上设备就能直接抓包,不需要配置WiFi代理,也不需要越狱。
比如有次我在调试一个使用了 SSL pinning 的 App 登录逻辑,用传统方法抓不了包。用它插上iPhone,点击App登录,立刻就能看到 HTTPS 解密后的请求内容, 包括完整的请求头、Body、返回状态码和数据。
当然,我并不是说它一定比其它工具强,只是这套“即插即用、HTTPS免代理免越狱、还能脚本拦截”的组合,确实让我这半年开发效率提升不少。特别是测试阶段抓取登录、支付流程的数据,方便得多。
其实工具没有好坏,只有适不适合当前任务。Charles适合做基础代理调试,Fiddler是Windows上的经典之选,Wireshark适合协议分析。而像抓包大师这种新型工具,更适合做移动端HTTPS解密和快速验证。
有时候,把工具换一换,效率就上来了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70045659/viewspace-3083932/ ,如需转载,请注明出处,否则将追究法律责任。