- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 724
- Реакции
- 18
Парни, прилетел неплохой опенсурс проект для тех, кто копает в сторону обхода HWID банов в FiveM. Автор решил выложить наработки MatrixSpoofer — это база, написанная «на коленке» от скуки, но технически она закрывает основные дыры, через которые античит сканирует ваше железо.
Как FiveM палит твой конфиг?
Античит тянет индентификаторы из трех основных векторов, и если ты их не подменил — летит мануалбан или автодетект по списку:
Как реализован обход:
В случае с NVIDIA и clipc.dll — логика топорная, но рабочая: тупо блокируется доступ к DLL и объектам устройств. Когда FiveM пытается открыть хендл и получает отказ — данных нет, а значит, и банить не за что.
С NtQueryEaFile всё интереснее. Спуфер перехватывает вызов и через FakeEaBuffer подменяет данные в буфере псевдорандомными байтами через xorshift. Сид генерится на основе хеша хендла файла, чтобы данные были консистентными.
Юзать это как готовый продукт на мейне — затея сомнительная, а вот как фундамент для своего драйверного спуфера или изучения методов детекта FiveM — самое то. Исходники открыты, так что под допил подходят идеально.
Интересно, насколько долго этот метод с блокировкой доступа к DLL будет жить в реалиях современных обновлений античита.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Как FiveM палит твой конфиг?
Античит тянет индентификаторы из трех основных векторов, и если ты их не подменил — летит мануалбан или автодетект по списку:
- Интерфейсы NVIDIA. Сканируются пути NvAdminDevice (объект устройства из nvlddmkm.sys), NvAPI (nvapi64.dll), NvMllDdk и nvml. По сути, им нужен твой GPU-ID, который выдает nvidia-smi.
- clipc.dll. Эта библиотека живет в System32 и отвечает за Client Licensing Platform. Она мешает кучу серийников в один уникальный фингерпринт системы. FiveM очень любит этот метод.
- NtQueryEaFile. Запрос расширенных атрибутов файлов NTFS. В метаданных часто зашиты серийники томов и дисков. Античит просто читает буфер и забирает данные напрямую.
Как реализован обход:
В случае с NVIDIA и clipc.dll — логика топорная, но рабочая: тупо блокируется доступ к DLL и объектам устройств. Когда FiveM пытается открыть хендл и получает отказ — данных нет, а значит, и банить не за что.
С NtQueryEaFile всё интереснее. Спуфер перехватывает вызов и через FakeEaBuffer подменяет данные в буфере псевдорандомными байтами через xorshift. Сид генерится на основе хеша хендла файла, чтобы данные были консистентными.
Код:
void FakeEaBuffer(const PVOID buffer, const ULONG length, const ULONG64 seed)
{
auto entry = static_cast<PFILE_FULL_EA_INFORMATION>(buffer);
ULONG offset = 0;
ULONG64 entrySeed = seed;
while (offset < length)
{
if (entry->EaValueLength > 0)
{
const PCHAR valuePtr = entry->EaName + entry->EaNameLength + 1;
for (USHORT i = 0; i < entry->EaValueLength; i++)
{
entrySeed ^= (entrySeed << 13);
entrySeed ^= (entrySeed >> 7);
entrySeed ^= (entrySeed << 17);
valuePtr[i] = static_cast<UCHAR>(entrySeed & 0xFF);
}
}
if (entry->NextEntryOffset == 0)
break;
offset += entry->NextEntryOffset;
entry = reinterpret_cast<PFILE_FULL_EA_INFORMATION>(static_cast<PUCHAR>(buffer) + offset);
}
}
— Драйверная часть базируется на хуках syscall.
— Для работы с NVIDIA блокируются либы в юзермоде и объекты в кернеле.
— В коде встречается xdefs.h — автор сам говорит, что там дикий костыль, но работает.
— Для работы с NVIDIA блокируются либы в юзермоде и объекты в кернеле.
— В коде встречается xdefs.h — автор сам говорит, что там дикий костыль, но работает.
Юзать это как готовый продукт на мейне — затея сомнительная, а вот как фундамент для своего драйверного спуфера или изучения методов детекта FiveM — самое то. Исходники открыты, так что под допил подходят идеально.
Интересно, насколько долго этот метод с блокировкой доступа к DLL будет жить в реалиях современных обновлений античита.