1 使用Sunny工具抓包
使用Sunny对App进行抓包,发现响应加密,看起来像AES的CBC模式:
2.png (434.66 KB, 下载次数: 0)
下载附件
2024-3-13 16:37 上传
2 使用JADX定位加密位置 ,关键加密算法如图
3.png (147.08 KB, 下载次数: 0)
下载附件
2024-3-13 16:37 上传
5.png (139.48 KB, 下载次数: 0)
下载附件
2024-3-13 16:37 上传
[/ol]
#代码如下
function hook(){
let OkHttpHelper = Java.use("com.wpyx.eduWp.common.util.http.OkHttpHelper");
OkHttpHelper["requestPost"].implementation = function (str, hashMap, onOkHttpCallBack) {
console.log('requestPost is called' + ', ' + 'str: ' + str + ', ' + 'hashMap: ' + hashMap + ', ' + 'onOkHttpCallBack: ' + onOkHttpCallBack);
let ret = this.requestPost(str, hashMap, onOkHttpCallBack);
console.log('requestPost ret value is ' + ret);
return ret;
};
}
function main(){
Java.perform(function (){
hook();
})
}
setImmediate(main);
这个类名已经解密完了 ,代码里面已经很明显了 ,里面包含了一个解密的函数 AesUtils.decrypt(),标准系统库函数,我们继续跟进去看
4.png (162.45 KB, 下载次数: 0)
下载附件
2024-3-13 16:38 上传
这个类里面的函数已经写的很清楚了,使用WT工具进行解密:
7.png (388.79 KB, 下载次数: 0)
下载附件
2024-3-13 16:38 上传
使用javascript脚本解密:
8.png (349.51 KB, 下载次数: 0)
下载附件
2024-3-13 16:38 上传
到这里已经分析结束了,本文章仅限交流学习
总结
本次APP逆向过程需要熟练各种工具的使用以及环境的配置,如使用frida等动态调试技术,而大部分人的手机都没有root,所以使用模拟器,JEB,GDA等环境