做了个 V8 虚拟机注入器, V8 Killer - V2EX
2023-11-29 13:9:51 Author: www.v2ex.com(查看原文) 阅读量:8 收藏

V8 Killer 是我开发的,一个用于在运行时修改 V8 虚拟机中 js 代码的工具,实现在不修改任何文件的前提下,修改实际上的代码逻辑,并可以通过潜在的完整性检查。

它的原理是劫持 V8 中的 v8::ScriptCompiler::CompileFunctionInternal(...),修改传入这个函数的参数,将指向原有 v8::Local<v8::String> 的指针指向修改之后的 v8::Local<v8::String>

目前 V8 Killer 支持的目标有:

  • Node.js
  • Electron
  • 鹅厂某基于 Electron 的大型 IM 软件

目前以下平台由于移除了 V8 的符号导出,目前尚未支持,未来将引入符号匹配支持这些平台:

  • Deno
  • Bun

项目目前支持 Windows 和 Linux 双平台,macOS 的支持仍在规划中。由于主要维护者(我)缺少 macOS 设备,macOS 支持可能仍需一段时间。欢迎各位果子程序员适配 PR 。

项目仍在活跃开发中,欢迎提交 Feature Request 和 Bug Report 到 GitHub Issues 中,也欢迎在评论区中直接提及。我会尽快处理他们 :)

题外话,这是我第一个使用 Rust 编写的正式项目,也是我 GitHub 目前为止唯一的正式项目,限于水平问题,代码难免简陋,也没有很好地组织项目结构,还望各位多多指教。

这里是 GitHub 链接:ShellWen/v8_killer


文章来源: https://www.v2ex.com/t/978250
如有侵权请联系:admin#unsafe.sh