V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
shellwen
V2EX  ›  分享创造

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

  •  2
     
  •   shellwen ·
    ShellWen · 2023-09-30 10:33:37 +08:00 · 4143 次点击
    这是一个创建于 407 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    13 条回复    2023-10-05 18:51:04 +08:00
    Donahue
        1
    Donahue  
       2023-09-30 10:44:19 +08:00
    好牛 看了作者主页是高中生
    Donahue
        2
    Donahue  
       2023-09-30 10:45:05 +08:00
    可以加个 v 吗
    shellwen
        3
    shellwen  
    OP
       2023-09-30 10:47:25 +08:00 via Android
    @Donahue 抱歉,不加陌生人
    Jirajine
        4
    Jirajine  
       2023-09-30 11:01:53 +08:00 via Android
    bun 不是基于 v8 ,而是苹果 WebKit 那一套的 js 引擎。
    shellwen
        5
    shellwen  
    OP
       2023-09-30 11:13:26 +08:00
    @Jirajine 丢人丢大发了,谢谢提醒
    ysc3839
        6
    ysc3839  
       2023-09-30 11:37:00 +08:00 via Android   ❤️ 1
    macOS 可以用虚拟机,不过 GUI 性能会很差,ssh 远程连接开发是没什么问题
    tyzandhr
        7
    tyzandhr  
       2023-09-30 13:35:20 +08:00 via Android
    厉害!
    kkk9
        8
    kkk9  
       2023-09-30 15:48:57 +08:00
    star! 😍
    ChaosesIb
        9
    ChaosesIb  
       2023-09-30 18:48:32 +08:00
    CDP 对大部分需求应该足够了,Node.js 可以直接用 `process._debugProcess(pid)` 来远程启动 CDP server ,源码在这: https://github.com/nodejs/node/blob/51f4ff245018153abbb918b0d4a3cce65510d762/src/node_process_methods.cc#L347-L444
    shellwen
        10
    shellwen  
    OP
       2023-09-30 19:10:30 +08:00 via Android
    @ChaosesIb 有些软件会有检测,是这个问题,而且没法修改内置模块
    YY
        11
    YY  
       2023-10-02 12:21:49 +08:00
    微信小程序 有方法注入吗
    JPGWang
        12
    JPGWang  
       2023-10-04 09:59:36 +08:00 via Android
    @YY frida
    shellwen
        13
    shellwen  
    OP
       2023-10-05 18:51:04 +08:00
    @YY 不清楚,你可以试一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2726 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 11:55 · PVG 19:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.