firefox屏蔽debugger()

有些网站为了防止调试,在js里加入很多debugger()语句, 动态生成代码, 定时执行.手动设置断点无效.

解决方案,一种是在js编译的时候,直接内容替换把所有debugger()替换成空,还可以直接屏蔽debugger()语句,

firefox 里debugger()语句是单独一个断点类型(DebuggerStatement)

源码:FIREFOX_118_0b8_RELEASE里修改是这样的

diff 复制代码
diff --git a/js/src/vm/Interpreter.cpp b/js/src/vm/Interpreter.cpp
--- a/js/src/vm/Interpreter.cpp
+++ b/js/src/vm/Interpreter.cpp
@@ -4238,9 +4238,11 @@ bool MOZ_NEVER_INLINE JS_HAZ_JSNATIVE_CA
     END_CASE(Instanceof)
 
     CASE(Debugger) {
+/*  disabled
       if (!DebugAPI::onDebuggerStatement(cx, REGS.fp())) {
         goto error;
       }
+*/
     }
     END_CASE(Debugger)

编译过程

Firefox Contributors' Quick Reference --- Firefox Source Docs documentation

只编译了FIREFOX_118_0b8_RELEASE (linux/ubuntu版本)

相关推荐
guhy fighting几秒前
new Map,Array.from,Object.entries的作用以及使用方法
开发语言·前端·javascript
大漠_w3cpluscom几秒前
CSS 技巧:CSS 单位使用指南
前端
STATICHIT静砸12 分钟前
了解Monorepo结构
前端
星光不问赶路人24 分钟前
Node.js 如何判断入口文件:从 require.main 到 ES Module 实现
前端·node.js
Hello--_--World34 分钟前
Vue2的 双端 diff算法 与 Vue3 的 快速diff 算法
前端·vue.js·算法
gongzemin42 分钟前
怎么在VS Code 调试vue2 源码
前端·vue.js
烟话61 小时前
Vue3响应式原理【通俗理解】
前端·javascript·vue.js
浩星1 小时前
electron系列5:深入理解Electron打包
前端·javascript·electron
患得患失9491 小时前
【前端WebSocket】心跳功能,心跳重置策略、双向确认(Ping-Pong) 以及 指数退避算法(Exponential Backoff)
前端·websocket·算法