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

Posted

技术标签:

【中文标题】我将如何监控 Pokemon Go 的 Http 请求?【英文标题】:How would I monitor Pokemon Go's Http requests? 【发布时间】:2016-11-12 19:16:50 【问题描述】:

我很想看看 Pokemon Go 提出什么请求以及响应是什么样的,类似于在网站上使用 chrome 开发工具。有什么方法可以像监控网站一样监控安卓应用的请求?

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

这是我尝试过几次的路径(但不是专门针对 Pokemon):

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

【讨论】:

附录:开启mitmproxy后可能需要访问神奇网站“mitm.it”查看HTTPS加密流量。【参考方案3】:

这些答案在当时都是完全正确的,但我觉得考虑到一些变化,需要提供一些额外的信息。在 0.31 版中,Pokemon Go 添加了证书固定,这可以防止基本 MITM 代理在不执行以下两种操作之一来取消固定证书的情况下工作。

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

    您可以使用诸如http://repo.xposed.info/module/de.rastapasta.android.xposed.pokemongo之类的xposed模块来欺骗

此外,截至目前,protobuf 文件已被相当成功地解码,this one 等项目有助于让嗅探此类流量变得更加容易。

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于我将如何监控 Pokemon Go 的 Http 请求?的主要内容,如果未能解决你的问题,请参考以下文章

Pokemon Go

具有地理位置的混合应用程序开发,增强现实(如 pokemon go)。是不是可以?

大华简报:2016澳唱片工业协会奖揭晓 Flume横扫5奖/Pokemon GO感恩节百变怪开跑

我希望我的按钮与我的 gui 中的选择按钮不在同一行?我将如何做到这一点?

如何进行嵌入式论证?

如何在 pokeAPI 中获取有关 pokemon 的详细信息