ThinkStu
V2EX  ›  问与答

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

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

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

    这不是防调试是啥
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4917 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 01:27 · PVG 09:27 · LAX 17:27 · JFK 20:27
    ♥ Do have faith in what you're doing.