对于通过 SSL 执行 POST 请求 (JSON) 并接收 JSON 对象作为响应的 Android 应用程序,获取 JSON 响应有多难?
反编译应用程序以获取请求并发送它并查看响应的最简单方法是什么?
什么是最简单的方法,以及可以使用哪些技术使其变得更加困难?
对于通过 SSL 执行 POST 请求 (JSON) 并接收 JSON 对象作为响应的 Android 应用程序,获取 JSON 响应有多难?
反编译应用程序以获取请求并发送它并查看响应的最简单方法是什么?
什么是最简单的方法,以及可以使用哪些技术使其变得更加困难?
这完全取决于应用程序本身以及实施了什么样的安全措施。假设请求是通过 HTTP(s) 发送的,那么最简单的方法是使用 Burp 之类的代理。您需要在移动设备上安装 CA 证书。您将能够在代理软件 (Burp) 中看到请求和响应。
APP <----> proxy <----> server
如果应用程序使用 SSL/TLS 固定,那么上述解决方案将无法开箱即用。某些功能将对证书执行额外检查,您需要篡改此类功能才能绕过它。一般有两种方式:
第二种解决方案是根本不使用代理!通常使用 HTTP 客户端库来执行此类请求。您可以挂钩 HTTP 请求函数并直接打印内容。
APP <----> server
^-> hooked functions which prints the requests
当应用程序不使用标准 HTTP 请求时,第二种解决方案可能很有用。一些应用程序使用二进制协议,例如 gRPC,挂钩myclient_post(jsonData)
函数并打印参数 + 响应比对二进制协议进行逆向工程、设置代理等更容易......
一些可能有用的链接: