zirconium
Cheat di gioco iniettabile tramite DLL per Call of Duty: Black Ops 2 Zombies (con la mod Plutonium).
Disclaimer:
- Questo progetto esiste perché sono cresciuto con BO2, e si è rivelato anche un buon obiettivo per il reverse engineering. È un gioco AAA di 14 anni fa, praticamente morto, ma è anche un'applicazione abbastanza moderna per provare a fare reverse engineering di un grande motore di gioco.
- Non approvo il cheating. Non sono responsabile se verrai bannato usando questo strumento. Pertanto, usalo a tuo rischio.
Anteprima:


Funzionalità:
- God mode
- Invisibilità dagli zombie
- ESP
- Aimbot
- FOV in terza persona
- Nessuna dispersione
- Nessun rinculo
- Teletrasporto
- Imposta i seguenti valori:
- Denaro
- Munizioni
- Granate/claymore/bombe scimmia ecc.
- Altezza del salto
- Gravità
- Velocità
Compilazione:
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
La DLL si troverà in ../build/Release/zirconium.dll
Utilizzo:
- Apri il gioco e carica una partita a zombie
- Usa Xenos injector per trovare
plutonium-bootstrapper-win32.exe nell'elenco dei processi e selezionalo
- Carica
zirconium.dll come DLL e inietta
- Ho usato e testato solo le opzioni di iniezione native predefinite; non ho idea se altre cose come il manual mapping funzionerebbero. Lo stesso vale per una qualsiasi delle miliardi di diverse implementazioni di iniettori DLL in circolazione.
Crediti:
Grazie a tutte le persone su unknowncheats.me che hanno fatto reverse engineering di tantissimi offset :)
Osservazioni interessanti che ho incontrato:
- Esiste un file PDB del server multiplayer, che condivide molte funzioni comuni con il client (anche con le modifiche di Plutonium). Questo può aiutare ad accelerare il reverse engineering incrociando i tuoi progressi in IDA con il PDB, ma solo fino a un certo punto.
- Plutonium usa Themida, ma solo alcune parti della sezione .text sono offuscate. Superare l'anti-debug richiede solo di usare il profilo Themida di ScyllaHide su x64dbg. Non sembra usare tutte le funzionalità folli di Themida per rendere il reverse engineering un inferno.
- Plutonium esegue un checksum sulla sezione .text (forse anche su altre sezioni) che verifica che nessun byte sia stato modificato rispetto al codice originale. Questo significa che qualsiasi modifica nella sezione .text cambierà il checksum. Il modo migliore per agganciare le funzioni è usare i breakpoint hardware (https://en.wikipedia.org/wiki/X86_debug_register) e farli saltare in gestori di eccezioni vettoriali per le funzioni che vuoi agganciare. Questo manterrà il checksum intatto e quindi non rilevato.
- Considerando che DX11 è una DLL esterna alla sezione .text, potrebbe non essere necessario usare breakpoint hardware + VEH per agganciare
IDXGISwapChain::Present senza essere rilevati. Inizialmente ho passato un anno, tra pause e riprese, cercando di capire come fare trampoline hook su questa funzione (che puoi ancora usare se attivi un flag di build in CMakeLists.txt), ma dopo aver scoperto il checksum l'ho abbandonata e ho usato i breakpoint hardware per tutto.
TODO:
- ho chiesto a claude di ripulire il mio codice prima di rilasciarlo per renderlo ordinato e l'ha solo trasformato in spazzatura... forse un giorno lo de-spazzaturerò tornando al mio codice originale
- smoothing dell'aimbot/più opzioni per l'aimbot
- spinbot
- silent aim
- chams del motore
- bacchetta magica/mucchio di zombie(?)
Fatto:
- caricare l'eseguibile in Releases
- terza persona
- refactoring del logging
- testo colorato in base al livello di log
- rimozione della strana soluzione ricorsiva con i template
- aggiunta del livello di log + logging condizionale in base al livello
- portare il sistema di build da VS a cmake
- aimbot
- opzione per disiniettare la DLL e ripristinare lo stato
- tab di debug migliore
- teletrasporto
- god mode
- ESP
- scheletro
- linee di connessione
- distanza
- salute