当前位置: 首页 > article >正文

firefox屏蔽debugger()

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

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

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

源码:FIREFOX_118_0b8_RELEASE里修改是这样的

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版本)


http://www.kler.cn/a/519511.html

相关文章:

  • MongoDB平替数据库对比
  • 基础项目实战——3D赛车(c++)
  • 一分钟搭建promehteus+grafana+alertmanager监控平台
  • 【C语言系列】深入理解指针(4)
  • 瑞芯微方案:RV1126定制开发板方案定制
  • python 统计相同像素值个数
  • 简笔画生成smplx sketch2pose
  • java读取在resources目录下的文件内容
  • 《 C++ 点滴漫谈: 十四 》为什么说 #define 是 C++ 的潘多拉盒子?
  • 房租管理系统的智能化应用助推租赁行业高效运营与决策优化
  • 蓝桥与力扣刷题(160 相交链表)
  • ubuntu调用图形化网络测试工具
  • Maui学习笔记- SQLite简单使用案例02添加详情页
  • Hive关于数据库的语法,warehouse,metastore
  • 算法12(力扣739)-每日温度
  • 小识Java死锁是否会造成CPU100%?
  • 16 分布式session和无状态的会话
  • 贪心算法(六)
  • 均值(信息学奥赛一本通-1060)
  • 【Linux系统】进程间通信一
  • Linux C openssl aes-128-cbc demo
  • Batch Normalization学习笔记
  • 77,【1】.[CISCN2019 华东南赛区]Web4
  • Java数据结构 (链表反转(LinkedList----Leetcode206))
  • Qt网络通信(TCP/UDP)
  • 运维实战---多种方式在Linux中部署并初始化MySQL