y376694236 发表于 2020-12-31 16:25

某视频网站,不但检测adblock,而且加入了F12调试检测

/**
* 检测到调试时进行的操作
*/
let onDebug = function () {
    //提示
    document.write('检测到非法调试!请停止调试后刷新本页面!');
    /*卡死*/
    // while (true) {
    //   console.log('hi');
    //   console.clear();
    // }

};

/*通过 debugger 时间检测*/
setInterval(function () {
    let st, et;
    st = new Date().getTime();
    debugger;
    et = new Date().getTime();
    if ((et - st) > 1000) {
      onDebug();
    }
}, 1000);

/*检测 console.log() 在不同环境(F12执行时间久一些)下的运行时间不同*/
/*不要这段代码了,因为执行时间还和电脑配置有关,具有不确定性*/
// setInterval(function(){
//   let startTime = performance.now(),
//         check, diff;
//   for (check = 0; check < 1000; check++) {
//         console.log(check);
//         console.clear();
//   }
//   diff = performance.now() - startTime;
//   if (diff > 200) {
//         onDebug();
//   }
// },1000);

/*监控 F12的按下*/
document.onkeydown = document.onkeyup = document.onkeypress = function (event) {
    const e = event || window.event || arguments.callee.caller.arguments;

    if (e && e.keyCode == 123) {
      onDebug();
    }
};

/*调试相关的函数重定义*/
// window['console']['log']= function(){};

/**
* 当dom被发送至控制台时(例如console.log)
* 浏览器会自动通过该dom的getter()获取该 dom 的id
* 所以我们可以创建一个dom,然后发送到控制台,并且重定义其getter()
*/
let div = document.createElement('div');
Object.defineProperty(div, "id", {
    get: () => {
      clearInterval(loop);
      onDebug();
    }
});
let loop = setInterval(() => {
    console.log(div);
    console.clear();
});

挑灯看花 发表于 2020-12-31 18:34

直接用fiddler替换js文件{:301_997:}

 发表于 2020-12-31 18:29

检测f12,那右键检查呢

stone009 发表于 2020-12-31 18:36

挑灯看花 发表于 2020-12-31 18:34
直接用fiddler替换js文件

正解,有的是办法调试它的网页。

不忘初心哟 发表于 2020-12-31 19:09

抓包很容易反调试的

y376694236 发表于 2021-1-2 21:03

 发表于 2020-12-31 18:29
检测f12,那右键检查呢

检查f12一样的
页: [1]
查看完整版本: 某视频网站,不但检测adblock,而且加入了F12调试检测