zirconium
DLL-инжектируемый чит для Call of Duty: Black Ops 2 Zombies (с модом Plutonium).
Отказ от ответственности:
- Этот проект существует, потому что я вырос на BO2, и он также оказался хорошей целью для реверс-инжиниринга. Это 14-летняя AAA-игра, которая практически мертва, но при этом является достаточно современным приложением для попыток реверса большого игрового движка.
- Я не поддерживаю читерство. Я не несу ответственности за то, что вас неизбежно забанят при использовании этого. Поэтому используйте это на свой страх и риск.
Превью:


Возможности:
- Режим бога
- Невидимость для зомби
- 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 injector, чтобы найти
plutonium-bootstrapper-win32.exe в списке процессов и выбрать его
- Загрузите
zirconium.dll как DLL и выполните инжект
- Я использовал и тестировал только стандартные нативные опции инжекта, я понятия не имею, сработает ли что-то ещё, например manual mapping. То же самое касается и миллиарда различных реализаций DLL-инжекторов.
Благодарности:
Спасибо всем людям на unknowncheats.me, которые реверснули тонны оффсетов :)
Интересные наблюдения, на которые я наткнулся:
- Существует PDB-файл мультиплеерного сервера, который разделяет множество общих функций с клиентом (даже с модификациями Plutonium). Это может ускорить реверс-инжиниринг, сверяя свой прогресс в IDA с PDB, но только до определённой степени.
- Plutonium использует Themida, но только определённые части секции .text обфусцированы. Чтобы обойти анти-отладку, достаточно использовать профиль Themida в ScyllaHide на x64dbg. Похоже, что там не используются все безумные функции Themida, чтобы превратить реверс в ад.
- Plutonium запускает контрольную сумму секции .text (возможно, и других секций), которая проверяет, что ни один байт не был изменён относительно исходного кода. Это означает, что любая модификация в секции .text изменит контрольную сумму. Лучший способ хукать функции — использовать аппаратные точки останова (https://en.wikipedia.org/wiki/X86_debug_register) и заставлять их переходить в векторизованные обработчики исключений для функций, которые вы хотите захукать. Это сохранит контрольную сумму нетронутой и, таким образом, останется незамеченным.
- Учитывая, что DX11 — это DLL вне секции .text, возможно, что не обязательно использовать аппаратные точки останова + VEH для хука
IDXGISwapChain::Present без обнаружения. Изначально я потратил год с перерывами, пытаясь понять, как сделать трамплин-хук этой функции (который вы всё ещё можете использовать, если включите флаг сборки в CMakeLists.txt), но после обнаружения контрольной суммы я отказался от этого и перешёл на хуки через аппаратные точки останова для всего.
TODO:
- я попросил claude почистить мой код перед релизом, чтобы он выглядел опрятно, и он просто превратил его в мусор... может быть, когда-нибудь верну свой оригинальный код
- сглаживание аимбота/больше опций аимбота
- спинбот
- silent aim
- chams на движке
- волшебная палочка/куча зомби(?)
Готово:
- загрузить исполняемый файл в Releases
- третье лицо
- рефакторинг логирования
- цветной текст в зависимости от уровня логирования
- убрать странное рекурсивное шаблонное решение
- добавить уровень логирования + условное логирование на основе уровня
- перенести систему сборки с VS на cmake
- аимбот
- опция деинжекта DLL и сброс состояния
- улучшенная вкладка отладки
- телепорт
- режим бога
- ESP
- скелет
- линии-снапы
- дистанция
- здоровье