да мне не вызвать надо было, а хук поставить и парсить пакет без гавняканья стека, но щас не об этом, это сделал
---
проблема в том, что есть 2% шанс что что-то пойдет не так, не знаю что именно, но клиент крашится
delphi Код:
procedure ParsingFromServer;
var
np:PNetworkPacket;
s:string;
p:pointer;
begin
try
np:=tmp1;
s:=IntToHex(np.id,2)+' ';
if np.size>0 then
for i:=0 to np.size-1 do
begin
p:=Pointer(cardinal(np.data)+(i*1));
s:=s+IntToHex(byte(p^),2)+' ';
end;
except
s:=s+'ERROR PACKET';
end;
end;
procedure AddNetworkQueue_hook; stdcall;
begin
asm
mov tmpPointer, ecx
mov eax, [esp+4]
mov tmp1, eax
end;
ParsingFromServer; //если убрать вызов парсера то всё ок
asm
mov ecx, tmpPointer
jmp AddNetworkQueue_origAddr
end;
end;
шо делать пасаны?
стек ведь должен очищатся после вызова парсера, что опять может быть?
Добавлено через 30 минут
короче если в парисинге делать даже цикл в котором
s:=s+' '; то уже креш может быть, втф?