我很好奇我如何能够找到一个Android应用程序(我已安装的任何应用程序)的API URL,如果它对某些在线服务器(例如RESTful服务)进行API调用.我认为我必须在设备上捕获数据包,并可能在Wireshark或其他东西中分析它们以找到URL?我在Java/Android开发方面相当称职,但在任何类型的网络分析业务方面都有点失落.
你可以在wireshark的帮助下做到这一点.我在这里列出步骤
在计算机上安装wireshark
现在我们必须创建Android虚拟设备(ADV),以便我们从官方网站下载Android SDK.Android SDK附带模拟器进行测试
设置Android SDK后,创建一个Android虚拟设备(AVD),我们将在其上安装应用程序
启动该虚拟设备.你可以使用命令行来启动(emulator @<AVD name>
)
使用adb命令创建虚拟设备安装应用程序后 adb install app_file_name.apk
现在我们可以开始捕获数据包,因此我建议关闭计算机上正在使用网络的其他应用程序,这样我们捕获的数据包就会更加相关.
现在启动具有root访问权限的wireshark
选择要捕获的接口,然后单击"开始"以开始捕获.你可以在http://i.stack.imgur.com/C891Q.png或以下看到截图
现在开始使用该应用程序,因此数据包将来回传输,wireshark将捕获它.您将在http://i.stack.imgur.com/9Brdl.png或更低版本中看到如此sreenshot的wireshark中的详细信息
如果您使用的应用程序涵盖所有类型的活动,那么您可以阻止wireshark捕获数据包.
现在开始主要业务来仔细分析数据包,但并非所有数据包对我们的工作都有用.所以我们过滤一些与您相关的数据包.让您的IP地址为192.168.0.32,然后过滤所有IP为此的数据包.所以过滤器表达式将ip.addr==192.168.0.32
应用此过滤器.我们仍然应用另一个过滤器来仅列出相关数据包,因此app可能正在使用HTTP协议访问API,因此应用HTTP过滤器.表达将是http
.你可以同时申请两个过滤器ip.addr==192.168.0.32 and http
按Enter键申请.现在您将看到最相关的数据包.你可以在http://i.stack.imgur.com/rZ6Vu.png或以下看到截图
仔细查看列出的数据包信息,您将看到许多重要的细节,API密钥,cookie等
一种非常快速的方法.
转到PlayStore,搜索数据包捕获
下载,安装和运行.
它简单快捷.它将为您提供有关API,URL和响应及其标题的详细信息.
此应用程序遵循Packet Sniffing的概念.因此,这可能不适用于WhatsApp,Facebook,Twitter这样的安全应用程序.
更新1:
在 数据包捕获没有Play商店中的更多,请尝试OS监测器