js 禁用F12开发者工具

180it 2024-10-01 PM 126℃ 0条

// 原版
setInterval(function() {
check()
}, 4000);
var check = function() {
function doCheck(a) {

if (("" + a/a)["length"] !== 1 || a % 20 === 0) {
  (function() {}
  ["constructor"]("debugger")())
} else {
  (function() {}
  ["constructor"]("debugger")())
}
doCheck(++a)

}
try {

doCheck(0)

} catch (err) {}
};
check();

// 简化版 效果一样
const check = () => {

// 这里为什么能检测 我真没看出来有什么特殊的地方
    /** 
    猜测是在一瞬间瞬间让你的函数调用超出最大限制, 然后导致控制报错, 
    此时这个函数下的就存在了某个可以让你进行 debugger 操作的函数, 有大佬可以解释下吗? 
    本意是为了方便开发者调试结果变成了拦截开发者
    **/
const doCheck = (a) => {
        (function() {}["constructor"]("debugger")()); // 立即执行匿名函数 调用 constructor函数传入 字符串 "debugger"
    doCheck(++a); // 递归调用
};
try {
    doCheck(0);
} catch (err) {
    console.log("err", err); // 超出最大调用限制 Maximum call stack size exceeded
}

};
check();
// 每隔4秒检测一次
setInterval(check, 4000);

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

js 禁用F12开发者工具