- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 395
- Реакции
- 8
Народ, решил расписать базу по Zula для тех, кто еще ковыряет этот проект или хочет поднять свои знания в мануал-маппинге и защите от репортов. Игра специфичная, но на ее примере отлично разбирается работа с ядром и графическими хуками.
1. Настройка Blackbone (Kernel Side)
Многие новички спотыкаются на смещениях (offsets) под разные версии винды. В файле BlackBoneDrv.c нужно четко прописать соответствие версий. Вот актуальные структуры для последних билдов (10 и 11):
Если сидите на 21H2, то конфиг pData выглядит так:
2. Юзер-мод инжектор (Mmap)
После того как драйвер готов, пишем простенький аттач к zula.exe. Рекомендую использовать флаги KWipeHeader и KNoTLS, чтобы лишний раз не светить PE-хидерами в памяти.
3. Детект репортов и анти-скриншот (BitBlt Hook)
В Zula есть фишка: когда на вас кидают репорт, игра делает скриншот через BitBlt. Если в этот момент у вас отрисован ESP или чамсы — это инстабан при ручной проверке. Решение — вешать хук на BitBlt и вырубать визуалы на время вызова функции.
4. Бан-система и HWID
Zula довольно примитивно чекает железо через autorun.exe. Если словили табличку "PC is blocked", не спешите покупать платные спуферы. Для начала пройдитесь по этим веткам реестра:
Методы старые, но в этой игре до сих пор работают. Кто уже тестил такой подход на актуальных патчах?
Кто пробовал более изощренные методы обхода их анти-скриншота, отпишитесь в треде.
1. Настройка Blackbone (Kernel Side)
Многие новички спотыкаются на смещениях (offsets) под разные версии винды. В файле BlackBoneDrv.c нужно четко прописать соответствие версий. Вот актуальные структуры для последних билдов (10 и 11):
Код:
WINVER_10_22H2 = 0x0A0C,
WINVER_11_21H2 = 0x0B00,
WINVER_11_22H2 = 0x0B01,
WINVER_11_23H2 = 0x0B02,
Если сидите на 21H2, то конфиг pData выглядит так:
Код:
pData->ver = 0x0A0B;
pData->KExecOpt = 0x283;
pData->Protection = 0x87A;
pData->EProcessFlags2 = 0x9D4; // MitigationFlags
pData->ObjTable = 0x570;
pData->VadRoot = 0x7D8;
pData->PrevMode = 0x232;
pData->ExitStatus = 0x548;
pData->NtCreateThdExIndex = 0xC2;
pData->NtTermThdIndex = 0x53;
2. Юзер-мод инжектор (Mmap)
После того как драйвер готов, пишем простенький аттач к zula.exe. Рекомендую использовать флаги KWipeHeader и KNoTLS, чтобы лишний раз не светить PE-хидерами в памяти.
Код:
int main()
{
NTSTATUS status = -1;
while (!NT_SUCCESS(status))
{
status = process.Attach(xorstr_(L"zula.exe"));
std::this_thread::sleep_for(std::chrono::milliseconds(100));
}
blackbone::Driver().EnsureLoaded();
blackbone::Driver().MmapDll(
process.pid(), xorstr_(L"your_cheat.dll"),
KWipeHeader | KNoTLS
);
std::this_thread::sleep_for(std::chrono::seconds(5));
blackbone::Driver().Unload();
return 0;
}
3. Детект репортов и анти-скриншот (BitBlt Hook)
В Zula есть фишка: когда на вас кидают репорт, игра делает скриншот через BitBlt. Если в этот момент у вас отрисован ESP или чамсы — это инстабан при ручной проверке. Решение — вешать хук на BitBlt и вырубать визуалы на время вызова функции.
Код:
typedef BOOL(WINAPI* iBitBlt)(HDC, int, int, int, int, HDC, int, int, DWORD);
iBitBlt oBitBlt = nullptr;
BOOL __stdcall hkBitBlt(HDC hdc, int x, int y, int cx, int cy, HDC hdcSrc, int x1, int y1, DWORD rop)
{
// Гасим все визуалы перед тем, как игра заскринит экран
utils::menu = false;
utils::WallHack = false;
utils::EspBox = false;
utils::Chams = false;
utils::EspLine = false;
return oBitBlt(hdc, x, y, cx, cy, hdcSrc, x1, y1, rop);
}
// Установка через Detours
uintptr_t gdi32Base = (uintptr_t)GetModuleHandleA("gdi32.dll");
oBitBlt = (iBitBlt)(gdi32Base + 0x6DE0);
DetourAttach(&(PVOID&)oBitBlt, hkBitBlt);
4. Бан-система и HWID
Zula довольно примитивно чекает железо через autorun.exe. Если словили табличку "PC is blocked", не спешите покупать платные спуферы. Для начала пройдитесь по этим веткам реестра:
- Удалите UDID: HKEY_CURRENT_USER\SOFTWARE\Zula
- Смените MAC-адрес во всех сетевых адаптерах: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\...
- Подмените имя процессора: HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0
Методы старые, но в этой игре до сих пор работают. Кто уже тестил такой подход на актуальных патчах?
Кто пробовал более изощренные методы обхода их анти-скриншота, отпишитесь в треде.