щоденник розробки

вступ

І так. Я скільки вже в Кароса, і мені набридло бути просто гравцем і домагатися все своїми руками. Я вирішив зійти з істинного шляху і застосувати свої знання і гугль в цій "чудовій" грі. В цей пост я буду викладати те, що мені вдалося зробити з нею. Тож почнемо.

Кароса: Початок кінця

перший блог

Злом GameGuard - правда чи брехня

Зараз я займаюся більше вже "просунутої", якщо можна так висловитися, діяльністю. Вона пов'язана з усіма відомої нам захисті гри GameGuard. Це антічит, написаний по-моєму на VB (Visual Basic).

Ось, що я про нього дізнався.

  • Використовується в багатьох іграх, в основному від корейців, які (не дивно: nProtect - корейська захист)
  • Дуже стійка (В Кароса 1924 ревізія, а в 7 елементі 1884 і з нею буквально нічого беспалевно не зробиш і тому саме так важливо зберегти версію GameGuard яка зараз)
  • Побивається (в Кароса поки не вбита).
  • Вихідні тексти десь живуть в інтернеті, тому що коли гугл натрапив на антічит на базі GameGuard.

Більш детальну інформацію ви можете прочитати тут.

Це далеко не всі, але на іншому зупинимося докладніше.

Я дуже багато гугл, курив іноземні форуми, і дещо все-таки нарив. Одне можу сказати точно - зламати можна, мізків мало.

Сервер оновлень GameGuard

Це ось така ось штука - тиц. Про те, що вона дає написано овердохуя раз. Ось у нас поставлять у нас потужніший версію і тоді без цієї штуки вам не обійтися, якщо знову захочете грати в 2 вікна. Таким способом знижували ревізію GameGuard в лінійці. Але там просто старий рр з офа злитий. У нас з цим проблема.

Архітектура сервера оновлень GameGuard

Значить так. Сервер оновлень GameGuard виглядає так:

Всі файли GameGuard розташовані тут - testgg.karosgame.ru/nProtect/GameGuard/RealServer/ "<файлы>"

Він являє собою звичайний .zip архів, переіменнований в .npz. Усередині нього знаходиться файл: GameMon .des

update.cfg - це файл, в якому прописано дуже багато інформації, необхідної для успішного оновлення GameGuard. Якщо він пошкоджений на 1 байт - вже працювати не буде. Вибиватиме помилку 360.

Файли GG на сервері і їх опис

GameGuard.npz => GameGuard .des - файл, який запускається при старті гри. Перевіряє наявність оновлень захисту. оновлює і запускає. Свого роду "лаунчер" GameGuard. Знаходиться в корені папки з грою і в папці GameGuard.

GameMon.npz => GameMon .des - як написано в вікіпедії, сам драйвер захисту. Запускається після старту GameGuard.des.

GameMon64.npz => GameMon64 .des - так до кінця і не зрозумів, що ж це за "чудо". Якщо його вивантажити з пам'яті, то через деякий час з'явиться помилка з приблизно таким текстом: "Не вдалося завантажити список небажаного ПЗ." Думаю все зрозуміли, що це означає.

ggerror.npz => ggerror .des - файл, який формує звіти про помилки GG, і що пропонує весь час їх відправляти.

ggscan.npz => ggscan .des - поки не з'ясував, для чого він призначений, знаю одне: це один з потоків процесу AMo.exe. Якщо його вивантажити, нічого не зміниться. Навіть не видає ніяких помилок, але від цього чомусь проблем не зменшується.

файл KarosRU.ini

KarosRU.npz => KarosRU .ini - власне файл конфігурації GG. Зберігається в зашифрованістю вигляді. Шифрувати алгоритмом RSA або RS4. Прочитати про алгоритми можна тут і тут відповідно. У цих алгоритмів ключі шифрування різні (розшифровки, зашифровуваної). Знаходиться в корені папки гри і в папці GameGuard. Думаю все бачили файл KarosRU.ini в зашифрованому вигляді. Якщо немає, відкрийте його зараз блокнотом. А тепер те, чого ви всі так чекали, розшифрований файл KarosRU.ini.

npgg9x.npz => nppt9x .vxd - поки не відомо

npggNT.npz => npptNT2 .sys - схоже на драйвер. Під х64 не починається.

npggNT64.npz => npggNT64 .des - драйвер. Знаходиться в пам'яті AMo.exe. як потік

npgmup.npz => npgmup .des - хз для чого, не запускається.

nppt9x.npz => nppt9x .vxd - хз

npptNT2.npz => npptNT2 .sys - драйвер. Запуску я не бачив його.

npsc.npz => npsc .des - висить в процесі AMo.exe як завантажений модуль, потоків не має.

Splash.npz => Splash .jpg - картинка, появлсющаяся при оновленні GameGuard

файл update.cfg

update.cfg - файл, що описує оновлюватися. Знаходиться на сервері. Шифрувати тим же алгоритмом, що і KarosRU.ini. Ось його вміст в розшифрованому вигляді:

Як же відбувається обновеніе GG?

Все дуже просто.

Начебто це поки все, що я зміг щас пригадати. У майбутньому цей пост буде оновлюватися / доповнюватися

Дякуємо за увагу