js逆向研究【案例实战2】

接口分析

数据接口如下:
在这里插入图片描述
没有关键词,选择使用接口路径定位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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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jesse_Kyrie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值