Blind Hook

maratik99993

Участник
Сообщения
21
Реакции
11
vip/VIP_AntiFlash.smx ([VIP] AntiFlash (CS:GO)): Required extension "blindhook" file("blindhook.ext") not running
а с выше блиндами, либо не работают, либо краш сервера
 

Kailo

Участник
Сообщения
194
Реакции
896
  • Автор ресурса
  • #83

Vit_ amin

Добрая душа
Сообщения
1,504
Реакции
660
Судя по detour из Extension:
C-подобный:
__declspec(naked) void blindhook()
{
#if defined(WIN32)
    __asm push [esp+0x10]        // pevAttacker
    __asm push [esp+0x4+0x14]    // pevInflictor
    __asm push esi                // pEntity
#else
    __asm sub esp, 4            // Align to 16
    __asm push [ebp+0x18]        // pevAttacker
    __asm push [ebp+0x14]        // pevInflictor
    __asm push ebx                // pEntity
#endif
    __asm call BlindHookHandler;
#if !defined(WIN32)
    __asm add esp, 4
#endif

    __asm test al, al;
    __asm jz Trampoline
    // skip
    __asm mov ecx, g_addr_skip
    __asm jmp ecx

    // Trampoline back
    __asm Trampoline:
#if defined(WIN32)
    __asm _emit 0x8B
    __asm _emit 0x06
    __asm _emit 0x8D
    __asm _emit 0x8C
    __asm _emit 0x24
    __asm _emit 0xD0
    __asm _emit 0x00
    __asm _emit 0x00
    __asm _emit 0x00
    __asm _emit 0x51
#else
    __asm _emit 0x8B
    __asm _emit 0x03
    __asm _emit 0x8D
    __asm _emit 0x95
    __asm _emit 0xF8
    __asm _emit 0xFE
    __asm _emit 0xFF
    __asm _emit 0xFF
#endif

    __asm mov ecx, g_addr_continue
    __asm jmp ecx
}
Помимо получения pattern'a еще необходимо изменять стек, так как скорее всего компилятор "перетусовал" имена регистров и по другому сделал байт-код|
Ну и еще очень высока вероятность, что смещения стали другими:
C-подобный:
...
#if defined(WIN32)
    addr_hook = (void*)((uintptr_t)addr + 0x1FB);
    g_addr_continue = (void*)((uintptr_t)addr + 0x205);
    g_addr_skip = (void*)((uintptr_t)addr + 0x6D7);
#else
    addr_hook = (void*)((uintptr_t)addr + 0x135);
    g_addr_continue = (void*)((uintptr_t)addr + 0x13D);
    g_addr_skip = (void*)((uintptr_t)addr + 0xB0);
#endif
...
 
Сверху Снизу