在仔细阅读了您的问题后,发现了一些问题:
而且除了3G的巨额费用外,这款手机在Wifi以外的时间也很少。
您的iPhone处于睡眠模式时,会关闭WiFi无线电以节省电池电量。因此,如果您有一些数据匮乏的应用程序在手机处于睡眠/锁定状态时在后台运行,则它们是通过3G进行的。请注意,WiFi处于睡眠模式下的行为有些不一致。但是,通过关闭蜂窝数据,可以确保在执行这些测试时手机永远不会使用3G 。这样,当它进入休眠状态时,它将继续使用WiFi而不是3G进行数据传输,您将可以捕获监控网络中的所有流量。
您可以将一些可能有助于您追查罪魁祸首的技术拼凑在一起。
快速通行证,您可以尝试使用mitmproxy监视手机在WiFi网络上时的状态。通过这篇出色的mclov.in博客文章,您可以在Mac上为手机设置代理,并通过它过滤所有http / s流量:
- 下载mitmproxy工具并通过转到mitmproxy文件夹并运行sudo python setup.py install进行设置。如果一切顺利,则mitmproxy必须在$ PATH中可用。
- 通过运行mitmproxy启动mitmproxy。
- 通过运行ifconfig en1(或所使用的接口)来获取计算机的IP地址。
- 进入无线设置,在iPhone上设置代理,将代理设置为“手动”,然后将IP设置为计算机的IP,并将端口设置为8080。
如果将mitmproxy设置为记录对文件的http / s调用,则可以在一段时间后对其进行分析并查找趋势。您还可以检查http / s调用上的有效负载,因此您可以通过这种方式发现异常大的请求。
当然:这种方法假设罪魁祸首是使用http / s进行通信。如果不是这样,您将不会通过mitmproxy看到问题,而必须诉诸较低级别的解决方案。
您需要监视您控制的WiFi网络上的所有流量,以帮助您至少找到数据传输的端点。设置带宽监控并非难事,但是要使用消费级硬件来保持每个IP,每个端点的日志确实很难,因为它可能会存储大量数据。必须检查每个数据包的来源,目的地,记录时间和大小-总计起来非常快。
但是您可以获得一些体面的数字并缩小搜索空间,因此这可能是人类可理解的。
首先:您需要在每个IP级别上建立具有带宽监视功能的网络。为此,我建议使用运行Tomato的Linksys WRT54GL消费者级WiFi路由器和用于IP级带宽跟踪的TeamanIPTraffic附加组件。
第二:将路由器上的DNS设置为使用OpenDNS。在您的OpenDNS帐户中,以跟踪DNS查找:
现在,将记录您在网络上执行的所有DNS查找。
在此网络上为手机分配静态IP,以便于跟踪。
还有...等着看。
您将在路由器的每IP活动表中监视分配给电话的IP地址的活动。当此IP地址的数据活动激增时,您将转到OpenDNS控制台,并查看手机数据传输频繁的时间段内DNS查找的统计信息和日志。
这应该给出当时正在解析的主机名的简短列表。有了该列表,您也许可以将其范围缩小到一个应用程序。