Начинающий
- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 130
- Реакции
- 4
Народ, кто сейчас ковыряет UE игры без сторонних античитов, подскажите по поводу защиты от паттерн-сканирования.
Ситуация следующая: есть 64-битный тайтл на Unreal Engine, своего античита нет, но девы активно мониторят память своим исполняемым файлом. Сейчас инжект через мануал маппинг, сама длл под ВМП, стринг-крипт есть, декрипт в памяти — тоже. Но чую, что если доберутся до инжектора, то начнут сканировать память на предмет "лишних" модулей или аномалий в коде.
Текущий план действий:
Вопрос к тем, кто уже плотно работал с такой защитой:
Понимаю, что панацеи нет, но хочется минимизировать шансы на детект через статику. Если у кого есть наработки или опыт по обходу таких проверок в UE — поделитесь мыслями, как лучше подойти к изменению структуры бинарника при билде. Может, есть более изящные методы, чем просто рандомный мусор в коде?
Отпишитесь, кто сталкивался с подобным, стоит ли заморачиваться с кастомным компилятором на бэкенде или проще уйти в сторону полноценного экстернала через RPM/WPM, чтобы вообще не светить длл в адресном пространстве процесса?
Ситуация следующая: есть 64-битный тайтл на Unreal Engine, своего античита нет, но девы активно мониторят память своим исполняемым файлом. Сейчас инжект через мануал маппинг, сама длл под ВМП, стринг-крипт есть, декрипт в памяти — тоже. Но чую, что если доберутся до инжектора, то начнут сканировать память на предмет "лишних" модулей или аномалий в коде.
Текущий план действий:
- Динамическая сборка: Поднимаю сервер, который при каждом запросе компилит билд с рандомными мусорными макросами, чтобы смещать сигнатуры.
- Уникализация: После компиляции — автоматический прогон через VMProtect на сервере и выдача юзеру уникального бинарника.
Вопрос к тем, кто уже плотно работал с такой защитой:
- Мусорный код: Насколько сильно реально помогают джанк-макросы против современных сканеров? Не будут ли они просто создавать подозрительные области с невыполняемым кодом, на которые сработает эвристика?
- Маскировка мануал маппинга: Как сейчас грамотно зачищать следы в InLoadOrderModuleList, InMemoryOrderModuleList и InInitializationOrderModuleList? Простого обнуления заголовков (PE header) уже явно мало.
- Скан памяти: Есть ли смысл делать section hiding или перехватывать функции сканирования памяти, если игра обращается к VirtualQuery или ReadProcessMemory в своих же потоках?
Понимаю, что панацеи нет, но хочется минимизировать шансы на детект через статику. Если у кого есть наработки или опыт по обходу таких проверок в UE — поделитесь мыслями, как лучше подойти к изменению структуры бинарника при билде. Может, есть более изящные методы, чем просто рандомный мусор в коде?
Отпишитесь, кто сталкивался с подобным, стоит ли заморачиваться с кастомным компилятором на бэкенде или проще уйти в сторону полноценного экстернала через RPM/WPM, чтобы вообще не светить длл в адресном пространстве процесса?