Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Unreal Engine — Методы обхода паттерн-сканирования памяти при мануал маппинге

  • Автор темы Автор темы hex_cat
  • Дата начала Дата начала
Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
505
Реакции
12
Народ, кто сейчас ковыряет UE игры без сторонних античитов, подскажите по поводу защиты от паттерн-сканирования.

Ситуация следующая: есть 64-битный тайтл на Unreal Engine, своего античита нет, но девы активно мониторят память своим исполняемым файлом. Сейчас инжект через мануал маппинг, сама длл под ВМП, стринг-крипт есть, декрипт в памяти — тоже. Но чую, что если доберутся до инжектора, то начнут сканировать память на предмет "лишних" модулей или аномалий в коде.

Текущий план действий:
  1. Динамическая сборка: Поднимаю сервер, который при каждом запросе компилит билд с рандомными мусорными макросами, чтобы смещать сигнатуры.
  2. Уникализация: После компиляции — автоматический прогон через VMProtect на сервере и выдача юзеру уникального бинарника.

Вопрос к тем, кто уже плотно работал с такой защитой:

  1. Мусорный код: Насколько сильно реально помогают джанк-макросы против современных сканеров? Не будут ли они просто создавать подозрительные области с невыполняемым кодом, на которые сработает эвристика?
  2. Маскировка мануал маппинга: Как сейчас грамотно зачищать следы в InLoadOrderModuleList, InMemoryOrderModuleList и InInitializationOrderModuleList? Простого обнуления заголовков (PE header) уже явно мало.
  3. Скан памяти: Есть ли смысл делать section hiding или перехватывать функции сканирования памяти, если игра обращается к VirtualQuery или ReadProcessMemory в своих же потоках?

Понимаю, что панацеи нет, но хочется минимизировать шансы на детект через статику. Если у кого есть наработки или опыт по обходу таких проверок в UE — поделитесь мыслями, как лучше подойти к изменению структуры бинарника при билде. Может, есть более изящные методы, чем просто рандомный мусор в коде?

Отпишитесь, кто сталкивался с подобным, стоит ли заморачиваться с кастомным компилятором на бэкенде или проще уйти в сторону полноценного экстернала через RPM/WPM, чтобы вообще не светить длл в адресном пространстве процесса?
 
джанк макросы особо не спасают от эвристик лучше фокус на обфускацию вызовов и перехват API в рантайме чем нагромождать мусор. по поводу списков чистка LDR списков обязательна но делай через прямые записи в память после маппинга не через стандартные функции.
 
Назад
Сверху Снизу