做了个 V8 虚拟机注入器, V8 Killer

223 天前
 shellwen

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

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

目前 V8 Killer 支持的目标有:

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

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

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

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

这里是 GitHub 链接:ShellWen/v8_killer

3827 次点击
所在节点    分享创造
13 条回复
Donahue
223 天前
好牛 看了作者主页是高中生
Donahue
223 天前
可以加个 v 吗
shellwen
223 天前
@Donahue 抱歉,不加陌生人
Jirajine
223 天前
bun 不是基于 v8 ,而是苹果 WebKit 那一套的 js 引擎。
shellwen
223 天前
@Jirajine 丢人丢大发了,谢谢提醒
ysc3839
223 天前
macOS 可以用虚拟机,不过 GUI 性能会很差,ssh 远程连接开发是没什么问题
tyzandhr
222 天前
厉害!
kkk9
222 天前
star! 😍
ChaosesIb
222 天前
CDP 对大部分需求应该足够了,Node.js 可以直接用 `process._debugProcess(pid)` 来远程启动 CDP server ,源码在这: https://github.com/nodejs/node/blob/51f4ff245018153abbb918b0d4a3cce65510d762/src/node_process_methods.cc#L347-L444
shellwen
222 天前
@ChaosesIb 有些软件会有检测,是这个问题,而且没法修改内置模块
YY
221 天前
微信小程序 有方法注入吗
JPGWang
219 天前
@YY frida
shellwen
217 天前
@YY 不清楚,你可以试一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/978250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX