某app目录接口逆向解密分析过程
1 使用Sunny工具抓包
使用Sunny对App进行抓包,发现响应加密,看起来像AES的CBC模式:
2 使用JADX定位加密位置 ,关键加密算法如图
- 使用frida拦截明文
#代码如下
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(),标准系统库函数,我们继续跟进去看
这个类里面的函数已经写的很清楚了,使用WT工具进行解密:
使用javascript脚本解密:
到这里已经分析结束了,本文章仅限交流学习
总结
本次APP逆向过程需要熟练各种工具的使用以及环境的配置,如使用frida等动态调试技术,而大部分人的手机都没有root,所以使用模拟器,JEB,GDA等环境
|