JS逆向 - 瑞数4代cookie补环境调试

JS逆向 - 瑞数4代cookie补环境调试,第1张

文章旨在学习和记录,若有侵权,请联系删除

文章目录 前言一、202页面分析二、本地调试1.扣代码2.补环境


前言

目标网址:aHR0cHMlM0EvL3dlbnNodS5jb3VydC5nb3YuY24v
目标参数:cookie中的 FSSBBIl1UgzbN7N80T
目标特点:js混淆、大数组、环境检测、控制流平坦化


一、202页面分析

瑞数4代主要有两层js

第一层是202页面返回的js

第二层是第一层js中用eval执行的虚拟机里面的代码
(可全局搜索.call定位到eval处)

根据上篇文章《JS逆向 - 某数4代特征》可知,第一次响应返回的页面有三个重点。

我们先打上script断点,然后请求网网址,断住。


格式化后,

第一处meta标签
这里面的内容将会在第二层的js里面用到,主要是用于加密,js取出时也起到检测环境的作用,需要正则匹配出拿进第二层里面。

第二处导入了一个js文件
这个js文件主要用于生成第二层混淆的js代码。

第三处自执行函数
主要有三方面作用,第一是生成了大对象window.$_ts(在第二层js中会频繁用到);第二是定义了一些值,这些值的变量名会变,不要记变量,可以正则匹配这些值的位置(在第二层js中用于关键流程);第三是声明了一些函数,第二层js中也会回来调用。(如果使用补环境方式,第一层的js都可以不用扣,下面会介绍如何补环境来过某数)

二、本地调试 1.扣代码

由于页面直接给出的就是一个自执行函数,我们直接扣下来,别忘了将meta和js文件里的内容也拿出来。

补上window后我们就可以进行调试了。

使用pycharm不方便调试js,容易卡死,下面我们使用vscode

全局搜索 .call 并打上断点,debugger,然后点单步追进去。

我们这就成功的进入了第二层js里面。

2.补环境

我们将文章《Proxy代理函数在JS逆向补环境中的妙用》中介绍的 proxy 代码拿过来用。

将 proxy 代码放到抠出来的js头部,运行,会发现输出了很多环境,根据undefined的值来补。

补完第一层,单步进入eval.call里面补第二层。

主要检测的环境有:
window、document、navigator、location、localStorage等等。

注意要把 setTimeout、setInterval 置空。

最后,让我们来进行愉快的补环境调试吧。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/940625.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-17
下一篇 2022-05-17

发表评论

登录后才能评论

评论列表(0条)

保存