【发布时间】:2016-11-12 19:16:50
【问题描述】:
我很想看看 Pokemon Go 提出什么请求以及响应是什么样的,类似于在网站上使用 chrome 开发工具。有什么方法可以像监控网站一样监控安卓应用的请求?
【问题讨论】:
标签: android http reverse-engineering
我很想看看 Pokemon Go 提出什么请求以及响应是什么样的,类似于在网站上使用 chrome 开发工具。有什么方法可以像监控网站一样监控安卓应用的请求?
【问题讨论】:
标签: android http reverse-engineering
其他人已经为此提到了良好的 MITM 代理工具 -- Fiddler、Charles Proxy、Burp 和 MITM Proxy。但是,Pokemon Go 使用Protocol Buffers 进行通信,而不是 XML、JSON 等。这种格式对于人类来说更难使用,因为它不显示具有人类可读键或值的数据。如果没有应用程序和服务器用来解释数据的原始架构 .proto 文件,您将不得不查看原始数据并尝试通过执行不同的请求来理解它,并查看数据如何更改以尝试理解什么不同的领域可能代表。然后,您可以自己构建 .proto 文件,以便以人类可读的方式显示数据。
【讨论】:
这是我尝试过几次的路径(但不是专门针对 Pokemon):
mitmproxy -p 3128
【讨论】:
这些答案在当时都是完全正确的,但我觉得考虑到一些变化,需要提供一些额外的信息。在 0.31 版中,Pokemon Go 添加了证书固定,这可以防止基本 MITM 代理在不执行以下两种操作之一来取消固定证书的情况下工作。
您可以尝试查找已移除证书固定的 Pokemon GO APK,然后照常执行 MITM 代理
您可以使用诸如http://repo.xposed.info/module/de.rastapasta.android.xposed.pokemongo之类的xposed模块来欺骗
此外,截至目前,protobuf 文件已被相当成功地解码,this one 等项目有助于让嗅探此类流量变得更加容易。
【讨论】:
是的,您可以让来自您设备的所有请求都通过您的 PC 并列出。如果你使用 Windows,我建议 http://www.telerik.com/fiddler,对于 Mac 和 Linux https://www.charlesproxy.com/。
【讨论】: