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

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

  •  
  •   ThinkStu · 265 天前 · 2122 次点击
    这是一个创建于 265 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    完整代码如下:

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

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

    这不是防调试是啥
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1438 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:09 · PVG 01:09 · LAX 10:09 · JFK 13:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.