V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ThinkStu
V2EX  ›  问与答

有些网页一打开 F12,就会进入 debugger 状态

  •  
  •   ThinkStu · 2023-08-06 10:57:02 +08:00 · 2362 次点击
    这是一个创建于 474 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这是不是网站的一种防御机制?🥲有点难受...

    完整代码如下:

    ((function() {
        var callbacks = [],
            timeLimit = 50,
            open = false;
        setInterval(loop, 1);
        return {
            addListener: function(fn) {
                callbacks.push(fn);
            },
            cancleListenr: function(fn) {
                callbacks = callbacks.filter(function(v) {
                    return v !== fn;
                });
            }
        }
    
        function loop() {
            var startTime = new Date();
            debugger;
            if (new Date() - startTime > timeLimit) {
                if (!open) {
                    callbacks.forEach(function(fn) {
                        fn.call(null);
                    });
                }
                open = true;
                window.stop();
                document.body.innerHTML = "";
            } else {
                open = false;
            }
        }
    })()).addListener(function() {
        window.location.reload();
    });
    
    12 条回复    2023-08-07 17:16:46 +08:00
    MossFox
        1
    MossFox  
       2023-08-06 11:00:20 +08:00   ❤️ 2
    开发者工具里面点一下停用断点即可。
    murmur
        2
    murmur  
       2023-08-06 11:00:51 +08:00   ❤️ 1
    这种都是小把戏,那种检测调试模式下某些特殊对象的也是小把戏,以前听说过一种,美化后美化前因为某些不规范的写法,会导致代码执行逻辑变更,从而达到反调试

    但是这种我还没见过
    tanranran
        3
    tanranran  
       2023-08-06 11:06:17 +08:00
    @murmur #2 这种好强
    emonc
        4
    emonc  
       2023-08-06 11:13:45 +08:00   ❤️ 2
    debugger --> contextmenu --> ignore line
    estk
        5
    estk  
       2023-08-06 11:16:00 +08:00 via iPhone
    支付宝官网打开调试显示招聘信息
    caiqichang
        6
    caiqichang  
       2023-08-06 16:20:03 +08:00
    先打开开发者工具 -> deactive breakpoints ,再打开页面
    loading
        7
    loading  
       2023-08-06 18:23:00 +08:00
    感觉放水了,我一般用这个,你可以感受一下。
    https://github.com/obfuscar/obfuscar
    yanyao233
        8
    yanyao233  
       2023-08-06 22:49:27 +08:00
    @estk discord 也是
    ericlgq2
        9
    ericlgq2  
       2023-08-07 01:38:16 +08:00 via Android
    这是开发忘了把断点去掉,别问我是怎么知道的。。。
    HuskyYellow
        10
    HuskyYellow  
       2023-08-07 09:47:24 +08:00
    aegon466
        11
    aegon466  
       2023-08-07 10:46:23 +08:00
    这就是前端忘了去掉 debug 或者是故意留的
    murmur
        12
    murmur  
       2023-08-07 17:16:46 +08:00
    @ericlgq2 你不看图的,这逻辑太简单了,检测每次函数的执行时间,如果函数执行太长,就停止所有代码,body 全清空

    这不是防调试是啥
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5346 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 07:00 · PVG 15:00 · LAX 23:00 · JFK 02:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.