2
头图

检测方式有多种

键盘监听:是否按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;
    }

代码乐章
25 声望2 粉丝

自我介绍一下,00后python程序员,在不断学习的道路上,将自己所学尽量分享给大家,xdm有什么有趣的代码也可以投稿分享!