检测方式有多种
键盘监听:是否按f12
浏览器内外高度差值
检测console
利用代码运行时间差
利用tostring
检测栈的层数 caller
...
反调手段
死循环 无限递归 两个方法互相调用 计时器 ...
解决方案
非虚拟机情况下
debugger处右键edit改为false
js文件重载,替换js文件
虚拟机情况下(eval function)
可以将构造器置为空
Function.prototype.constructor = function(){}
或者严谨一点加个判断
var aaa = Function.prototype.constructor;
Function.prototype.constructor = function(x){
if (x=="debugger"){
return function(){};
}
return aaa;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。