112

我有一个使用第三方 jar 的 android 应用程序。应用程序运行时,从第三方 jar 向服务器发送 Http 请求。我需要捕获从第三方 jar 发送的 HTTP 请求。我想知道是否有一种简单的方法可以使用非根设备实现

启动:我尝试下载“proxyDroid”,但它需要 root 手机我也尝试使用“shark reader”下载“shark for root”,这也需要 root 设备是根设备

我需要 fiddler/wireshark 可以为 Windows 做的事情。一个网络数据包分析器,可以很容易地与 android 应用程序集成,它可以提供包含所有头字段的请求对象。

4

9 回答 9

102

您可以在您的 PC 或 MAC 上安装Charles——一个 HTTP 代理/HTTP 监视器/反向代理,使开发人员能够查看他们的机器和 Internet 之间的所有 HTTP 和 SSL/HTTPS 流量。

配置步骤:

  • 让您的手机和 PC 或 MAC 在同一个局域网
  • 启动您安装的 Charles(默认代理端口为 8888)
  • 设置手机的wifi配置:将delegate的ip设置为您的PC或MAC的ip,delegate的端口设置为8888
  • 在手机中启动您的应用程序。并监控 Charles 上的 http 请求。
于 2013-07-16T19:38:03.443 回答
23

有很多方法可以做到这一点,但其中之一是提琴手

提琴手配置

  1. 转到选项
  2. HTTPS选项卡中,启用捕获 HTTPS 连接解密 HTTPS 流量
  3. 连接选项卡中,启用允许远程计算机连接
  4. 重启提琴手

安卓配置

  1. 连接到同一个网络
  2. 修改网络设置
  3. 添加代理以连接您的 PC 的 IP 地址(或主机名)和默认提琴手的端口(8888/您可以在设置中更改)

现在您可以在 fiddler 中查看您设备的完整日志

你也可以在这里找到完整的说明

于 2017-09-05T19:30:45.897 回答
20

我刚刚安装了 Drony。它不是共享软件,并且在 Android 3.x 或更高版本的手机上不需要 root。

https://play.google.com/store/apps/details?id=org.sandrob.drony

它可以拦截和记录请求。

于 2015-05-26T14:49:03.267 回答
10

现在是 2020 年,对于最新的解决方案,您可以使用 Burp Suite 来嗅探 https 流量,而无需对您的 Android 设备进行 root。

脚步:

  1. 安装 Burp 套件

  2. 启用代理

  3. 在您的 Android 手机中导入认证

  4. 将您的 Wifi 配置更改为监听代理

  5. 利润!

我在这里写了完整的教程和截图:https: //www.yodiw.com/monitor-android-network-traffic-with-burp/

于 2020-05-21T01:45:32.433 回答
7

您可以将提琴手用作网络调试器 http://www.telerik.com/fiddler/web-debugging

Fiddler是 Telerik 软件的调试工具,它可以帮助您拦截从您的机器发起的每个请求。

于 2015-03-02T15:23:50.013 回答
6

你可以使用打嗝套件。请遵循以下程序。

配置 Burp 代理侦听器

在 Burp 中,转到“代理”选项卡,然后转到“选项”选项卡。在“代理侦听器”部分中,单击“添加”按钮。

在“绑定”选项卡的“绑定到端口:”框中,输入一个当前未使用的端口号,例如“8082”。然后选择“所有接口”选项,然后单击“确定”。

配置您的设备以使用代理

在您的 Android 设备中,转到“设置”菜单。

如果您的设备尚未连接到您正在使用的无线网络,请打开“Wi-Fi”按钮,然后点击“Wi-Fi”按钮以访问“Wi-Fi”菜单。

在“Wi-Fi 网络”表中,找到您的网络并点击它以调出连接菜单。

点击“连接”。如果您已配置密码,请输入密码并继续。

连接后,按住网络按钮以调出上下文菜单。点击“修改网络配置”。

确保勾选“显示高级选项”框。

通过点击按钮将“代理设置”更改为“手动”。

然后在“代理主机名”中输入运行 Burp 的计算机的 IP。输入之前在“代理侦听器”部分中配置的端口号,在本例中为“8082”。点击“保存”。

测试配置

在 Burp 中,转到“代理拦截”选项卡,并确保拦截处于“打开”状态(如果按钮显示“拦截已关闭”,则单击它以切换拦截状态)。

在你的安卓设备上打开浏览器并进入一个 HTTP 网页(当你在你的安卓设备中安装了 Burp 的 CA 证书后,你可以访问一个 HTTPS 网页。)

该请求应该在 Burp 中被拦截。

于 2016-09-25T08:38:36.440 回答
3

https://mitmproxy.org/设置为同一 LAN 上的代理

  • 开源
  • 内置python 3
  • 可通过 pip 安装
  • 有一个Docker 镜像
于 2018-05-05T01:14:07.013 回答
2

SandroProxy似乎比 Drony 更好(由同一开发者开发):您可以(但不必)方便地查看和分析 PC 浏览器中的流量。

也应该在模拟器中工作。

于 2017-06-25T13:56:07.983 回答
2

如果您愿意使用 Genymotion(或其他受支持的模拟设备),您可以使用HTTP Toolkit,它可以分析和拦截/重写 HTTP 调用。

要安装您要调查的应用程序,Genymotion 支持 Open GApps(用于 Google Play 支持)和拖放 APK 文件。

HTTP Toolkit 也适用于真实设备,但它需要 root 权限才能正常工作。

在此处输入图像描述

于 2021-07-17T14:35:02.860 回答