I’ve been reversing Black Ops Cold War for a while now, and I’ve finally decided to share my research regarding the user-mode anti-cheat inside the game. It’s not my intention to shame or promote cheating/bypassing of the anti-cheat, so I’ve redacted a few things.
To clear up any confusion, Black Ops Cold War does not have the kernel-mode component of Ricochet that Modern Warfare (2019) and later titles have. I’ll be referring to the anti-cheat as TAC (Treyarch Anti-Cheat) as the game I reversed is a Treyarch game. Also, whenever I provide function pseudocode, it will be the best I can do since the actual decompilation is super cluttered with a lot of junk/resolving code. The biggest difference between the newer games is the kernel-mode driver, while the majority of anti-cheat code is user-mode and very similar to TAC.
Zastanawiam się, skąd ci ludzie mają czas na taką analizę binarek.
Domyślam się, że nie robią tego dla pieniędzy (chociaż może nie doceniam rynku cheatów) i motywacją są raczej techniczne osiągnięcia. Z drugiej strony, z czegoś trzeba żyć, a taki reverse engineering wymagał setek, jeśli nie tysięcy godzin pracy.
Ciekawe czy autor rozwijał jakieś narzędzia, które automatycznie dezaktywują już rozpoznane zabezpieczenia.
Nie wyobrażam sobie ręcznego omijania wszystkich tych mechanizmów za każdym razem, gdy odpala się binarkę do analizy.
To byłby w sumie temat na jeszcze ciekawszy artykuł - opis środowiska do pracy nad takimi problemami.
Domyślam się, że takiego wpisu nie zobaczymy, bo ułatwiłby pracę ludziom po drugiej stronie barykady. :-)
Widziałem w sumie inne artykuły na ten temat, gdzie autorzy wirtualizowali cały system wyspecjalizowanymi hypervisorami.
Odnośnie opisanych sztuczek:
Może nie są programistami. Może są kierowcami autobusu, lekarzami, studentami, uczniami. To nie jest jakaś niesamowita wiedza. Hobbysta jest w stanie to osiągnąć.
Może po prostu robi debug krok po kroku. Ja robiłem głupsze rzeczy kiedy analizowałem binarki C64. Bo nie miałem narzędzi.
Przy prostych zabezpieczeniach pewnie można się bawić w ręczne ich obchodzenie od początku po każdej pomyłce.
Podstawowy problem jest chyba taki, że a priori nigdy nie wiesz ile tych zabezpieczeń jest, a koszt rośnie wykładniczo. :-)
Tak poza tym, TIL jak można ukryć okno przed screenshotami.
Ale wszystko jest uruchamiane na CPU. Więc podstawą jest prześledzenie i zrozumienie działania.
Podobno dopiero w11 dostało zabezpieczenia utrudniające to.
“Widziałem w sumie inne artykuły na ten temat, gdzie autorzy wirtualizowali cały system wyspecjalizowanymi hypervisorami.”
Podrzuć link, bo w sumie poczytałbym. Zwykły hypervisor odpada, bo takie zabezpieczenia od Volvo go wykrywają i za sam fakt odpalenia gry w takim środowisku możesz dostać bana jakbyś czitował.
“Ciekawe co na to EULA gry.” Wg EULA pewnie wszystko jest gites ;-). Nie po to korporacje zatrudniają całe działy prawne, żeby pierwszy lepszy random z ulicy mógł z nimi wygrać w sądzie. Kiedyś czytałem artykuł, gdzie autor faktycznie zaczął czytać licencje różnych aplikacji i wychodziły różne kwiatki. Ogólny wniosek był taki, że te licencje były robione jakby pod prawo USA i chyba nikt zbytnio nie pochylił się nas tematem czy wszystkie zawarte tam zapisy są zgodne z innymi prawami np państw UE.
https://momo5502.com/posts/2024-03-31-bypassing-denuvo-in-hogwarts-legacy/
https://momo5502.com/posts/2022-05-02-detecting-hypervisor-assisted-hooking/