浏览器魔改-从根本上通杀所有的无限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。让调试畅通无阻。

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

相关推荐
夏幻灵31 分钟前
HTML5里最常用的十大标签
前端·html·html5
冰暮流星31 分钟前
javascript之二重循环练习
开发语言·javascript·数据库
Mr Xu_44 分钟前
Vue 3 中 watch 的使用详解:监听响应式数据变化的利器
前端·javascript·vue.js
未来龙皇小蓝1 小时前
RBAC前端架构-01:项目初始化
前端·架构
程序员agions1 小时前
2026年,微前端终于“死“了
前端·状态模式
万岳科技系统开发1 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
程序员猫哥_1 小时前
HTML 生成网页工具推荐:从手写代码到 AI 自动生成网页的进化路径
前端·人工智能·html
龙飞051 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
我爱加班、、1 小时前
Websocket能携带token过去后端吗
前端·后端·websocket
AAA阿giao1 小时前
从零拆解一个 React + TypeScript 的 TodoList:模块化、数据流与工程实践
前端·react.js·ui·typescript·前端框架