柳州做网站哪家好,查询网站开发的端口,常熟网站制作,网站怎么做图片搜索不少网站会在代码中加入‘debugger’#xff0c;使你F12时一直卡在debugger#xff0c;这种措施会让新手朋友束手无策。
js中创建debugger的方式有很多#xff0c;基础的形式有#xff1a;
①直接创建debugger
debugger;
②通过eval创建debugger#xff08;在虚拟机中…不少网站会在代码中加入‘debugger’使你F12时一直卡在debugger这种措施会让新手朋友束手无策。
js中创建debugger的方式有很多基础的形式有
①直接创建debugger
debugger;
②通过eval创建debugger在虚拟机中创建
eval(debugger);
③通过Function创建debugger在虚拟机中创建
Function(debugger).call()
Function(debugger).apply()
Function().constructor(debugger).apply(action)
而我们遇到的debugger多数是在这些形式的基础上或配合定时器或加上循环甚至经过ob混淆。。。
对于过无限debugger常用的方法有以下这些
1、一律不在此处暂停 2、添加条件断点 在debugger处添加一个结果为false的条件让这个断点不会被运行 3、替换文件 如果debugger是在js文件中直接替换文件删掉debugger一劳永逸
4、hook
对于一些在虚拟机VM中生成的debugger使用‘一律不在此处暂停Never pause here’后会出现网站变的很卡的情况因为有些网站做了检测这么做会卡爆你的浏览器。这个时候我们就需要hook。
根据debugger创建方式的不同使用不同的hook代码
4.1、hook evel
eval_back eval
eval function (args) {if (args.includes(debugger)) {return null} else {return eval_back(args);}
}
4.2、hook constructor
Function.prototype._constructor Function.prototype.constructor;
Function.prototype.constructor function() {if(arguments.toString().includes(debugger)){return null}return Function.prototype._constructor.apply(this,arguments);
}
4.3、hook setInterval
setInterval_back setInterval
setInterval function(a,b){if(a.toString().includes(debugger)){return null;}return setInterval_back(a, b);
}
要注意注入hook代码要在执行debugger之前所以要先在debugger前面的地方打断点再刷新页面注入hook代码
5、油猴插件
有些网站刷新之后会新开虚拟机之前打下的断点就没有了无法在执行debugger之前注入hook。对于这种情况可以用油猴写hook脚本来监控网站不用提前打断点。