chromatic:Chromium/V8 通用修改器,用 JS 脚本改造桌面客户端
【免费下载链接】chromaticUniversal modifier for Chromium/V8 | 广谱注入 Chromium/V8 的通用修改器项目地址: https://gitcode.com/gh_mirrors/be/chromatic
chromatic 是一个广谱注入 Chromium/V8 应用的通用修改器,可以把 JS 脚本注入目标桌面应用进程,完成内存读写、函数拦截、断点调试等操作。它是早期网易云音乐 PC 端插件工具 BetterNCM 的重写继任者:旧方案只服务特定音乐客户端,而 chromatic 将这套能力做成了通用框架,可面向更多基于 Chromium/V8 的软件使用。
为什么需要 Chromium/V8 通用修改器
此前如果你想修改 Chromium/V8 桌面应用的行为(例如 BetterNCM 当年支持的网易云音乐 2.10.* 到 3.0.* 客户端),只能依赖单一项目里积累的插件与脚本。随着作者不再维护 BetterNCM,这些脚本失去了运行基础。
chromatic 的出发点是把“改某一款音乐客户端”和“通用注入框架”拆开:底层 API 只负责注入后的进程内操作,具体改什么由脚本决定。这样同一套接口可以复用到不同的 Chromium/V8 软件上,不必每换一款目标就重写底层代码。
chromatic 能做什么:内存、拦截与调试
在目标进程里运行 JS 脚本
chromatic 内置基于 QuickJS 的 JS 运行时,脚本在目标进程的地址空间内直接执行,操作的是进程真实的内存与函数,而不是通过系统接口间接传话。
内存操作与函数拦截
- Memory 系列 API 提供内存分配、复制、读写、保护属性修改,以及按十六进制模式(支持
??通配)扫描; - Interceptor 可以给任意函数挂上入口/出口回调,读取参数与返回值,也能在出口处改写返回值;
- NativeFunction 与 NativeCallback 让脚本按声明的类型直接调用原生函数,并把 JS 函数注册成原生回调。
断点、反汇编与内存监控
提供软件断点与硬件断点(含写观察点)、基于 capstone 的指令反汇编与交叉引用查找、基于页面保护的内存访问监控,以及全局异常处理器,覆盖对一个运行中进程做现场调试的常见需求。
快速上手:xmake 如何构建 chromatic
- 克隆代码:
git clone https://gitcode.com/gh_mirrors/be/BetterNCM - 项目使用 xmake 管理构建(C++23),依赖已在
deps/中声明。在根目录执行 xmake 的配置与构建流程,会生成三个目标:chromatic-core(核心静态库)、chromatic-test(gtest 测试套件)、chromatic-injectee(待注入的共享库)。 - 将 injectee 产物加载进目标进程后,对照 API 文档编写脚本即可。
项目目前仍处于积极开发阶段,README 也注明使用方法部分待完善,最新指引建议以项目文档和 Issue 区为准。
chromatic 适合哪些用户
- 希望改造或调试 Chromium/V8 桌面客户端的脚本作者、逆向工程师
- 从 BetterNCM 迁移过来、需要可维护继任方案的既有用户
- 面向 Windows、Linux、macOS、Android(x64/arm64)平台做开发的开发者
- 不适合:不写代码、只想要现成主题与下载插件的普通听众——当前仓库是修改框架,不是成品插件市场
- 不适合:需要接口长期冻结、不再变动的依赖方,API 仍会随开发调整
继续深入:API 文档与源码入口
- API 参考:中文 API 文档,英文版见 docs/en-US/API.md,按 Process、Memory、Interceptor 等模块逐条列出用法
- 核心实现:src/core/,包含脚本生命周期、FFI、内存与断点等原生模块
- 测试用例:src/test/,每个 API 一组测试,适合当示例代码阅读
小结
chromatic 把 BetterNCM 的重写成果从单一音乐客户端扩展为通用的 Chromium/V8 修改器,用一份 JS 脚本就能定制目标应用。如果你的使用场景里有想改造的桌面客户端,下一步就是克隆仓库、构建出 injectee,然后按 API 文档跑通第一个内存读取与函数拦截。
【免费下载链接】chromaticUniversal modifier for Chromium/V8 | 广谱注入 Chromium/V8 的通用修改器项目地址: https://gitcode.com/gh_mirrors/be/chromatic
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考