接口分析
数据接口如下:
没有关键词,选择使用接口路径定位js【使用路径api/coin/tickers】
定位到一下js文件,并在来源面板打开。
逆向调试与代码还原
搜索关键词JSON.parse
定位到以上的位置,断点调试后确定er函数即为解密函数
进入er函数定义代码【复制er函数的代码】
代码粘贴到编辑器,输入接口数据,并通过断点确定e【e为密钥】
运行过后需要补充en函数,复制en函数代码到编辑器运行。
t9.ZP方法报错,这里其实就是js用于解压缩数据的函数,在nodejs中可以使用zlib代替【代码替换后如下】
执行整体代码,查看输出结果:【解密成功】
详细的解密代码如下:
const CryptoJS = require('crypto-js');
const zlib = require('pako');
function en(t) {
var e, n = zlib.inflate(new Uint8Array(t.match(/[\da-f]{2}/gi).map(function(t) {
return parseInt(t, 16)
}))), r = "";
for (e = 0; e < n.length / 16384; e++)
r += String.fromCharCode.apply(null, n.slice(16384 * e, (e + 1) * 16384));
return decodeURIComponent(escape(r += String.fromCharCode.apply(null, n.slice(16384 * e))))
};
function er(t, e) {
var n = en(CryptoJS.AES.decrypt(t, CryptoJS.enc.Utf8.parse(e), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString(CryptoJS.enc.Hex));
return '"' == n.charAt(0) && (n = n.substring(1, n.length)),
'"' == n.charAt(n.length - 1) && (n = n.substring(0, n.length - 1)),
n
};
// const encryptedText = 'Ih8u30yO0JoYOcmQ+ezttUqg9XRo7VnQn2WhY75LXll/UDUoiTOfkPwwxCNuSzik';
const encryptedText = '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