本案例提供解密分析思路 最终解密JS代码以及 Python调用代码
1 分析包
发包webtranslate,里面有个sign参数看上去需要解密(实际可以固定,后续会分析)
返回的包是一个加密字符串需要解密
2 分析sign
可以搜索发现sign的位置,使用A函数进行的处理
2.1 分析A函数 发现调用了w函数,并且有四个参数d e u t
分别查看 d e u t
d u 固定的
e是时间戳
t 是一个加密的密钥,可以用过git hub上的ast-hook-for-js-RE-master获取到这个值的位置,或者多debug几次这个值是不会变的
2.2 分析w函数
w函数就是一个md5加密 由于在a函数中有个时间戳每次都会变 所以w函数每次加密的值也会变,因此最后的sign值每次都不会一样,可以把sign固定
3 分析解密逻辑
由于后台返回的是一个加密字符串,我们需要解密获取明文数据
3.1 获取解密位置
有两种方式获取解密地方一种使用JSON.parse进行JS hook
(function() {
var _parse = JSON.parse;
JSON.parse = function(ps) {
console.log("Hook JSON.parse ——> ", ps);
debugger;
return _parse(ps); // 不改变原有的执行逻辑
}
})();
另外可以使用