news 2026/8/21 16:23:34

chromatic 安装指南:从源码构建到跑通验证的新手教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
chromatic 安装指南:从源码构建到跑通验证的新手教程

chromatic 安装指南:从源码构建到跑通验证的新手教程

【免费下载链接】chromaticUniversal modifier for Chromium/V8 | 广谱注入 Chromium/V8 的通用修改器项目地址: https://gitcode.com/gh_mirrors/be/chromatic

chromatic 是 BetterNCM 的整体重写继任者,一个广谱注入 Chromium/V8 的通用修改器。这篇 chromatic 安装教程带你从零完成构建与验证,适合想给内置 Chromium 内核的客户端写注入脚本的开发者。

先认识 chromatic:它是干嘛的、给谁用

老读者应该知道 BetterNCM。作者离开网易云音乐方向后把相关代码整体重写、改名 chromatic,老项目就此停更——所以这篇 chromatic 安装教程,同时也是很多"BetterNCM 配置方法"搜索者的新入口。

  • 它做什么:在带 Chromium/CEF/V8 内核的客户端进程里运行 JS 脚本,实现原生函数拦截、内存读写扫描、软件/硬件断点、内存访问监控。
  • 适合谁:插件脚本作者、客户端逆向与自动化爱好者、需要给自家 Chromium 应用加调试钩子的开发者。
  • 支持范围:Windows、Linux、macOS、Android,架构覆盖 x64 与 arm64;项目仍处于活跃开发阶段。

技术上就一句话带过:C++23 编写,xmake 组织构建,内置 QuickJS 当脚本引擎,配套 capstone 反汇编、libffi 调原生函数、asmjit 运行时生成代码、libtcc 现场编译 C 代码。

chromatic 安装前检查清单:环境要求

📋 动手前把下面几样备齐,每项都是"缺了必卡"的:

  • C++ 编译器:GCC 12 及以上,或 Clang 15 及以上,或 Windows 上的 Visual Studio 2022(MSVC)。为什么:代码按 C++23 标准编写,编译器太老直接编译不过。
  • xmake:为什么:它是唯一的构建入口,拉依赖、编译、链接全靠它,不需要你自己配 CMake。
  • Node.js + 包管理器(pnpm):为什么:脚本层用 TypeScript 编写,必须先构建出 JS 产物,核心库编译时会把这个产物打进静态库。
  • Git:为什么:拉取源码。
  • 64 位且内置 Chromium/CEF/V8 内核的目标应用:为什么:底层指针与调用约定全部按 64 位编写,x64 / arm64 之外的环境(比如 32 位程序)不在支持范围内,别硬试。

从源码一键装完:chromatic 构建四步走

拉取源码

执行git clone https://gitcode.com/gh_mirrors/be/BetterNCM

成功标志:本地出现源码目录,根目录下能看到xmake.luasrc文件夹。

先构建脚本层

进入src/core/typescript目录,安装依赖并执行构建脚本。

成功标志src/core/typescript/dist下生成了index.js

执行 xmake build 全量编译

在仓库根目录执行xmake build

成功标志build目录下出现三类产物——chromatic-core 静态库、chromatic-test 测试可执行文件、chromatic-injectee 共享库(Windows 是.dll,Linux 是.so,macOS 是.dylib)。

跑一遍自带测试套件

执行xmake run chromatic-test

成功标志:输出出现[ PASSED ]汇总且没有任何[ FAILED ],至此 chromatic 编译安装完成。

一步验证:确认 chromatic 真的装对了

✅ 光看测试全绿还不够。验证分两步:

  1. 重跑一次xmake run chromatic-test,确认全绿结果可复现,而不是偶发。
  2. build目录确认 chromatic-injectee 的共享库文件真实存在——这才是后续要放进目标应用的注入体。只跑了部分 target、或误删过 injectee 产物时,测试绿了也不代表能注入。

手动部署注入库(备选路径)

什么情况下才走这条路:你只有编译好的 injectee 产物、需要自行放入目标应用,或自动加载方式失败时,才考虑手动部署。

做法:把注入库拷贝到目标应用目录,按该应用的加载机制引入(如以 DLL 形式随主程序加载);启动目标应用后,用任务管理器或进程工具查看已加载模块,看到 injectee 库名出现即为部署成功。启动即崩溃的话,回到下面三个排坑场景自查。

chromatic 配置排坑:三个高频失败场景

🛠 翻车基本都发生在这三个位置:

链接报 undefined reference to JS_EnqueueJob

多出现在 Linux。原因是 breeze-quickjs-ng 与 breeze-js-runtime 相互引用,需要把这两个库用--start-group/--end-group包成一组再链接。仓库的 xmake 配置已经内置了这个处理,手动拼链接命令时别漏掉这组参数。

injectee 启动抛 Invalid embedded config

提示"bad magic or version",说明你手里的二进制还没被打包流程 patch 进内置配置。别把裸编译产物直接注入目标应用——要么使用官方发布包里的成品注入库,要么自己补上打包环节。

xmake build 报找不到 index.js

顺序错了。必须先在src/core/typescript构建出dist/index.js,再执行xmake build;漏掉前一步,core 静态库的链接必失败。

下一步:从跑通走向用好

装好 chromatic 只是起点,写脚本前把仓库内的 docs/zh-CN/API.md 接口文档过一遍,Process、Memory、Interceptor 三个模块能省掉大量试错时间。项目还在活跃开发中,遇到卡点直接在项目仓库提 Issue,中英文都可以。

【免费下载链接】chromaticUniversal modifier for Chromium/V8 | 广谱注入 Chromium/V8 的通用修改器项目地址: https://gitcode.com/gh_mirrors/be/chromatic

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 16:19:47

AMA Protocol钱包使用指南:Chrome扩展安装、转账与收款完整教程

AMA Protocol钱包使用指南:Chrome扩展安装、转账与收款完整教程 【免费下载链接】node 项目地址: https://gitcode.com/GitHub_Trending/node95/node AMA Protocol 钱包是进入 AMA 隐私公链生态的第一把钥匙。无论你是想体验极速转账,还是参与 W…

作者头像 李华
网站建设 2026/8/21 16:16:32

云手机技术演进:去ADB化与摄像头直通架构实践

云手机技术从最初简单的远程桌面投屏,发展到如今能够深度集成硬件虚拟化能力,其核心目标始终是提供接近原生设备的远程体验。传统方案高度依赖 Android Debug Bridge (adb) 进行设备连接、屏幕投射和指令传输,这不仅带来了额外的配置复杂度&a…

作者头像 李华