前端防止调试 JS

    

前端防止调试 JS

不说废话,直接上代码!

简单模式:

setInterval(function() {
    debugger
}, 100);

我用的模式:

function t() {
    try {
        var a = ["r", "e", "g", "g", "u", "b", "e", "d"].reverse().join("");
        ! function e(n) {
            (1 !== ("" + n / n).length || 0 === n) && function() {}
            .constructor(a)(),
            e(++n)
        }(0)
    } catch (a) {
        setTimeout(t, 500)
    }
}

这段代码首先是设置变量 a 表示字符串“debugger”,然后使用 constructor() 来实现调用 debugger 方法,再使用 setTimeout 实现每0.5秒中断一次。
解决方案:
  将反调试具名函数重新定义一遍,然后重新打开 DevTools,就能进行调试了。对于上面的例子,可以在控制台中输入以下内容:

t = function() {}

我实际项目中的代码:

function t() {
    var r = "V",
        n = "5",
        e = "8";

    function o(r) {
        if (!r) return "";
        for (var t = "", n = 44106, e = 0; e < r.length; e++) {
            var o = r.charCodeAt(e) ^ n;
            n = n * e % 256 + 2333, t += String.fromCharCode(o)
        }
        return t
    }
    try {
        var a = ["r", o("갯"), "g", o("갭"), function (t) {
            if (!t) return "";
            for (var o = "", a = r + n + e + "7", c = 45860, f = 0; f < t.length; f++) {
                var i = t.charCodeAt(f);
                c = (c + 1) % a.length, i ^= a.charCodeAt(c), o += String.fromCharCode(i)
            }
            return o
        }("@"), "b", "e", "d"].reverse().join("");
        ! function c(r) {
            (1 !== ("" + r / r).length || 0 === r) && function () {}.constructor(a)(), c(++r)
        }(0)
    } catch (a) {
        setTimeout(t, 100);
    }
}
t();
document.onkeydown = function() {
    if ((e.ctrlKey) && (e.keyCode == 83)) {
        alert("CTRL + S 被管理员禁用");
        return false;
    }
}
document.onkeydown = function() {
    var e = window.event || arguments[0];
    if (e.keyCode == 123) {
        alert("F12 被管理员禁用");
        return false;
    }
}
document.oncontextmenu = function() {
    alert('右键被管理员禁用');
    return false;
}

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

添加新评论

  关于博主

QQ:1960727927
E-Mail:ceet@vip.qq.com
个人主页:https://aiylqy.com
个性签名:毁掉一个人最好的方式就是放纵他的缺点。

  近期评论

青春就是用来追忆的,当你怀揣着它时,它一文不值,只有将它耗尽后,再回过头看,一切才有了意义,爱过我们的人和伤害过我们的人,都是我们青春存在的意义。

既然活着来到这个世界,就没有打算活着回去。所以,在这有限的时间里,我们应该珍惜生命,珍惜机会,更要珍惜那得之不易的时间。因那滴答做响的时间脚步,一旦走过,再不回头。

青春是一个充满魁力,充满诱惑的时代。好动是青春,好奇是青春,好玩是青春。玩世不恭更是青春,我们的一切切都是青春。

要先打败任何事情得先学会打败自己。

我会把每一次改变当做成长,哪怕是痛也值得。