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

Гайд SCP:SL — Полный разбор Anti-Cheat (SLAC), обход и реверс

Обратите внимание, что на пользователя недавно была жалоба: Жалоба от lovehvhneverlose на hex_cat. Будьте осторожны!
Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
455
Реакции
10
Решил на досуге плотно поковырять SCP: Secret Laboratory. Игра хоть и выглядит местами топорно, но под капотом там крутятся довольно специфичные механизмы защиты. Слили этот материал с целью показать, насколько дырявым может быть античит, если разработчики полагаются только на готовые протекторы типа Themida, не понимая основ безопасности.

Архитектура защиты
Всё делится на две части:
  1. SCP-SL.exe — сам бинарник игры, отвечает за авторизацию и сбор HWID.
  2. SLAC.dll — основная либа античита, которая занимается детектами и общением с бэкендом.

Технические дыры SLAC
Либа упакована и виртуализирована через Themida, но вот незадача — огромное количество критических данных осталось в открытом виде. Вскрываем всё это в IDA и видим классику:

1. RTTI (RunTime Type Information): Разработчики оставили RTTI включенным. Это подарок для реверсера, так как все структуры и типы данных видны как на ладони. Детекты здесь примитивные: чекают теги пула ядра, сигнатуры и базовую целостность. Юзают обычный WinAPI, даже до Nt-функций не дошли, не говоря уже о syscalls.

2. Дизайн VTable: Все проверки используют виртуальные таблицы. Дизайн примитивный, и, что самое смешное, Themida не чекает их целостность. Лейаут таблиц одинаков для всех проверок, так как они юзают один и тот же базовый класс.

3. CURL и сеть: Тут вообще эпик. Проверка сертификатов в CURL просто отключена. Если перенаправить трафик античита (slac.scpslgame.com/beat) на любой локальный пых-скрипт, который возвращает 200 OK — вы успешно «байпасснули» античит.

Сетевой протокол и крипта
Трафик шифруется через AES256CBC. Чтобы дебажить CURL без лишней возни, можно просто создать файл %APPDATA%/SCP Secret Laboratory/slac_debug.txt, и все логи упадут в ту же папку.

Для дешифровки JSON-пакетов используйте эти ключи:
Код:
Expand Collapse Copy
std::string key_hex = "e43f7ba2b97ee287e63e14f5cc567fea70cc841f751bc54dd2d41ab8f4c1cbdf";
std::string iv_hex = "5810706fa51b2663db8b17768f92e4a4";

Логирование и HWID
Игра собирает о вас буквально всё. В пакетах на сервер улетают:
  1. Токены Steam и старые тикеты.
  2. Имя ПК (Workgroup) и SID.
  3. Данные процессора и Machine GUID.
  4. MAC-адреса шлюза и всех адаптеров.
  5. Серийники дисков и переменные окружения PATH.
В папке %APPDATA% создаются файлы c-data, s-configs, u-data, которые тоже участвуют в идентификации. Если хотите играть после бана — спуфать нужно всё по списку.

Обход целостности (Integrity Bypass)
Обойти проверку целостности Themida можно через банальный патч функции проверки, подсовывая ей «теневую копию» оригинальной памяти. Пример на голом асме:

Код:
Expand Collapse Copy
__attribute__((naked))
void hkInteg()
{
 __asm
 {
  push rbp
  mov rbp, rsp
  push rsi
  push rdi
  /* PATCH: Подменяем rsi на нашу чистую копию */
  mov rsi, shadow_copy 
  mov rdi, [rbp + 10h]
  mov ecx, [rbp + 20h]
  rep movsb
  /* Restore & Exit */
  pop rdi
  pop rsi
  leave
  retn 18H
 }
}

Итог
Античит крайне сырой. Нет ASLR, слабый анти-дебаг, полное отсутствие контроля syscalls и примитивная логика на VTable. Для внешних читов (External) детектов практически нет, если не наглеть с RPM/WPM.

Кто уже пробовал эмулировать их бэкенд на постоянке, есть ли нюансы по хертбитам?
 
Решил на досуге плотно поковырять SCP: Secret Laboratory. Игра хоть и выглядит местами топорно, но под капотом там крутятся довольно специфичные механизмы защиты. Слили этот материал с целью показать, насколько дырявым может быть античит, если разработчики полагаются только на готовые протекторы типа Themida, не понимая основ безопасности.

Архитектура защиты
Всё делится на две части:
  1. SCP-SL.exe — сам бинарник игры, отвечает за авторизацию и сбор HWID.
  2. SLAC.dll — основная либа античита, которая занимается детектами и общением с бэкендом.

Технические дыры SLAC
Либа упакована и виртуализирована через Themida, но вот незадача — огромное количество критических данных осталось в открытом виде. Вскрываем всё это в IDA и видим классику:

1. RTTI (RunTime Type Information): Разработчики оставили RTTI включенным. Это подарок для реверсера, так как все структуры и типы данных видны как на ладони. Детекты здесь примитивные: чекают теги пула ядра, сигнатуры и базовую целостность. Юзают обычный WinAPI, даже до Nt-функций не дошли, не говоря уже о syscalls.

2. Дизайн VTable: Все проверки используют виртуальные таблицы. Дизайн примитивный, и, что самое смешное, Themida не чекает их целостность. Лейаут таблиц одинаков для всех проверок, так как они юзают один и тот же базовый класс.

3. CURL и сеть: Тут вообще эпик. Проверка сертификатов в CURL просто отключена. Если перенаправить трафик античита (slac.scpslgame.com/beat) на любой локальный пых-скрипт, который возвращает 200 OK — вы успешно «байпасснули» античит.

Сетевой протокол и крипта
Трафик шифруется через AES256CBC. Чтобы дебажить CURL без лишней возни, можно просто создать файл %APPDATA%/SCP Secret Laboratory/slac_debug.txt, и все логи упадут в ту же папку.

Для дешифровки JSON-пакетов используйте эти ключи:
Код:
Expand Collapse Copy
std::string key_hex = "e43f7ba2b97ee287e63e14f5cc567fea70cc841f751bc54dd2d41ab8f4c1cbdf";
std::string iv_hex = "5810706fa51b2663db8b17768f92e4a4";

Логирование и HWID
Игра собирает о вас буквально всё. В пакетах на сервер улетают:
  1. Токены Steam и старые тикеты.
  2. Имя ПК (Workgroup) и SID.
  3. Данные процессора и Machine GUID.
  4. MAC-адреса шлюза и всех адаптеров.
  5. Серийники дисков и переменные окружения PATH.
В папке %APPDATA% создаются файлы c-data, s-configs, u-data, которые тоже участвуют в идентификации. Если хотите играть после бана — спуфать нужно всё по списку.

Обход целостности (Integrity Bypass)
Обойти проверку целостности Themida можно через банальный патч функции проверки, подсовывая ей «теневую копию» оригинальной памяти. Пример на голом асме:

Код:
Expand Collapse Copy
__attribute__((naked))
void hkInteg()
{
 __asm
 {
  push rbp
  mov rbp, rsp
  push rsi
  push rdi
  /* PATCH: Подменяем rsi на нашу чистую копию */
  mov rsi, shadow_copy
  mov rdi, [rbp + 10h]
  mov ecx, [rbp + 20h]
  rep movsb
  /* Restore & Exit */
  pop rdi
  pop rsi
  leave
  retn 18H
 }
}

Итог
Античит крайне сырой. Нет ASLR, слабый анти-дебаг, полное отсутствие контроля syscalls и примитивная логика на VTable. Для внешних читов (External) детектов практически нет, если не наглеть с RPM/WPM.

Кто уже пробовал эмулировать их бэкенд на постоянке, есть ли нюансы по хертбитам?
Правда то что все твои слова это ИИ?
 
Назад
Сверху Снизу