如何在 Android 上捕获应用程序流量

Posted

技术标签:

【中文标题】如何在 Android 上捕获应用程序流量【英文标题】:How to capture app traffic on Android 【发布时间】:2014-03-12 12:18:39 【问题描述】:

我正在尝试从 android 手机上的应用程序捕获流量,虽然我已经在手机上设置了代理并且可以捕获来自手机的所有其他互联网流量(使用 Charles 代理),但我看不到此应用的任何流量。

这是如何完成的,如何捕获流量?

更新:

如果您需要帮助从您的计算机设置 wifi 热点,那么您 可以将您的手机连接到它并 Wireshark 流量,看看 以下链接获取路线:http://www.wi-fiplanet.com/tutorials/article.php/3849841/How-to-Create-Wireless-Hosted-Networks-in-Windows-7.htm

如果您需要帮助将 ios 应用程序反编译为程序集,请查看此 链接:http://www.infointox.net/?tag=arm

如果你想要一个比 dex2jar 更好的 Dex to Java 反编译器,请检查这个 出:https://github.com/skylot/jadx

【问题讨论】:

而一个应用是……什么? 我会在应用程序上猜一猜... Instagram 【参考方案1】:

有几种方法:

    将您的手机连接到您的内部 wifi 接入点(在连接之前检查高级选项并设置手动代理)。注意:此方法不适用于所有网络数据。某些连接会忽略此设置。 (仅适用于有根手机)在您的设备上安装“Shark for Root”应用程序...它将捕获所有流量..它将生成可以使用 Wireshark 软件在您的 PC 上分析的转储文件 最好的方法:将您的 PC 设置为 wifi 接入点,并让您的 android 设备使用此 wifi 连接,然后使用相同的 Wireshark 应用程序嗅探流量。

【讨论】:

【参考方案2】:

我强烈建议您使用“CharlesProxy”(或类似名称)之类的东西。设置代理时要注意两件事(我希望它是您正在开发的应用程序,否则请确定您所做的事情,因为它可能是非法的):

1 - 如果你想从你的 Android/iOS 手机攻击安装在本地计算机上的代理,你需要将代理配置为使用本地 IP:PORT(这意味着 CharlesProxy 需要配置为地址如果使用普通的 wifi 网络,则为 192.168.xx)。然后,Android/iOS 手机需要将代理设置为相同的 IP:PORT 2 - 如果应用使用 https,有几种方法可以管理 HTTPS 连接:

a) 如果您的应用程序接受所有证书,那么任何代理捕获和解密信息都不是问题。 b) 如果您的应用程序只接受系统(和受信任)证书,您必须将 charlesproxy 证书导出到您的 Android 手机并将其添加到用户的受信任证书列表中。

c) 如果您的应用程序正确地执行“证书固定”,您将无法捕获流量,除非您拥有服务器的私有证书并将其添加到(您的手机)和代理配置中.

希望对你有帮助!

【讨论】:

【参考方案3】:

无需 root 手机,在 Windows 7(及更高版本)上设置恶意接入点。然后使用 WireShark 捕获流量并存储以供进一步分析。您可以对 iOS 或其他 WiFi 设备使用相同的技巧。请参阅(我的)博客,我在其中详细记录了这一点。

http://mohit.io/blog/windows-capture-analyze-mobile-device-network-traffic/

【讨论】:

以上是关于如何在 Android 上捕获应用程序流量的主要内容,如果未能解决你的问题,请参考以下文章

当Android设备设置为AP时在wireshark上捕获手机流量

Android Fabric - 以自定义间隔发送捕获的异常

如何在charles代理中阻止localhost流量?

Wireshark localhost 流量捕获[关闭]

Android模拟器:如何监控网络流量?

如何在 Python 上使用 selenium webdriver 和 browsermob 代理捕获网络流量?