Особождайте ее в unhook`e
тонее она там освобождается
Код:
function UnhookCode(OldProc: pointer): boolean;
var
OldProtect: dword;
Proc: pointer;
SaveSize: dword;
begin
Result := True;
try
Proc := pointer(dword(pointer(dword(OldProc) - 5)^));
SaveSize := byte(pointer(dword(OldProc) - 1)^);
VirtualProtect(Proc, 5, PAGE_EXECUTE_READWRITE, OldProtect);
CopyMemory(Proc, OldProc, SaveSize);
VirtualProtect(Proc, 5, OldProtect, OldProtect);
FreeMem(pointer(dword(OldProc) - 5));
except
Result := False;
end;
end;