
SpiderDemo第二十五题-控制台检测
T25 控制台检测
网页打开后,F12或者控制台打开,会立即跳转到另一个网站,不让你打开控制台。
老规矩打开一个新网页,打上script断点,访问该网站,能看到断住了

从文件名称能看到此文件就是用来控制台检测,并且是jsvmp。我们首先本地替换一下,Override,记住不要格式化,后续的步骤基于本地替换

一:文件分析
可以直接将这个丢给AI分析,能知道关键位置如下:
VM解释器循环
1 | function Dg(nv,KN,Wn,na,zv) |
字符串解密器
1 | eK=function(Kv,WC){ |
二:手动提取关键信息
1、字符串恢复
找到return Cr[gm] = eN(nB)字符串解密器,打上logpoint断点
1 | console.log( |

放开断点,能看到console还原出实际的字符串

能看到他的检测函数就是如上这些,checkDebugger、forceRedirect等等这些。
在此处加上如下断点

找到了真正逻辑函数名,下一步就是定位检测逻辑,如上代码能够打印出他的堆栈,实际都是混淆的也没多大效果
2、找实际函数定义的位置
1 | debug(Object.defineProperty) |

放开后可以看到断在了ar函数


能看到ar是原生的Object.defineProperty。一直在这里单步,也能找到trigger、checkDebugger这些函数,我们直接使用条件断点hook,控制台执行
1 | const rawDP = Object.defineProperty; |

可以看到所有的检查点函数都断住了,而查看当前的函数,发现检测点都是执行的mm函数

我们此时重写这些检测点函数,我是全部重写了
1 | temp1 = obj |


执行后能看到出结果了

暂且这样吧, 不知道和出题者的原意是否一致。算做出来了吧

更多内容也在公众号更新:码字的秃猴

本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自码字的秃猴




