
13.09.2008, 21:18
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Добавил:
PHP код:
if(ul_reason_for_call == DLL_PROCESS_DETACH )
{
hookoff();
}
...
PHP код:
void hookoff(void) {
WriteProcessMemory(GetCurrentProcess(), (void*)adrmesbox, (void*)&buf, 6, &written);
}
Изменил:
PHP код:
void intercept(void) {
DWORD oldf;
int prot;
adrmesbox = (DWORD)GetProcAddress(GetModuleHandleA("user32.dll"),"MessageBoxA");
if(adrmesbox == 0)
{
MessageBoxA(NULL, "MessageBoxA не найден", "ошибка", 0);
return;
}
prot = VirtualProtect((void*)adrmesbox,6,PAGE_EXECUTE_READWRITE,&oldf);
if (!prot) {
ExitProcess(0);
}
jump.op_push = 0x68;
jump.arg = (DWORD)&intMesbox;
jump.op_push = 0xC3;
ReadProcessMemory(GetCurrentProcess(), (void*)adrmesbox, (void*)buf, 6, &written);
WriteProcessMemory(GetCurrentProcess(), (void*)adrmesbox, (void*)&jump, 6, &written);
}
|
|
|