
chromatic 安装配置指南从源码编译到脚本注入 Chromium 应用一次跑通【免费下载链接】chromaticUniversal modifier for Chromium/V8 | 广谱注入 Chromium/V8 的通用修改器项目地址: https://gitcode.com/gh_mirrors/be/chromaticchromatic 是一个广谱注入 Chromium/V8 应用的通用修改器前身是网易云音乐插件 BetterNCM。装好它之后你可以在基于 CEFChromium 内嵌框架的客户端里执行自己的 JS 脚本、拦截原生函数、调试内存。这篇指南带你完成拉取代码、编译核心库和注入库、注入目标应用并确认脚本真正跑起来。先确认你是否需要它你想给网易云音乐、QQ 音乐等基于 Chromium 内核的客户端挂自定义脚本而不是依赖别人写好的插件。你需要在应用运行时读写内存、拦截 C 导出函数、下断点做调试或功能增强。你正在开发类似 Frida 风格的注入工具需要一套 C 核心库加 JS 运行时的组合。你明确知道目标程序加载了 Chromium/CEF 模块纯原生应用没有 V8 引擎不适合用它。平台方面构建脚本覆盖了 Windows、Linux、macOS 和 Android架构以 64 位x64 / arm64为主建议先用 64 位系统验证。安装前需要检查什么操作系统为 64 位脚本运行时会读取指针大小32 位目标程序与 64 位构建不匹配会直接失败。C 工具链支持 C23项目按 C23 标准编译过旧的编译器会报大量语法错误。已安装 xmake整个构建由 xmake.lua 驱动xmake 会自动拉取 capstone、libffi、asmjit、fmt 等依赖包。已安装 Node.js 和 pnpmJS 层类型绑定是 TypeScript 写的编译前要先把 TS 打包成 JSpnpm 版本建议与项目锁定版本一致10.x。目标应用已关闭注入操作发生在应用启动阶段替换或加载注入库前先把旧进程退掉避免文件占用。推荐路径源码编译 注入库打包拿到代码。克隆仓库到本地git clone https://gitcode.com/gh_mirrors/be/BetterNCM克隆完成后进入项目根目录你会看到 xmake.lua、src/ 和 docs/ 三个关键部分说明代码是完整的。先编译 TS 绑定。构建流程依赖 src/core/typescript/dist/index.js 这个产物而它不会随仓库提供必须先生成进入 src/core/typescript 目录执行pnpm install装依赖再执行pnpm build打包。成功标志是目录下出现 dist/index.js后面 xmake 才能找到它。用 xmake 编译核心和注入库。回到项目根目录执行xmake f完成配置再执行xmake build。重点确认两个目标产物静态库 chromatic-core 和共享库 chromatic-injecteeWindows 下是 .dllLinux 下是 .somacOS 下是 .dylib。跑一遍自带测试。构建 chromatic-test 目标并运行它这是项目自带的 gtest 测试集覆盖内存、指针、拦截器、断点等模块。测试全部通过说明你的编译环境和核心库都正常可以进入注入阶段。备用方式打包脚本与旧版安装用 fripack 打包 JSchromatic-injectee 本身不携带脚本它预留了一个内嵌配置区需要 fripack CLI 工具在编译后的二进制里写入你的 JS。打包时可以选择嵌入模式脚本直接写进 dll/so适合分发或监听模式脚本从固定文件路径读取文件一改就自动重载适合开发调试。旧版 BetterNCM 用户如果你只是给网易云音乐装插件旧版 BetterNCM 的成品安装器仍可用——下载 BetterNCMII.dll放入网易云音乐安装目录并重命名为 msimg32.dll重启客户端即可。这条路径最简单但只覆盖网易云音乐 2.10.* 到 3.0.* 这类旧版本场景且不再有新功能。手动注入共享库拿到打包好的注入库后用你熟悉的方式改名放到目标程序启动时会加载的路径或用注入器让它随目标应用一起加载。最容易出错的点是位数不符——32 位应用里塞 64 位库必然加载失败。如何确认配置成功按顺序核对这几个可观察的信号加载日志出现注入后 stderr 或控制台打印[chromatic-injectee] Library loaded, initializing Chromatic engine说明库被成功加载并启动了 JS 引擎。脚本开始执行你脚本里的console.log有输出或者预期副作用界面变化、功能生效出现说明 JS 运行时就绪。监听模式生效如果用监听模式日志会先打印Watching file: 你的脚本路径改动脚本文件后看到Script reloaded successfully说明热重载链路正常。测试程序全绿chromatic-test 运行结束没有 FAILED 用例说明底层 API内存读写、函数拦截等在当前平台上工作正常。API 细节可以参考仓库里的中文文档 docs/zh-CN/API.md里面有 Process、Memory、Interceptor 等全部接口的用法示例。常见卡点与排查现象xmake 构建失败报找不到 dist/index.js。原因跳过了 TS 打包步骤。处理回到 src/core/typescript 重新执行pnpm install和pnpm build确认 dist/index.js 存在后再构建。现象注入库加载后报 Invalid embedded config。原因共享库没有经过 fripack 打包内嵌配置区是空的。处理用 fripack CLI 把 JS 打进二进制或改用监听模式并保证 watch_path 指向真实存在的脚本文件。现象目标应用直接崩溃或无反应。原因注入库位数与目标应用不匹配或依赖的 Chromium 模块版本差异过大。处理先确认双方都是 64 位仍不行时查看目标应用日志并把问题提交到项目 Issue中英文均可。现象脚本改动后没有自动重载。原因监听模式依赖文件修改时间变化某些编辑器保存方式先写临时文件再替换会绕过检测。处理改用原地保存或确认日志里还在打印 Watching file说明监听线程没有退出。现象测试通过但目标应用里 API 报错。原因部分接口硬件断点、信号处理等对目标进程权限和平台有要求。处理先用 chromatic-test 验证同一接口再在目标应用里缩小范围排查。现象pnpm build 报版本或依赖错误。原因本机 pnpm 与项目锁定版本差距过大。处理将 pnpm 升到 10.x 后重新安装依赖。按上面的顺序走完你应该已经拥有一个可复用的编译产物chromatic-core 供二次开发链接chromatic-injectee 供打包注入。下一步建议从官方文档里挑一个最小脚本比如枚举进程模块打进注入库跑通改脚本 → 重载 → 看输出这条闭环之后就交给你自己的插件创意了。【免费下载链接】chromaticUniversal modifier for Chromium/V8 | 广谱注入 Chromium/V8 的通用修改器项目地址: https://gitcode.com/gh_mirrors/be/chromatic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考