js逆向—同花顺补环境

案例:A股市场_同花顺行情中心_同花顺财经网

网站:https://q.10jqka.com.cn/

1.首先打开网站开发者工具,找到加密参数

可以发现加密参数就是 cookie 中的v参数

所以我们就快速进行第二步

2.Hook cookie的加密位置

hook 脚本如下:

(function(){
    Object.defineProperty(document,'cookie',{
        set:function(val){
            if (val.indexOf('v')!= -1){
                debugger;
            }
            console.log('Hook捕获到cookie设置->',val);
            return val;
        }
    })
})();

点击运行脚本,随后点击翻页,就hook到加密参数 v 的值啦:

接着,跟堆栈,寻找 v 生成的具体位置:

找到了!

找到具体位置后,往里面继续跟函数:

点击后跳转到:

记住这一步,这里非常有用,因为在后面的步骤中我们将会用到它。

3.补环境

现在正式进入补环境咯!

首先,将代码全部复制进入本地js文件中。

a. 直接运行代码,发现报错,如下:


所以,我们得去补document对象中为undefined的部分。先在浏览器中查看:

返回标签信息,补环境时补其对象:

再运行

发现第一次运行时的 getElementsByTagName 报错没有了,是不是很神奇哇?

其实 我们可以回过头,查看第一次运行时的报错(代码释义为:如果前面成立,则不执行后面):

复制框住的地方,在网页上寻找,下一个断点进行观察:

点击刷新,发现断点不会在第二个断点中停留,即不执行第二个断点后的代码。

所以,第一次执行的两个报错,其实是因为前一个方法为空,导致后面的方法报错。

b.查找  Document.createElement() 、EventTarget.addEventListener() ,发现它们都是方法

所以,把它们都“搞里头”:

现在再运行:

发现没有报错,那很好了。

还记得我前面说的很重要的一步吗,现在我们就要用到它咯。

c.定位到本地js代码中的位置,导出全局对象



执行:

发现如下报错:

当前的 E 缺失了

我们可以通过直接补环境的方法解决,差什么补什么。

所有补环境代码如下:

4.运行代码

环境已经全部补完,让我们运行js代码试试呢:

成功生成加密参数。

over over

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值