Почему Lua-экзекуторы — особая проблема
Большинство читов для ФайвЭм живут в DLL на C/C++ и ловятся обычным сканом сигнатур инжектнутых модулей. Lua-экзекуторы устроены иначе: они выполняют произвольный Lua внутри легального скриптового рантайма ФайвЭм, поэтому для большинства статических проверок выглядят как обычные игровые скрипты. Скан сигнатур по бинарнику экзекутора помогает, но бинарник маленький, его постоянно переписывают и легко переупаковывают. Детект должен идти и на уровне рантайма.
Детект сигнатур загрузчика
Первая линия обороны — детект сигнатур процесса-загрузчика и любых DLL, которые он мапит в ФайвЭм. Пак сигнатур Raven отслеживает самые активные семейства загрузчиков и обновляется раз в 1-7 дней. Это сразу ловит ленивых экзекуторов и заставляет остальных переупаковываться к каждому релизу, что выигрывает время.
Проверки целостности рантайма
Помимо сигнатур загрузчика Raven проверяет целостность самого Lua-рантайма. Он следит за тем, какие нативные обработчики пропатчены, какие регистрации событий существуют и не появились ли в глобальном состоянии Lua чужие таблицы. Экзекутору обычно нужно вставить хотя бы одно из этого, чтобы доставить свою нагрузку, поэтому этот слой поднимает флаг даже тогда, когда сам бинарник загрузчика неизвестен.
Серверная валидация как страховка
Даже если обойдены и сигнатура загрузчика, и проверка рантайма, экзекутору всё равно надо что-то сделать со своим доступом, а это обычно значит вызвать серверные события, которых легальные скрипты не вызывают. Слой валидации серверных событий (см. /how-it-works/event-validation) блокирует события из запрещённых источников и отклоняет нагрузку за пределами правдоподобных границ. Выдача денег через Lua, дюп предметов, потоки спавна транспорта и телепорты игроков — всё упирается в одни и те же ворота валидации.
Почему детект Lua-экзекуторов никогда не «закончен»
Авторы экзекуторов переписывают загрузчики постоянно, потому что каждая выпущенная против них сигнатура стоит им всей клиентской базы этого релиза. Детект идёт непрерывно: работающий сегодня экзекутор через 1-7 дней становится задетекченным, а его пользователи оказываются в глобальной базе банов. Запись-предупреждение от 2026-04-21 в changelog разбирает свежий пример: паттерн вызова событий у Redengine, закрытый на сервере правилом, которое работает, даже если обойдены все клиентские проверки.