Показать сообщение отдельно
Старый 28.01.2011, 22:18   #11
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

delphi Код:
var GetProcAddressNext: function(Module: THandle; ProcName: PChar): TFarProc; stdcall; function MyGetProcAddressHook(Module: THandle; ProcName: PChar): TFarProc; stdcall; begin messagebox(0,'MyGetProcAddressHook','MyGetProcAddressHook',0); result:=GetProcAddressNext(Module,ProcName); end; function SaveOldFunction(Proc: pointer; Old: pointer): dword; var   SaveSize, Size: dword;   Next: pointer; begin   SaveSize := 0;   Next := Proc;   while SaveSize < 5 do   begin     Size := SizeOfCode(Next);     Next := pointer(dword(Next) + Size);     Inc(SaveSize, Size);   end;   CopyMemory(Old, Proc, SaveSize);   byte(pointer(dword(Old) + SaveSize)^) := $e9;   dword(pointer(dword(Old) + SaveSize + 1)^) := dword(Next) - dword(Old) - SaveSize - 5;   Result := SaveSize; end; function MyHookCode(TargetProc, NewProc: pointer; var OldProc: pointer): boolean; var   Address: dword;   OldProtect: dword;   OldFunction: pointer;   Proc: pointer; begin   Result := False;   try     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);   except     Exit;   end;   Result := True; end; function CloneTable : boolean; var   hKernel32:Cardinal;   pGetProcAddress:Pointer; begin result:=false; hKernel32:=GetModuleHandle('kernel32.dll'); if hKernel32=0 then exit; pGetProcAddress:=GetProcAddress(hKernel32,'GetProcAddress'); if pGetProcAddress=nil then exit; result:=MyHookCode(pGetProcAddress,@MyGetProcAddressHook,@GetProcAddressNext); end;

я уже не знаю, ошибка и всё(
__________________
Начало.
supernewbie вне форума   Ответить с цитированием