
Введение
👾 Хей, хабровчане и гик-сообщество! Если вы когда-нибудь реверсили игры, ковыряли ассеты Unreal Engine или писали читы для CS:GO, то представьте, что это можно делать легально и за деньги, да ещё и в рамках судебных процессов. 🧑💻 Сегодня разбираем экспертизу компьютерных игр — когда суд вызывает не свидетеля, а настоящего хакера в белом пальто, чтобы он доказал, что один разработчик скопировал чужой код, а другой запилил подлый бэкдор в лутбоксы. 🎮 Будет много терминов, гиковских штук, тулчейнов, реал-кейсов и жёстких технических разборов. Погнали! 🔥
Раздел 1. Что такое экспертиза компьютерных игр на языке IT-специалиста
🐧 Для айтишника экспертиза компьютерных игр — это процесс криминалистического анализа игрового софта, включающий: статический и динамический анализ бинарей, реверс-инжиниринг игровых движков, декомпиляцию C#/Java/C++ кода, сравнение ассетов (моделей, текстур, анимаций), трассировку сетевых протоколов и профилирование производительности. 🛠️ По сути, это аналог пентеста, но с процессуальным статусом и возможностью отправить разработчика-пирата на бабки. В отличие от обычной компьютерно-технической экспертизы, тут нужно знать Unity, UE, Godot, а также уметь отлаживать шейдеры и лазать по дампам памяти. 🧠
Раздел 2. Инструментарий: что ставим на комп эксперту
💻 Эксперт по играм — это чувак с ноутбуком, на котором установлено:
- IDA Pro / Ghidra — дизассемблеры для.exe,.dll,.so (взломщики бинарного кода).
- dnSpy / ILSpy — для декомпиляции игр на Unity (C#.NET).
- UE Viewer (UModel) / FModel — для вытаскивания моделей, текстур и анимаций из игр на Unreal Engine.
- AssetStudio — аналог для Unity.
- RenderDoc — графический дебаггер (захват кадров, анализ шейдеров).
- x64dbg / WinDbg — отладчики уровня ассемблера (ловим хуки и инжекты).
- Wireshark + tcpdump — анализ сетевого трафика (что игра шлёт на сервер).
- Cheat Engine (в лабораторных условиях) — для поиска адресов здоровья, патронов и проверки читов.
- Python + Jupyter Notebook — для написания скриптов сравнения кода и ассетов.
- Git + diff-инструменты — для сравнения исходников, если они есть.
Всё это должно быть лицензионным (да, лицензия на IDA Pro стоит как крыло самолёта, но мы оплатили). 💸
Раздел 3. Кейс #1: Реверс-инжиниринг мобильной игры — как нашли копию точь-в-точь
📱 Суть: Студия «А» выпустила хайповую мобильную RPG. Через полгода вышла игра «Б», у которой геймплей, уровни, расположение врагов и даже баги совпадали на 90%. Исходников «Б» не давали, ссылались на коммерческую тайну.
🛠️ Что сделал эксперт:
- Взял APK обеих игр, распаковал через apktool.
- Для игры «А» (Unity, C#) декомпилил код через dnSpy, получил читаемый C#.
- Для игры «Б» — то же самое.
- Запустил скрипт на Python, который сравнил все классы и методы, игнорируя имена переменных.
- Выяснилось, что 94% логики идентично, включая уникальную формулу расчёта урона (Damage = (atk^1.3)/(def^0.7) * random(0.9,1.1), причём константы 1.3, 0.7, 0.9, 1.1 были жёстко зашиты).
Дополнительно нашёл в коде игрушки «Б» отладочный лог «DEBUG: GameA legacy calc», который забыли удалить.
⚖️ Итог: Суд признал плагиат. Взыскали 25 млн рублей. Экспертиза компьютерных игр в действии. 🔥
Раздел 4. Кейс #2: Читер vs админы — разборка с aimbot-ом
🎯 Сцена: Про-геймер забанен в турнире по шутеру. Говорит, что он просто «очень круто играет». Админы утверждают — использует aimbot. Суд назначил экспертизу.
🕵️ Эксперт:
- Получил дамп памяти с ПК геймера (45 ГБ дампа).
- Запустил Volatility, вытащил список процессов.
- Обнаружил, что в память игры инжектирована DLL с названием «firebot.dll».
- Дизассемблировал эту DLL в IDA Pro, нашёл функцию CalcAimAngle, которая вычисляла смещение прицела на 4 пикселя к голове противника.
- Установил точку останова в отладчике на вызов этой функции — сработала при каждом выстреле.
Дополнительно: в логах античита были записи о подозрительных патчах памяти (операции WriteProcessMemory на адреса функций просчёта видимости).
📢 Вывод: чит 100% присутствует. Суд отклонил иск, геймер покрыл судебные издержки (260 тыс. руб.). 🛡️
Раздел 5. Кейс #3: Лагает игра — чья вина? Тестирование производительности
🐌 Контекст: Издатель заказал разработчику игру на Unreal Engine 5 для PS5. ТЗ: 4K, 60 FPS, стабильно. Реальность: 25 FPS при скоплении врагов. Разработчик говорит «у вас консоль пыльная, чистите».
⚙️ Эксперт приехал с devkit:
- Установил игру на чистую PS5 devkit.
- Запустил PlayStation Profiler, Unreal Insights.
Снял метрики:
Draw calls: 8500/кадр (должно быть <3000).
Overdraw: средний 6x (пиксель перерисовывается 6 раз).
Occlusion culling: выключен — все объекты уровня отрисовываются, даже за стеной.
LOD: не настроены — модели на дальних дистанциях рисуются с максимальным качеством.
Поправил конфиг (включил occlusion culling, выставил LOD) — FPS подскочил до 52.
📊 Заключение: разработчик не выполнил оптимизацию, не соответствует ТЗ. Суд расторг контракт, взыскал 35 млн руб. 🎮
Раздел 6. Реверс-инжиниринг игровых форматов (pak, uasset, assetbundle)
📦 Игры хранят ассеты в архивах. Задача эксперта — вытащить оттуда модели, текстуры и т.д. Инструменты:
- Unreal Engine: UE Viewer (UModel) — открывает.pak,.uasset,.umap.
- Unity: AssetStudio, UnityPy — открывает.assetbundle,.resources.
- Godot:
Собственные движки: пишем скрипт на Python, ищем в hex-дампе сигнатуры (например, PK-заголовки для zip).
После извлечения сравниваем модели через MeshLab, текстуры — через pHash. Пример: в одном деле экспорт ассетов показал, что 3D-модель персонажа конкурента имеет ровно те же вершины, что и модель истца, плюс ту же UV-развёртку (уникальную). Плагиат подтверждён. 🧬
Раздел 7. Анализ шейдеров (GLSL/HLSL/DXBC)
🖌️ Шейдеры (вершинные, пиксельные, геометрические) — ещё один плацдарм для плагиата. Эксперт:
- Извлекает скомпилированные шейдеры из файлов игры.
- Для DXBC (DirectX Bytecode) использует 3Dmigoto или dxbc-tools.
- Декомпилирует в HLSL.
- Сравнивает код: переменные, математические операции (например, уникальная реализация освещения Блинна-Фонга с нестандартными коэффициентами).
Если шейдеры идентичны (с точностью до имён регистров) — это сильный признак копирования.
В одном кейсе эксперт обнаружил, что шейдер воды из игры «Б» содержит ту же самую опечатку в формуле рефракции, что и игра «А» (деление на z вместо x). 💧
Раздел 8. Лезем в сеть: анализ трафика многопользовательских игр
🌐 Онлайн-игры постоянно шлют пакеты на сервер. Эксперт:
- Запускает Wireshark и игру.
- Отфильтровывает трафик по порту (например, 7777 для Unreal).
- Видит сырые UDP-пакеты.
- Находит паттерны: первые 4 байта — длина пакета, следующие 4 — тип команды (0x01 = движение, 0x02 = выстрел).
- Пытается расшифровать, если трафик зашифрован. Если сертификат известен — использует mitmproxy с подменой сертификата.
- Обнаруживает «секретные» команды (например, пакет с type=0xFF, который отправляет администратор и получает список всех игроков).
Пример: эксплойт позволял отправлять пакет с type=0xDD и суммой денег, заставляя сервер начислять игроку золото. Эксперт это выявил, и сервер закрыли на патч. 🕳️
Раздел 9. Профилирование производительности: как измерить лаги и фризы
⏱️ Игроки жалуются на лаги. Задача — определить, в чём причина: плохой код или слабое железо. Эксперт использует:
- Intel VTune — профайлер CPU (поиск узких мест, кэш-промахи).
- NVIDIA Nsight — профайлер GPU (draw calls, overdraw, загруженность шейдеров).
- Windows Performance Recorder — сбор ETW-логов (системные события).
- PresentMon — измерение времени от рендера до вывода на экран (frame time).
Собирает метрики, строит графики. Если время кадра скачет от 10 до 100 мс — проблема в спорадических процессах (сборка мусора, загрузка ассетов). Если стабильно высокое — недостаток железа или неоптимизированный код. 🔧
Раздел 10. Реверс игровой логики без исходников (чит-мимикрия)
🤫 Иногда исходный код не дают принципиально. Эксперт дизассемблирует бинарник в IDA Pro, ищет знакомые паттерны. Например, в экшн-играх часто используется паттерн «команда» (Command) для обработки действий игрока. Эксперт:
- Находит таблицу виртуальных функций (vtable) для класса игрока.
- Определяет адрес функции Player::Update().
- Анализирует её код, восстанавливает логику на псевдокоде.
- Сравнивает с другой игрой.
Это медленно, но работает. В одном деле эксперт потратил 80 часов на реверс 5000 функций и доказал, что 60% алгоритмов совпадают. 💪
Раздел 11. Экспертиза лутбоксов: вероятность выпадения и математика
🎲 Игроки жалуются, что шансы нечестные. Эксперт:
- Достаёт код RNG (генератора случайных чисел) из исходников или бинаря.
- Проверяет, используется ли стандартный Mersenne Twister, и правильно ли он инициализируется (от системного времени, от seed).
- Если есть логи открытий (тысячи записей), проводит хи-квадрат тест.
- Сравнивает эмпирическую вероятность с заявленной. При расхождении >5% и p-value <0.01 делает вывод о несоответствии.
Пример: в коде было rand() % 100 < 1 для 1% шанса. Но из-за бага rand() возвращал значения от 0 до 32767, и 1% получался на самом деле 0,98% — мелочь, но статистически значимо (несколько миллионов открытий). Суд обязал изменить описание. 📉
Раздел 12. Анализ анимаций и скелетных ригов
🦴 Движения персонажей — сложный объект для копирования. Эксперт:
- Извлекает анимационные файлы (.fbx,.anim,.psa).
- Сравнивает количество костей в скелете (bone count), их иерархию, имена.
- Вычисляет позиции костей в ключевых кадрах (позвольте метрику расстояния между траекториями).
Если две игры имеют одинаковую анимацию бега с точностью до 0,1 мм, при этом набор костей уникальный — плагиат.
Пример: игра «Зомби-стрелялка» скопировала анимацию атаки мечом из другой игры, включая уникальный изгиб запястья. Эксперт наложил траектории — совпали на 98%. 🗡️
Раздел 13. Экспертиза античит-систем: как они работают и можно ли обмануть
🧙 Античиты (EAC, BattlEye, Vanguard) — сложные драйверы. Эксперт анализирует их в изолированной среде:
- Проверяет, что античит детектит: хуки на функции ядра, инжекцию DLL, отладчики.
- Устанавливает, есть ли ложные срабатывания (например, на легитимные программы вроде OBS).
- Смотрит, собирает ли античит лишние данные (кеши браузера, историю) — нарушение конфиденциальности.
В одном деле античит блокировал игроков за запуск Discord (из-за конфликта имён процессов). Эксперт подтвердил ошибку, суд обязал разработчика разблокировать аккаунты и выплатить компенсацию. 💬
Раздел 14. Почему экспертиза компьютерных игр — это редкая профессия (и мы выезжаем в регионы)
🚀 В России меньше 30 человек, которые реально могут провести полноценную экспертизу компьютерных игр. Почему?
- Надо знать C++, C#, ассемблер x86/ARM, HLSL, Python, SQL.
- Опыт работы с Unity, Unreal, Godot, Source, CryEngine.
- Уметь пользоваться IDA Pro, Ghidra, dnSpy, RenderDoc, Wireshark, VTune.
- Понимать сетевое программирование, шифрование, протоколы.
- Разбираться в 3D-графике (матрицы, кватернионы, нормали, UV).
- Иметь аттестацию Минюста (отдельный геморрой).
🔄 Поэтому мы готовы вылетать для проведения данной экспертизы в любой регион России — от Калининграда до Владивостока. ✈️ Приедем с ноутами, write-blocker’ом, devkit’ами, наделаем дампов, спишем хеши и уедем в лабораторию. Все выезды — быстро, легально, с актами и понятыми. 🧳
Раздел 15. Мобильная лаборатория эксперта (чеклист выезда)
🎒 Выездной набор:
- 2 ноутбука (Win/Linux, 64 ГБ RAM, 2 ТБ SSD).
- Внешние диски 4 ТБ для копирования образов дисков.
- Write-blocker (аппаратный для SATA/USB).
- Хеш-калькулятор (SHA-256).
- Devkit PS5/Xbox Switch (если надо).
- Офлайн-копии IDA Pro, Ghidra, Wireshark, Python-скриптов.
- Виртуалки с Windows 10 LTSC (чистые).
- Камера для фотофиксации.
- Бланки актов, печать, удостоверение.
При выезде: осмотр, клонирование, хеширование, опечатывание, отбытие. Всего 2-8 часов в зависимости от объёма. 📦
Раздел 16. Экспертиза игровых сохранений (нашли читерские правки)
💾 Геймер может подкрутить сохранение в Hex-редакторе. Эксперт:
- Открывает файл сохранения в HxD.
- Ищет значения, которые не могут быть такими большими (здоровье 999999 при максимуме 100).
- Проверяет контрольные суммы: если файл имеет CRC32 в конце, после правки он перестаёт совпадать.
- Сравнивает с эталонным сохранением из честной игры.
Пример: игрок изменил количество внутриигровой валюты с 1500 на 999999. Эксперт увидел это в hex-дампе, сделал вывод о нарушении пользовательского соглашения. Бан подтверждён судом. 🚫
Раздел 17. Экспертиза модов (нарушение лицензии или нет?)
🛠️ Разработчики иногда запрещают моды, но игроки их всё равно делают. Эксперт анализирует:
- Мод — это замена ассетов (перекраска скина) или инжект кода (добавление новой механики)?
- Использует ли мод официальные инструменты (Steam Workshop, Creation Kit) или взламывает игру?
- Не нарушает ли мод лицензию (например, переносит контент из одной игры в другую)?
В одном деле моддер скопировал модель персонажа из платной игры и вставил в бесплатный мод. Эксперт это доказал, суд обязал удалить мод и выплатить 500 тыс. руб. 💰
Раздел 18. Экспертиза VR-игр (трекинг, задержки, иллюзия присутствия)
🥽 VR-игры добавляют новые метрики:
- Задержка трекинга (motion-to-photon latency) — если >20 мс, начинается укачивание.
- Точность отслеживания контроллеров (погрешность позиции и поворота).
- Частота кадров должна быть не ниже 72 FPS (для Quest), а лучше 90 или 120.
Эксперт подключает оборудование (лазерные трекеры, высокоскоростные камеры) или использует встроенные логи гарнитуры (Oculus Debug Tool). Устанавливает, соответствует ли заявленным характеристикам. 🕶️
Раздел 19. Экспертиза игр на блокчейне (крипто-игр, NFT)
⛓️ Crypto-игры (Axie Infinity, Gala Games) — отдельная песня. Эксперт:
- Смотрит смарт-контракты на Etherscan (Solidity).
- Ищет функции, которые могут чеканить (mint) новые NFT без ограничений.
- Проверяет метаданные NFT: ссылка на IPFS ведёт на реально сохранённый файл или на пустышку?
- Анализирует насколько игра действительно децентрализована (есть ли административная кнопка).
В одном деле эксперт обнаружил, что играл на 20 кошельках с одним IP — это не мошенничество, но нарушение правил. Суд признал блокировку аккаунтов правомерной. 🔗
Раздел 20. Экспертиза игр со встроенным шопом (анализ транзакций)
🛒 Внутриигровые покупки — источник споров. Эксперт:
- Вытаскивает из кода логику списания валюты.
- Проверяет, не происходит ли двойное списание (запрос к серверу отправлен дважды из-за лага).
- Анализирует логи сервера (таблицы MySQL/PostgreSQL), ищет аномалии: например, списание средств без соответствующей покупки.
- Проверяет механизм восстановления покупок при переустановке игры (restore).
Однажды эксперт нашёл баг: при быстром клике на «купить скин» отправлялось 3 запроса за 0,1 секунды, и списывалась тройная цена. Разработчика обязали компенсировать убытки. 💳
Раздел 21. Экспертиза кросс-платформенных игр (баги на разных ОС)
🔄 Игра работает на Windows, но вылетает на Linux (Steam Deck) или macOS. Эксперт:
- Ловит краш-дамп (core dump) на проблемной ОС.
- Анализирует стек вызовов, определяет, какая функция вызывает ошибку.
- Сравнивает код вызовов API Windows и POSIX.
- Часто проблема в специфичных для Windows вызовах (CreateFile, RegOpenKey), которые заменены заглушками.
- Эксперт пишет отчёт: ошибка в игре, требуется портирование. ⚠️
Раздел 22. Экспертиза AI в играх (нейросети и деревья поведения)
🤖 Многие игры теперь юзают ML (машинное обучение). Эксперт:
- Извлекает.onnx или.h5 файл обученной модели.
- Загружает в Netron (визуализатор нейросетей).
- Смотрит архитектуру: количество слоёв, типы, веса.
- Сравнивает веса двух моделей из двух игр. Если веса совпадают с точностью до 1e-6 — модель скопирована.
- Для поведенческих деревьев (behavior trees) сравнивает структуру через difftool.
В одном деле AI-агенты двух игр одинаково реагировали на игрока, и эксперт доказал копирование дерева поведения (совпадение узлов 91%). 🌲
Раздел 23. Частые баги в судебной экспертизе игр (IT-юмор)
😅 Что делают эксперты-неофиты не так:
- Забывают выключить автообновление игры — версия меняется, хеши не сходятся.
- Сравнивают Debug-версию одной игры с Release-другой — куча ложных различий.
- Не учитывают рандомизацию адресов ASLR — получают разные дампы.
- Пытаются отладить игру с античитом без отключения драйвера — система крашится.
- Используют пиратскую IDA Pro — заключение признают недопустимым.
- Сливают улики (логи на флешку без хеша) — адвокат оппонента заявляет о фальсификации.
Будьте проактивны: фиксируйте хеши, работайте в изолированной среде, используйте лицензионное ПО, документируйте каждый шаг. 📝
Раздел 24. Будущее: как нейросети изменят экспертизу игр
🧠 Через 5 лет:
- GPT-6 будет писать скрипты для сравнения ассетов и кода за секунды.
- AI-античиты будут сами искать читы и доказывать их наличие (и возможно, ошибаться).
- Экспертам придётся разбираться с Deepfake в геймплейных видео (доказательства читерства).
- Появятся игры на квантовых симуляторах — новый уровень реверса.
Но пока мы, живые инженеры, нужны. Главное — не забывать пить кофе и комментировать код. ☕
Заключение
🟩 Экспертиза компьютерных игр — это хардкорное IT-ремесло на стыке реверс-инжиниринга, геймдева, сетевого программирования и юриспруденции. 🔥 Если вы разработчик или хакер, знающий C++, дизассемблеры, Wireshark и не боящийся судов, это ваша ниша. Мы — одна из немногих команд в РФ, кто реально это делает. 🎯 Ввиду редкости специалистов, мы готовы вылетать для проведения экспертизы компьютерных игр в любой регион России — хоть на Чукотку, хоть в Дагестан. ✈️ Забиваем лабораторию, клонируем диски, реверсим бинари, пишем отчёты.
🔗 Больше инфы, тулчейнов и кейсов — на нашем сайте: https://krimexpert.ru/ekspertiza-kompyuternyh-igr/
🟩 Статья написана в стиле «айтишник для айтишников». Если нашли опечатку или баг — считайте это фичей. Хорошего реверса и честных судов! 🧙♂️





Задавайте любые вопросы