Здравствуйте всем.Я пишу сниффер для пакетов но мне нужно сделать фильтр.Сам хук.
Код:
procedure hook(tFunc, nFunc:Pointer);
var
jmpTo: DWord;
oldProtect: Cardinal;
begin
jmpTo := DWord(nFunc) - DWord(tFunc) - 5;
VirtualProtect(tFunc, 5, PAGE_EXECUTE_READWRITE, @oldProtect);
pbyte(tFunc)^ := $e9;
pdword(DWord(tFunc)+1)^ := jmpTo;
end;
и функция
Код:
function hookSend(s:Integer; buf:PAnsiChar; len:Integer; flags:Integer):Integer; stdcall;
begin
mstring:=form5.filter(buf);
len1:=Length(mstring);
WriteProcessMemory(pid, @buf, @mstring, len1, written);
WriteProcessMemory(pid, @len, @len1, 4, written);
Main.updateLists;
Result := unhookedSend;
end;
Программа выдает ошибку.acces violation.кода length меньше все норм.может кто помочь?