zirconium
Call of Duty: Black Ops 2 Zombies(Plutonium 모드)용 DLL 인젝션 게임 치트입니다.
면책 조항:
- 이 프로젝트는 제가 BO2를 하며 자랐기 때문에 존재하며, 리버싱을 하기에 좋은 대상이기도 했습니다. 14년 된 AAA 게임으로 사실상 죽은 게임이지만, 대형 게임 엔진을 리버싱해보기에는 비교적 현대적인 애플리케이션이기도 합니다.
- 저는 치트를 조장하지 않습니다. 이걸 사용해서 어쩔 수 없이 밴을 당하더라도 저는 책임지지 않습니다. 따라서 사용에 따른 책임은 본인에게 있습니다.
미리보기:


기능:
- 무적 모드
- 좀비에게 보이지 않음
- ESP
- 에임봇
- 3인칭 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이므로,
IDXGISwapChain::Present를 후킹할 때 하드웨어 브레이크포인트 + VEH를 사용하지 않아도 탐지되지 않을 가능성이 있습니다. 원래 저는 이 함수를 트램펄린 후킹하는 방법을 알아내기 위해 1년 동안 틈틈이 노력했습니다(CMakeLists.txt에서 빌드 플래그를 토글하면 여전히 사용할 수 있습니다). 하지만 체크섬을 발견한 후에는 그 방법을 버리고 모든 것에 하드웨어 브레이크포인트 후킹을 사용하기로 했습니다.
TODO:
- 출시 전에 코드를 정리해달라고 claude에게 부탁했는데 그냥 엉망으로 만들어버렸습니다... 언젠가 원래 코드로 되돌릴 수도 있습니다
- 에임봇 스무딩/에임봇 옵션 추가
- 스핀봇
- 사일런트 에임
- 엔진 참스
- 매직 완드/좀비 더미(?)
완료:
- Releases에 실행 파일 업로드
- 3인칭
- 로깅 리팩토링
- 로그 레벨에 따른 색상 텍스트
- 이상한 재귀 템플릿 솔루션 제거
- 로그 레벨 추가 + 레벨 기반 조건부 로깅
- 빌드 시스템을 VS에서 cmake로 이전
- 에임봇
- DLL 언인젝션 옵션 및 상태 초기화
- 더 나은 디버그 탭
- 순간이동
- 무적 모드
- ESP