【发布时间】:2015-06-22 18:49:58
【问题描述】:
我想用wireshark 捕获Android 应用程序的一条http 消息。
我试图过滤到 android 的 ip 地址,然后是 mac 地址,但没有成功。 我确信解决方案很简单,但我还想不通。
【问题讨论】:
标签: android emulation wireshark genymotion
我想用wireshark 捕获Android 应用程序的一条http 消息。
我试图过滤到 android 的 ip 地址,然后是 mac 地址,但没有成功。 我确信解决方案很简单,但我还想不通。
【问题讨论】:
标签: android emulation wireshark genymotion
Genymotion VM 在底层 VirtualBox 配置中有两个网络适配器。您应该捕获哪一个取决于您要查找的内容。此外,一些细节(适配器名称等)取决于您使用的操作系统。但是,概念是相同的。
适配器 1,如果您使用的是 Ubuntu,通常是 vboxnet0,是一个仅用于主机的适配器,用于支持主机和 VM 之间的本地交互。在默认的 Ubuntu 设置中,这是 192.168.56.0 网络。主机是192.168.56.1,而VM 通常最终会从VirtualBox 的内置DHCP 服务器获得192.168.56.101。 Android 调试桥 (ADB) 使用此连接将开发工具与 VM 连接起来。例如,这就是 Eclipse ADT 和 Android Studio 如何与 VM 通信以安装 APK 等。当您执行 adb shell 时,您也通过此网络进行连接。 如果您想检查您的开发工具如何与您的 VM 通信,请在 vboxnet0(或等效项)上捕获。
Adapter 2 通常被 NAT 到您主机的网络连接,通常类似于 Ubuntu 上的 eth0 或 wlan0。这将为 VM 启用 Internet 访问。 如果您想查看您的虚拟机如何与本地网络或互联网交互,请针对您主机的主网络适配器进行捕获。不幸的是,当虚拟机进行 NAT 时,您的虚拟机流量将与您的虚拟机流量具有相同的 IP主机,使其难以过滤。如果这导致问题,请关闭您的 VM,直接打开 VirtualBox(即没有 Genymotion 启动器),将适配器 2 更改为“桥接适配器”,然后在 VM 的网络配置中选择当前活动的主机适配器。如果您的本地 LAN 使用 DHCP(可能),这将允许 VM 获得它自己的 IP,然后您可以在 Wireshark 中对其进行过滤。重新启动 VM 后(从 Genymotion 启动器),您可以从主机中找出分配给 adb shell ifconfig 的地址。查找与 VIrtualBox Adapter 2 对应的 eth1(eth0 用于 VirtualBox Adapter 1 上的 adb 连接)。
【讨论】:
eth0(硬线以太网适配器)、eth1(用于我的连接热点的 USB 以太网)和wlan0(WiFi)。为了让 VM 能够访问 Internet,我必须在从 Genymotion 启动 VM 之前将其更改为我正在使用的任何连接。另外,FWIW,我为 Adapter Type:(在 Advanced 下)选择了 virtio-net。
如果您使用 Genymotion,捕获主机(即您的机器)和访客(即 Genymotion 模拟器)之间的流量非常简单。
【讨论】: