Добро пожаловать на BlackSAMP - ФОРУМ

  • Приватные и секретные разделы доступны только зарегистрированным пользователям.

    Вся важная информация в нашем ТГ: t.me/gtablack

    На данном форуме запрещено публиковать контент нарушающий Российское законодательство, за это последует блокировка ФА.

Гайд Что такое Signature scan

Количество просмотров: 33
Статус
В этой теме нельзя размещать новые ответы.
Уровень сложности
Средне

0xDA0F00D

Администратор
Администратор
Регистрация
18 Авг 2024
Сообщения
175
Решения
7
Реакции
33
Баллы
48
Возраст
19
Адрес
0xC8D4C0
Всем ку , щас расскажу про signature scan и как с этим бороться.

Что это такое?

Античиты вроде EAC или FiveM’s built-in scanner не всегда палят по API хуков или поведениям. Иногда они просто ищут сигнатуру — определённую последовательность байт, характерную для чита.
Обычно такие сигнатуры берутся из функций, которые редко меняются:
  • static patterns (55 8B EC 83 E4 F8 83 EC ??)
  • уникальные строки
  • маркеры в памяти (например, идентификаторы модуля)

C++:
void DWORD playerBase = (DWORD)0x17A56BC;
    (bool)(playerBase + 0x189) = true; // бессмертие

    printf("GodMode ON\n");
}

Такой код легко может всплыть в сигнатурной базе по:
  • адресу
  • последовательности байт в функции
  • строке GodMode ON


Как защититься?

1. Инлайн-обфускация
C++:
void GodMode()
{
    DWORD playerBase = (DWORD)0x17A56BC;

    (volatile char)((uintptr_t)playerBase + 0x189) = 1 ^ 1 ^ 1; // xor против сигнатур
}

2. Прячем строки
C++:
const char* xstr = xorstr("GodMode ON");
printf("%s\n", xstr); // строка в рантайме не распознаётся как обычная
3. Перемешивание кода и junk

C++:
void Junk() {
    int a = 1337 ^ 42;
    if (a % 2 == 0) a += 5;
}

void GodMode()
{
    Junk(); // лишний шум
    DWORD base = (DWORD)0x17A56BC;
    (bool)(base + 0x189) = true;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу