嗅探 Android 应用程序以查找 API URL

新手上路,请多包涵

我很好奇,如果 Android 应用程序(我安装的任何应用程序)对某些在线服务器(例如 RESTful 服务)进行 API 调用,我将如何找出它所使用的 API URL。我想我必须在设备上捕获数据包并可能在 Wireshark 或其他工具中分析它们以找到 URL?我在 Java/Android 开发方面相当有能力,但在涉及任何类型的网络分析业务时有点迷茫。

原文由 derpyderp 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 530
2 个回答

您可以在 WireShark 的帮助下完成此操作。我在这里列出步骤

  1. 在您的计算机上安装 WireShark

  2. 现在我们必须创建 Android 虚拟设备 (AVD),所以我们将从官方网站下载 Android SDK。 Android SDK 自带模拟器进行测试

  3. 设置 Android SDK 后,创建一个 Android 虚拟设备 (AVD),我们将在其上安装应用程序

  4. 启动该虚拟设备。您可以使用命令行启动( emulator @<AVD name>

  5. 使用 adb 命令创建虚拟设备安装应用后 adb install app_file_name.apk

  6. 现在我们可以开始捕获数据包,所以我建议关闭您计算机上正在使用网络的其他应用程序,以便我们捕获的数据包更相关。

  7. 现在以 root 访问权限启动 wireshark

  8. 选择要抓取的界面,点击start开始抓取。

    wireshar 启动图像

  9. 现在开始使用该应用程序,以便数据包来回传输,wireshark 将捕获它。

    数据包列表

  10. 如果您使用的应用程序涵盖了所有类型的活动,那么您可以停止 wireshark 来捕获数据包。

  11. 现在开始主要业务仔细分析数据包,但并非所有数据包都对我们的工作有用。因此,让我们过滤与您相关的数据包。让你的IP地址是192.168.0.32然后过滤所有IP是这个的数据包。所以过滤器表达式将是 ip.addr==192.168.0.32 应用这个过滤器。我们仍然应用另一个过滤器来仅列出相关数据包,以便该应用程序可能正在使用 HTTP 协议访问 API,因此应用 HTTP 过滤器。表达式将是 http 。您可以同时应用两个过滤器 ip.addr==192.168.0.32 and http 按回车键应用。

    wireshark 详细信息

  12. 仔细查看列出的数据包的信息,您会看到很多重要的细节、API 密钥、cookie 等

原文由 Alok 发布,翻译遵循 CC BY-SA 4.0 许可协议

一个非常快速的方法。

转到 PlayStore,搜索 Packet Capture

下载、安装并运行。

简单快捷。它将为您提供有关 API、URL 和响应及其标头的详细信息。

此应用程序遵循 数据包嗅探 的概念。因此,这可能不适用于 WhatsApp、Facebook、Twitter 等许多安全应用程序。

更新 1:

Playstore 中不再提供Packet Capture ,请尝试 OS Monitor

更新 2:

数据包捕获 再次可用。

原文由 reverie_ss 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题