浏览器魔改-从根本上通杀所有的无限debugger

😀 今天我们来讲一下如何修改源代码,让无限debugger失效,然后重新定一个别的关键词来实现无线debugger。

📝 主旨内容

定位位置

搜索关键字debugger

我们要知道这个关键词字其实就是V8引擎的功能,他在nodejs中也有这个功能。所以我们需要把目标放在V8引擎上。在这个文件夹目录下去搜索这个关键字。

image.png

我们看到其实有很多结果,但是我们这里js文件肯定不是直接排除掉。我们主要关注的是.h的文件。

最后找到:F:\chromiumPWD\chromium\src\v8\src\parsing\keywords-gen.h

这个路径,这个就是我们今天需要修改的文件。

修改源码

通过修改源代码,实现我们需要的功能。

image.png

可以看到这里其实是我已经初步修改过的,我们需要的是把debugger修改成kFalseLiteral,也就是我们在JavaScript中的false,使其无效,但是要不会出现异常。

然后我们在定义一个debuggel使其复原这个关键字的功能。

image.png

然后再最后的一行在换成debugger

image.png

  • 原本 debugger 关键字应当映射到 Token::kDebugger

  • 但这里将 debugger 的映射 删除 ,并错误地用 "debuggel" 代替,导致 debugger 无法正确解析

  • 后续 又在哈希表 末尾 重新添加 "debugger", Token::kFalseLiteral,这意味着:

    • 解析 "debugger" 关键字时,可能会被识别为 Token::kFalseLiteral,导致 JavaScript 代码解析错误。

然后再进行追加代码

image.png

  • 这个 if 语句强行将 所有长度 >=8 且匹配 "debugger" 的字符串 的哈希索引 key 设为 127,即指向 {"debugger", Token::kFalseLiteral}

  • 这意味着:

    • 所有 "debugger" 关键字 都会被解析为 Token::kFalseLiteral,而不会触发 JavaScript 调试功能。

然后我们在重新编译。

我们在看一下效果

image.png

我们可以看到这里其实他已经无效了。

🤗 总结归纳

从chromium源代码入手可以让其无感的通杀所有的无限debugger。让调试畅通无阻。

更多精彩文章,请移步到这里观看。

相关推荐
gAlAxy...6 分钟前
IntelliJ IDEA 四种项目构建:从普通 Java 到 Maven Web 项目
前端·firefox
my一阁8 分钟前
2025-web集群-问题总结
前端·arm开发·数据库·nginx·负载均衡·web
会飞的小妖9 分钟前
个人博客系统(十一、前端-简短的配置)
前端
念念不忘 必有回响2 小时前
nginx前端部署与Vite环境变量配置指南
前端·nginx·vite
JIngJaneIL2 小时前
篮球论坛|基于SprinBoot+vue的篮球论坛系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·篮球论坛系统
程序猿阿伟4 小时前
《首屏加载优化手册:Vue3+Element Plus项目提速的技术细节》
前端·javascript·vue.js
尘觉4 小时前
面试-浅复制和深复制?怎样实现深复制详细解答
javascript·面试·职场和发展
fruge5 小时前
Vue Pinia 状态管理实战指南
前端·vue.js·ubuntu
sean6 小时前
开发一个自己的 claude code
前端·后端·ai编程
用户21411832636026 小时前
dify案例分享-用 Dify 一键生成教学动画 HTML!AI 助力,3 分钟搞定专业级课件
前端