使用包嗅探器显示发送应用的数据包

5次阅读
没有评论

问题描述

作为一名Android开发者,通常使用WiFi+Fiddler来监控开发应用程序的通信情况。然而,发现手机(LG G2 Jellybean,型号LG-F320S)会无故访问联合国网站(http://www.un.org),但无法确定哪个应用发送了这些数据包。市面上的多种Android包嗅探器虽然可以显示数据包内容,但无法标明数据包是由哪个应用发出的。因此,需要一种方法来识别发送数据包的应用。

解决方案

方案1

使用OS Monitor应用

  1. 安装应用:首先,在手机上安装OS Monitor应用。
  2. 打开应用:启动OS Monitor应用,切换到网络标签页。
  3. 等待数据包:耐心等待,直到访问联合国网站的数据包出现在远程IP列表中。
  4. 检查应用:查看哪个应用与该IP地址进行了连接。这种方法适用于那些频繁访问特定网站的应用。

方案2

手动分析日志

  1. 安装ADB工具:确保你的电脑上安装了Android Debug Bridge(ADB)工具。
  2. 获取设备日志:通过ADB命令连接到设备并获取网络相关的日志信息。
    sh
    adb logcat | grep -i "http://www.un.org"
  3. 分析日志:从日志中查找与访问UN网站相关的应用名。

方案3

使用第三方软件和服务

  1. 选择软件:考虑使用如Charles Proxy这样的HTTP代理软件,它不仅可以捕获数据包,还可以显示请求和响应的详细信息,包括发起请求的应用。
  2. 配置代理:在手机上配置浏览器或其他应用使用Charles作为代理服务器。
  3. 启动捕获:启动Charles并开始捕获流量,观察哪个应用发起了对UN网站的请求。

方案4

开发自定义解决方案

  1. 创建应用:开发一个简单的Android应用,该应用监听网络请求并在请求发生时记录相关信息(如请求URL、应用名称等)。
  2. 实现逻辑:在应用中实现网络请求拦截逻辑,记录每个请求的来源应用。
  3. 测试应用:将此应用部署到手机上,观察其能否正确记录访问UN网站的应用信息。

以上方案各有优缺点,可以根据实际情况选择合适的方法。对于经常性的监测需求,建议使用专门的包嗅探工具;而对于一次性的排查需求,则可以通过手动分析日志或使用第三方软件来解决。

正文完