我很好奇如何找出安装在Android设备上的应用程序(任何一个应用程序)使用的API URL,如果它调用一些在线服务器的API(例如RESTful服务)。 我假设我必须在设备上捕获数据包,并可能在Wireshark或其他工具中分析它们以查找URL? 我对Java / Android开发相当熟练,但在涉及任何类型的网络分析业务时有点迷失。
我很好奇如何找出安装在Android设备上的应用程序(任何一个应用程序)使用的API URL,如果它调用一些在线服务器的API(例如RESTful服务)。 我假设我必须在设备上捕获数据包,并可能在Wireshark或其他工具中分析它们以查找URL? 我对Java / Android开发相当熟练,但在涉及任何类型的网络分析业务时有点迷失。
您可以借助WireShark来完成此操作。我在此列出步骤:
emulator @<AVD name>
)adb install app_file_name.apk
选择要捕获的接口,并单击“开始”以开始捕获。
现在开始使用该应用程序,以便数据包在Wireshark中传输和捕获。
如果您已使用覆盖各种活动的应用程序,则可以停止Wireshark以捕获数据包。
现在开始主要业务是仔细分析数据包,但并非所有数据包都对我们的工作有用。因此,让我们过滤出与您相关的数据包。假设您的IP地址是192.168.0.32,则筛选出所有IP地址为此的数据包。因此,筛选表达式将是ip.addr==192.168.0.32
应用此筛选器。仍然可以应用另一个过滤器仅列出相关数据包,因此可能该应用正在使用HTTP协议访问API,所以应用HTTP过滤器。表达式应为http
。您可以同时应用两个过滤器ip.addr==192.168.0.32 and http
按Enter键应用。
仔细查看列出的数据包的信息,您将看到许多重要的详细信息,如API密钥,cookie等。
一种非常快速的方法。
前往PlayStore,搜索Packet Capture
下载、安装并运行。
它易用简单且快速。它会给你有关API、URL和响应及其标头的详细信息。
此应用程序遵循数据包嗅探的概念。因此,它可能无法与像WhatsApp、Facebook、Twitter这样更加安全的应用程序一起使用。
更新1:
Packet Capture在Playstore中不再可用,尝试OS Monitor
更新2:
Packet Capture再次可用。
进入“设置”>“网络和Internet”>“移动热点”,启用“与其他设备共享我的Internet连接”。
将您的移动设备连接到该共享热点。
现在,要在移动设备中获取Internet访问权限,请单击“更改适配器选项”。
通过右键单击用于共享Internet的网络适配器,进入属性。
在“共享”选项卡中勾选“Internet连接共享”选项,并选择适当的连接(移动设备使用的本地连接),然后单击“确定”。
https
web流量,则可以输入tls.handshake.type eq 1
。如果流量未加密,您可以将所有NIC流量记录到文本文件中。例如:VBoxManage modifyvm "vm-name" --nictrace1 on --nictracefile1 c:\file.pcap
(参见这里)。
如果流量已加密,则可以使用中间人攻击方法。一种允许此操作的应用程序是HttpCanary。它将建立一个VPN连接并通过该VPN重定向您的流量。它可以解密并正常工作,但请注意您的私人数据。
如果应用程序正在使用证书固定,则变得更加复杂。阅读这篇博客。您将不得不在x86映像上使用此方法。请注意,在那篇文章中,作者使用的是Android x86 8.1(而不是x64!)和Xposed Android SDK27。祝你好运!!
$ tcpdump -D
1.eth0 [Up, Running, Connected]
2.any (Pseudo-device that captures on all interfaces) [Up, Running]
3.lo [Up, Running, Loopback]
4.bluetooth-monitor (Bluetooth Linux Monitor) [Wireless]
5.usbmon2 (Raw USB traffic, bus number 2)
6.usbmon1 (Raw USB traffic, bus number 1)
7.usbmon0 (Raw USB traffic, all USB buses) [none]
8.nflog (Linux netfilter log (NFLOG) interface) [none]
9.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]
10.dbus-system (D-Bus system bus) [none]
11.dbus-session (D-Bus session bus) [none]
12.bluetooth0 (Bluetooth adapter number 0)
13.eth1 [none, Disconnected]
https://play.google.com/store/apps/details?id=com.dans.apps.webd
我知道这个帖子已经很老了,但在2022年使用Postman代理可以帮助解决问题。 查看此链接以了解简单的步骤 https://blog.postman.com/using-postman-proxy-to-capture-and-inspect-api-calls-from-ios-or-android-devices/
请参阅此处设置https流量 https://learning.postman.com/docs/sending-requests/capturing-request-data/capturing-https-traffic/