我unhook也一样出错! <br><br>procedure UnHookAPI;<br>var<br> dwSize: Cardinal;<br>begin<br> WriteProcessMemory(ProcessHandle, AddSend, @OldProc[0], 8, dwSize);<br> WriteProcessMemory(ProcessHandle, AddRecv, @OldProc[1], 8, dwSize);<br>end;<br><br>function MyRecv(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;<br>var<br> dwSize: cardinal;<br>begin<br> //这儿进行接收的数据处理<br> MessageBeep(1000); //简单的响一声<br> //调用直正的Recv函数<br> WriteProcessMemory(ProcessHandle, AddRecv, @OldProc[1], 8, dwSize);<br> Result := OldRecv(S, Buf, len, flags);<br> JmpCode.Address := @MyRecv;<br> WriteProcessMemory(ProcessHandle, AddRecv, @JmpCode, 8, dwSize);<br>end;<br><br> 我想可能是这样:在unhookapi时,刚好又MyRecv或MySend会怎样呢? 错可能就是由此引起! 不知对不对?<br><br>//你指的是用16进制方式显示出来吗?<br>我是想问:如何能将截获的数据传递给调用DLL的程序,也就是在我的exe中如何知道有封包发送并将其数据显示出来?<br><br><br> <br> <br>