messagebox(0,'MyGetProcAddressHook','MyGetProcAddr essHook',0); тут делай вывод в консоль, приложение не сможет ждать пока ты "ок" на каждом окошке тыркать будиш
Добавлено через 29 секунд
VirtualProtect(Proc, 5, PAGE_EXECUTE_READWRITE, OldProtect); что возвращает функция?
Добавлено через 42 секунды
Цитата:
Сообщение от supernewbie
* * Proc := TargetProc;
* * Address := dword(NewProc) - dword(Proc) - 5;
* * VirtualProtect(Proc, 5, PAGE_EXECUTE_READWRITE, OldProtect);
* * GetMem(OldFunction, 255);
* * dword(OldFunction^) := dword(Proc);
* * byte(pointer(dword(OldFunction) + 4)^) := SaveOldFunction(Proc, pointer(dword(OldFunction) + 5));
* * byte(Proc^) := $e9;
* * dword(pointer(dword(Proc) + 1)^) := Address;
* * VirtualProtect(Proc, 5, OldProtect, OldProtect);
* * OldProc := pointer(dword(OldFunction) + 5);
|
почему тут так сложно все? где каментарии?
Добавлено через 1 минуту
крит ошибка вылетает тут?
Цитата:
Сообщение от supernewbie
* dword(OldFunction^) := dword(Proc);
|
или тут?
Цитата:
Сообщение от supernewbie
byte(pointer(dword(OldFunction) + 4)^) := SaveOldFunction(Proc, pointer(dword(OldFunction) + 5));
|
или тут?
Цитата:
Сообщение от supernewbie
byte(Proc^) := $e9;
|
или тут?
Цитата:
Сообщение от supernewbie
dword(pointer(dword(Proc) + 1)^) := Address;
|
Добавлено через 2 минуты
Цитата:
Сообщение от supernewbie
if hKernel32=0 then exit;
|
then
begin
writeln('не могу найти kernel32.dll');
exit;
end;