免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:图灵Python学院
本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要盲目相信。第一次接触安卓逆向写的很烂,后面有机会再全部重写。
工具下载:
链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3
提取码:6tw3
复制这段内容后打开百度网盘手机App,操作更方便哦
上一个内容:30.安卓逆向-抓包-r0capture
上一个内容里写了r0capture,本次再写一个app逆向实战,本次app为了避免被举报还是没法给,这次是一个买房租房的app
如下图抓到的包
然后复制为cURL
给它转成Python代码
然后把请求头里的看着像加密数据的参数挨个删除,然后运行Python代码看看那些删除了接口就掉不通了
下图红框里的是url编码,这种数据可以使用url解密得到明文数据
如下图,url解码
最终发现没有下图红框的数据请求就调不通了,接下来就要找它的数据怎么来的
首先通过hook头部试试,如下图hook请求头
如下图红框可以得到(如果找不到可以重启一下app重新试试),注意下图里的字母开头是大写的,有的搜索工具它会区分大小写,所以搜索的时候使用一半关键字,比如 authorization 搜索的时候用 horizatio 这个当关键字去搜索
然后它既然可以通过hook请求头得到我们想要的东西,那就看看它的栈,如下图红框的代码
function hookqingqiu(){ // hook请求头 var Builder = Java.use("okhttp3.Request$Builder") Builder["addHeader"].implementation = function (str1, str2){ console.log("key:", str1) console.log("val:", str2) if (str1 == "Authorization") { showStacks(); } var result = this["addHeader"](str1, str2) console.log(result) return result } } Java.perform(function (){ // 调用java代码也就是getCalc方法 hookqingqiu() })
打印的栈
然后打开jadx-gui 开始反编译apk,然后搜索
然后可以看到Authorization的值来自于signRequest方法,所以直接hook signRequest方法
然后复制为Frida片段
可以正常得到值,然后这个参数到这也破解了