zirconium
适用于《使命召唤:黑色行动2 僵尸模式》(带 Plutonium 模组)的 DLL 注入式游戏作弊工具。
免责声明:
- 这个项目存在是因为我是玩 BO2 长大的,而且它恰好也是一个很好的逆向目标。这是一款 14 年前的 3A 游戏,实际上已经没什么人玩了,但它同时也是一个相对现代的应用,适合用来尝试逆向大型游戏引擎。
- 我不支持作弊。如果你因为使用这个工具而被封号,我不承担任何责任。因此,请自行承担使用风险。
预览:


功能:
- 上帝模式
- 对僵尸隐身
- ESP
- 自瞄
- 第三人称 FOV
- 无散布
- 无后坐力
- 传送
- 设置以下内容:
- 金钱
- 弹药
- 手雷/阔剑地雷/猴子炸弹等
- 跳跃高度
- 重力
- 速度
构建:
git clone --recurse-submodules https://www.github.com/robertmotr/zirconium.git
cd zirconium/codebase
cmake -B ../cmake-build -G "Visual Studio 17 2022" -A Win32
cmake --build ../cmake-build --config Release
DLL 将位于 ../build/Release/zirconium.dll
使用方法:
- 打开游戏,进入一局僵尸模式
- 使用 Xenos 注入器 在进程列表中找到
plutonium-bootstrapper-win32.exe 并选中它
- 加载
zirconium.dll 作为 DLL 并注入
- 我只使用并测试过默认的原生注入选项,我不确定手动映射等其他方式是否可行。对于市面上无数种不同的 DLL 注入器实现,也是同样的道理。
致谢:
感谢 unknowncheats.me 上所有逆向出大量偏移量的人 :)
我遇到的一些有趣发现:
- 存在一个多人服务器端的 PDB 文件,它与客户端共享大量公共函数(即使经过 Plutonium 修改也是如此)。这可以通过将你在 IDA 中的进度与 PDB 交叉比对来加快逆向速度,但效果有限。
- Plutonium 使用了 Themida,但只有 .text 段的某些部分被混淆了。绕过反调试只需要你在 x64dbg 中使用 ScyllaHide 的 Themida 配置文件。它似乎没有使用所有那些疯狂的 Themida 功能来让逆向变得地狱般困难。
- Plutonium 会对 .text 段(可能还有更多段)运行校验和,以验证没有任何字节被修改过,与原始代码保持一致。这意味着 .text 段中的任何修改都会改变校验和。挂钩函数的最佳方式是使用硬件断点(https://en.wikipedia.org/wiki/X86_debug_register),并让它们跳转到你想挂钩的函数的向量化异常处理器中。这样就能保持校验和不变,从而不被检测到。
- 考虑到 DX11 是 .text 段之外的 DLL,可能没有必要使用硬件断点 + VEH 来挂钩
IDXGISwapChain::Present 而不被检测到。最初我花了断断续续一年的时间试图找出如何用蹦床钩子挂钩这个函数(如果你在 CMakeLists.txt 中切换构建标志,你仍然可以使用这种方法),但在发现校验和之后,我放弃了它,转而对所有东西都使用硬件断点挂钩。
待办事项:
- 我让 claude 在发布前清理我的代码,让它看起来整洁,结果它把代码变成了垃圾……也许有一天能把它从垃圾状态恢复成我原来的代码
- 自瞄平滑/更多自瞄选项
- 旋转机器人
- 静默自瞄
- 引擎透视
- 魔法棒/僵尸堆叠(?)
已完成:
- 在 Releases 中上传可执行文件
- 第三人称
- 重构日志记录
- 根据日志级别显示彩色文本
- 移除奇怪的递归模板方案
- 添加日志级别 + 基于级别的条件日志记录
- 将构建系统从 VS 移植到 cmake
- 自瞄
- 卸载 DLL 选项并重置状态
- 更好的调试选项卡
- 传送
- 上帝模式
- ESP