socket api hook 拦击不到 MyRecv

killvs 2008-10-27 08:06:39
我是参照http://www.sudu.cn/info/html/edu/code/20071227/54127.html
function MyRecv(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
var
dwSize: cardinal;
begin
//这儿进行接收的数据处理
MessageBeep(1000); //简单的响一声
//调用直正的Recv函数
showmessage(pchar(@buf));
WriteProcessMemory(ProcessHandle, AddRecv, @OldProc[1], 8, dwSize);
Result := OldRecv(S, Buf, len, flags);
JmpCode.Address := @MyRecv;
WriteProcessMemory(ProcessHandle, AddRecv, @JmpCode, 8, dwSize);
end;
为什么MyRecv接收却拦截不到呢,发送倒是可以
...全文
91 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
etomahawk 2008-10-28
  • 打赏
  • 举报
回复
好像N久前就回答过这个问题。

  // 先调用原来的过程进行数据接受
WriteProcessMemory(ProcessHandle, AddRecv, @OldProc[1], 8, dwSize);
Result := OldRecv(S, Buf, len, flags);
JmpCode.Address := @MyRecv;
WriteProcessMemory(ProcessHandle, AddRecv, @JmpCode, 8, dwSize);

//这儿进行接收的数据处理
MessageBeep(1000); //简单的响一声
//调用直正的Recv函数
showmessage(pchar(@buf));

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧