ThinkStu
V2EX  ›  问与答

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

  •  
  •   ThinkStu · Aug 6, 2023 · 3231 views
    This topic created in 1043 days ago, the information mentioned may be changed or developed.

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

    完整代码如下:

    ((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 replies    2023-08-07 17:16:46 +08:00
    MossFox
        1
    MossFox  
       Aug 6, 2023   ❤️ 2
    开发者工具里面点一下停用断点即可。
    murmur
        2
    murmur  
       Aug 6, 2023   ❤️ 1
    这种都是小把戏,那种检测调试模式下某些特殊对象的也是小把戏,以前听说过一种,美化后美化前因为某些不规范的写法,会导致代码执行逻辑变更,从而达到反调试

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

    这不是防调试是啥
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2687 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 10:43 · PVG 18:43 · LAX 03:43 · JFK 06:43
    ♥ Do have faith in what you're doing.