我如何监控Pokemon Go的Http请求?

时间:2016-07-10 22:01:21

标签: android http reverse-engineering

我很想知道Pokemon Go的要求以及回复的样子,类似于在网站上使用chrome dev工具。有没有什么方法可以监控Android应用程序的请求,就像我监控网站一样?

4 个答案:

答案 0 :(得分:7)

其他人已经为此提到了良好的MITM代理工具 - FiddlerCharles ProxyBurpMITM Proxy。但是,Pokemon Go使用Protocol Buffers进行通信,而不是XML,JSON等。这种格式对于人类来说更难以使用,因为它不会显示具有人类可读键或值的数据。如果没有应用程序和服务器用来解释数据的原始模式.proto文件,您必须查看原始数据并尝试通过执行不同的请求来了解它,并了解数据如何更改以尝试了解不同领域可能代表什么。然后,您可以自己构建.proto文件,以便以人类可读的方式显示数据。

答案 1 :(得分:5)

这是我尝试过的路径(不过专门针对口袋妖怪):

  1. 在您的计算机中安装mitmproxy:https://mitmproxy.org/
  2. 在某个端口启动代理:mitmproxy -p 3128
  3. 在您的设备网络设置中,将其配置为使用代理,并使用手动设置添加计算机的IP和启动代理服务器的端口(例如3128) - 假设您的设备和计算机位于同一个wifi网络中
  4. 使用您要检查请求的应用
  5. HTTP请求将显示在mitmproxy接口

答案 2 :(得分:2)

这些答案在当时都是完全正确的,但我觉得有些额外的信息是有必要的,因为有些变化。在版本0.31中,Pokemon Go添加了证书固定,这可以防止基本的MITM代理工作,而无需执行以下两项操作之一来取消固定证书。

  1. 您可以尝试找到已删除证书固定的Pokemon GO APK,然后照常执行MITM代理

  2. 您可以使用http://repo.xposed.info/module/de.rastapasta.android.xposed.pokemongo等xposed模块来欺骗

  3. 此外,protobuf文件此时已被相当成功地解码,this one等项目有助于让生活更容易嗅到这样的流量。

答案 3 :(得分:0)

是的,您可以让设备的所有请求通过您的PC并列出来。如果您使用Windows,我建议http://www.telerik.com/fiddler,对于Mac和Linux https://www.charlesproxy.com/