// 重写 Function 构造器,拦截并删除 debugger (function() { // 保存原始 Function 构造器 var originalFunction = Function; // 重写 Function 构造器 window.Function = function(...args) { // 将所有参数中的 "debugger" 替换为空字符串 args = args.map(arg => typeof arg === 'string' ? arg.replace(/debugger/g, '') : arg); // 调用原始 Function 构造器并返回 return originalFunction(...args); }; // 确保 toString 显示原始构造器 window.Function.toString = () => originalFunction.toString(); })(); // 重写 eval 函数,拦截并删除 debugger (function() { // 保存原始 eval 函数 var originalEval = window.eval; // 重写 eval 函数 window.eval = function(code) { // 如果传入的代码是字符串,删除其中的 "debugger" if (typeof code === 'string') { code = code.replace(/debugger/g, ''); } // 调用原始 eval 函数执行代码 return originalEval(code); }; // 确保 toString 显示原始 eval window.eval.toString = () => originalEval.toString(); })();
标签:Function,code,debugger,--,HOOK,window,toString,eval From: https://www.cnblogs.com/lyt263/p/18525166