22.安卓逆向2-frida hook技术-app使用非http协议抓不到包解决方式
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:图灵Python学院
工具下载:
链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwd=zy89
提取码:zy89
复制这段内容后打开百度网盘手机App,操作更方便哦
上一个内容:21.安卓逆向2-frida hook技术-HookOkHttp的拦截器
本次内容与之前的内容跳度很大,跳过的内容要看之前的安卓逆向(看实战部分,后面frida调试实战不会细写,只会围绕着app调试的难点来写)
青花瓷(Charles)只能抓取http协议请求的数据包,如果不用http协议的请求,才用自研请求协议,青花瓷就没法抓,比如手tb用的spdy协议(现在演变成了QUIC协议)、mt用的cip协议,这些app都可以通过降级来让它们使用http协议,怎么才能让它降级?就是首先使用jadx-gui把app进行逆向,然后搜索协议名(协议名通过app官网或第三方介绍得到,QUIC协议就是通过文档知道的)
如下图通过搜索spdy可以看到下图红框的内容,enable中文意思是能够使用,合起来就是能够使用Spdy,它的值是true,直接把它的值改成false就可以让app降级使用http协议了(为什么改了它就可以使用http了,首先中文意思很明确了能够使用spdy,然后因为app中为了防止非http协议没法使用,会保留http协议的使用,然后通过中文意思就可以大胆的猜测是通过enableSpdy变量控制用不用非http协议)
然后鼠标选中下图红框,选中之后按x
按完x就可以看到都有谁使用了 enableSpdy 这个变量
然后鼠标双击下图红框位置
如下图红框就会跳到代码位置
然后鼠标右击选择复制为frida片段
然后粘贴到js文件中
然后把返回值改成false
然后注入这个Firda脚本,注入之后,再来到青花瓷,就可以发现可以正常抓包了,然后就可以分析请求参数了
某音:https://mp.weixin.qq.com/s/LS5QKLSYRNFGJm4-YPPTig
Java.perform(function(){// 获取json(网络数据都会是json格式)var gson = Java.use("com.google.gson.Gson");// 某音会使用 com.bytedance.retrofit2.SsHttpCall获取请求对象var SsHttpCall = Java.use("com.xxxx");// 自行看文章找hook什么类和方法// 得到请求对象SsHttpCall.xxx.implementation=function(){// 得到响应var response = this.xxx();// 得到请求var request = this.originalRequest.value;// 请求地址var url = request.getUrl();// 打印响应console.log(gson.$new().toJson(response.body()))// 打印请求地址console.log("url:",url);return response;}
});