程序 
DLLData^.chHook := SetWindowsHookEx(WH_GETMESSAGE, @HookProc, Hinstance, ThreadID); function Sock2_RecvFrom(s: TSocket; var Buf; len, flags: Integer; var from: TSockAddr; var fromlen: Integer): Integer; stdcall; 
var dwSize: cardinal; 
const Index=1; 
begin 
//1
  MyDataMessage(s,len, PChar(@Buf), @from, nil, dtRecvFrom); 
  WriteProcessMemory(ProcessHandle, Myhook[index].TmpProc, @Myhook[index].FunJmp, 8, dwSize); 
  Result := TSock2_RecvFrom(Myhook[index].FunProc)(s, buf, len, flags,from,fromlen); 
  WriteProcessMemory(ProcessHandle, Myhook[index].TmpProc, @Myhook[index].MyJmp, 8, dwSize); 
//2
end; 
MyDataMessage是我处理数据的过程,Sendto是正常的,但RecvFrom有点问题,MyDataMessage放到现在这个位置,Hook能截获RecvFrom,数据基本正常,只是长度不对,总是固定的532,正常数据+无用信息,但只要放到后面(2位置)就无法截获RecvFrom,即使在2位置直接放置SendMessage也不会被执行,怎么会是这样呢?
SendTo倒是放到任何位置都没问题,