Показать сообщение отдельно
Старый 28.01.2011, 22:26   #142
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию

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;
__________________
Шожиделать.. ботить хочется..

Последний раз редактировалось destructor, 28.01.2011 в 22:28. Причина: Добавлено сообщение
destructor вне форума   Ответить с цитированием