0%

绕过网站js中的debugger反调试

概述

使用开发者工具(F12)分析一个网站时发现:
每隔一段时间就会有js代码主动触发调试器断点,妨碍分析。
问之度娘,遂得解法。

解决方法

1. 使用控制台对方法进行nop

有两种情况,一种是直接调用debugger,如:

1
function _$gy(){debugger;}

那么控制台执行以下语句即可:

1
function _$gy(){}

另一种是匿名函数,代码如下:

1
(function() {var a = new Date(); debugger; return new Date() - a > 100;}())

需要查看调用栈,找到调用进行重定义。具体操作为:
双击调用栈中的主调函数,找到函数名,控制台进行nop。

2. 禁用所有断点

这个问题解决起来还是蛮简单的,问题解决只需要一句话:禁止断点。
而对应的操作是在Chrome控制台的Source Tab页点击Deactivate breakpoints按钮或者按下Ctrl + f8。

来自突破前端反调试–阻止页面不断debugger

参考

如何解决出现debugger无法调试
突破前端反调试–阻止页面不断debugger