我们正在寻找一种类似Wireshark的工具,可以在与第三方合作之前在iPhone上测试第三方应用程序。有什么建议吗?
答案 0 :(得分:44)
如果您只想查看HTTP / HTTPS流量,那么中间人代理就像其他答案所建议的那样,是一个很好的解决方案。
数据包嗅探的最佳解决方案(虽然它仅适用于实际 iOS设备,而不是模拟器)我发现使用rvictl
。 This blog post有一个很好的写作。基本上你做:
rvictl -s <iphone-uid-from-xcode-organizer>
然后你用Wireshark(或你最喜欢的工具)嗅探它创建的界面,当你完成时关闭界面:
rvictl -x <iphone-uid-from-xcode-organizer>
这很好,因为如果你想要对模拟器进行数据包嗅探,你也不得不通过流量到达本地Mac,但是rvictl
创建了一个虚拟界面,只显示来自iOS的流量您已插入USB端口的设备。
注意:这仅适用于Mac。
答案 1 :(得分:36)
你没有指定你使用的平台,所以我认为它是Mac; - )
的独立实现我在Mac上启动SquidMan,然后在iPhone上我在General / Wifi Settings中输入Proxy params。
然后我可以在Console App中查看HTTP流量,查看squid-access.log
如果我需要更多信息,我会切换到tcpdump,但我认为WireShark也应该工作。
答案 2 :(得分:21)
我使用Charles Web Debugging Proxy费用但是他们有试用版。
如果您的iPhone / iPad与Mac共享相同的Wifi网络,则设置非常简单。
如果您的Mac和iOS设备不在同一个Wifi网络上,您可以使用“系统偏好设置”中的“共享”下的“Internet共享”选项将Mac设置为Wifi路由器。然后,您将设备连接到“Wifi”网络,并按照上述步骤操作。
答案 3 :(得分:16)
通过代理运行它并使用Wireshark监控流量。
答案 4 :(得分:13)
i
符号&gt;在底部代理&gt;设置为手动,然后为服务器将您正在使用的计算机放在IP地址上,对于端口放置8888,因为这是每个应用程序的默认值最后一节的一般说明,如果您想要嗅探所有网络流量,请使用ARP spoofing将所有流量从iOS转发到笔记本电脑/台式机。 ARP欺骗有多种工具,需要对所有细节进行研究。这使您可以看到每一盎司的流量,因为您的路由器将所有用于iOS设备的数据路由到笔记本电脑/台式机,然后您将这些数据转发到iOS设备(自动)。
请注意我只推荐这作为最后的手段。
答案 5 :(得分:9)
我不知道你的要求究竟是什么,这就是我从iPhone上看到的包装:在以太网上连接mac,通过机场共享网络并将iPhone连接到无线网络。在mac上运行Wireshark或Packet Peeper。
答案 6 :(得分:9)
在越狱的iPhone / iPod上,“tcpdump”和“pirni”都可以很好地捕获流量 - 可在cydia存储库中找到。通过将捕获转移到另一台机器并使用wireshark之类的东西来完成对这些数据的分析。然而,鉴于这些工具似乎正在进行积极的开发,iPhone可能很快就会处理它。
答案 7 :(得分:8)
我找到的最佳解决方案是Works:
通过USB连接您的设备
然后输入以下命令:
rvictl -s UDID - (设备20个字符的ID,你可以在iTunes中找到4t或在Xcode中找到组织者)
sudo launchctl list com.apple.rpmuxd
sudo tcpdump -n -t -i rvi0 -q tcp
或者只是sudo tcpdump -i rvi0 -n
如果rvictl无法正常安装Xcode
欲了解更多信息: Remote Virtual Interface
http://useyourloaf.com/blog/2012/02/07/remote-packet-capture-for-ios-devices.html
答案 8 :(得分:6)
这是另一种方式http://www.tuaw.com/2011/02/21/how-to-inspect-ioss-http-traffic-without-spending-a-dime/
我没有看到Roger Nolan的回复,上面的链接与使用不同工具的工作流程相同。
答案 9 :(得分:3)
取决于您想要做什么,通过代理运行它并不理想。只要数据包没有被篡改,透明代理就可以正常工作。
我准备将在iPhone 4.3.x上从iPhone传输到iPad的GPS数据转换为获取香草数据,获得干净网络转储的最佳方法是使用“tcpdump”和/或“pirni”正如已经建议的那样。
在我们想要Tethered数据的特殊情况下,它需要尽可能透明。显然你需要你的手机才能成为JailBroken才能工作。
答案 10 :(得分:2)
在Mac OS X上尝试Debookee,如前所述,感谢MITM,它将在不需要代理的情况下透明地拦截iPhone的流量。 然后,您将实时查看设备使用的不同协议。
免责声明:我是Debookee开发团队的一员,这是一个付费应用程序。试用版将在有限的时间内向您显示所有功能。
答案 11 :(得分:1)
一般的解决方案是使用配置为透明代理的linux框(可能在虚拟机中)拦截流量,然后使用wireshark或tcpdump或任何您喜欢的方式对其进行分析。也许MacOS也可以这样做,我还没试过。
或者,如果您可以在模拟器中运行该应用程序,则可以监控自己计算机上的流量。
答案 12 :(得分:0)
Com'on,没有提及Fiddler?爱在哪里:)
Fiddler是一款非常受欢迎的HTTP调试器,面向开发人员而非网络管理员(即Wireshark)。
Setting it up for iOS is fairly simple process。它也可以解密HTTPS流量!
在QA部门开始使用Fiddler解决问题后,我们的移动团队终于得到了缓解。在小提琴手面前,人们不知所措地想知道应该责怪谁,移动团队或API团队,但现在不行了。