1#include <metahook.h>2 3 structevent_hook_t4 {5event_hook_t *Next;6 Char*name;7 void(*pfnevent) (event_args_s *args);8 };9 Ten #defineHookevent_sig "\x8d\x44\x24\x08\x56\x8d\x4c\x24\x08\x50\x51\xff\x15\x2a\x2a\x2a\x2a\x8b\x44\x24\x10\x83\xc4\x08 \x85\xc0\x74\x2a\x80\x38\x00 " One Aevent_hook_t *g_peventhooks =NULL; - - voidEv_init (void) the { -DWORDBase= (DWORD) G_pmetahookapi->searchpattern ((void*) G_dwenginebase, g_dwenginesize, Hookevent_sig,sizeof(Hookevent_sig)-1); - - if(Base) + { -G_peventhooks = (event_hook_t *) (* (DWORD *) (Base+0x72)); + } A } at -event_hook_t *ev_findhook (Const Char*name) - { - if(!g_peventhooks) - { - returnNULL; in } - toevent_hook_t *ev =G_peventhooks; + - while(EV) the { * if(Ev->name &&!stricmp (name, ev->name)) $ {Panax Notoginseng returnev; - } the +EV = ev->Next; A } the + returnNULL; -}
[Metahook] Event Hooks