0

谢谢阅读。我一直在尝试从注入的 DLL 从 Winsock 发送带有“发送”的数据包,但我做不到,我看过很多关于 HOOKING“recv”和“send”的指南,但不是关于通过发送数据包使用“发送”或“WSASend”和同一个套接字,有没有办法使用“发送”和使用同一个套接字?,我应该得到套接字句柄吗?谢谢

4

2 回答 2

0

可能有几个原因。其中一些我可能会想到:

  1. 您正在尝试发送到已经关闭的套接字。如果您正在对主应用程序活动异步调用 send() ,则应用程序可能在您尝试发送时已经关闭了套接字。尝试在用于发送数据的套接字上的 send() 或 recv() 调用的钩子函数中发送。
  2. 在另一个线程中的同一个套接字上还有另一个 send() 调用。
  3. 缓冲区长度参数与实际缓冲区长度不一致(如果您只是更改缓冲区参数,但保留原始调用中的长度参数不变,则可能会发生这种情况)

希望这可以帮助。

于 2013-01-12T17:08:15.017 回答
0

我应该得到套接字句柄吗?

是的,如果你能得到套接字句柄,我看不出问题出在哪里:因为你注入的 DLL 在同一个进程中运行,它允许使用现有的句柄(如果你能发现句柄值,也许是通过挂钩其中一个套接字函数以查看挂钩的应用程序正在使用什么套接字句柄)。

您可能无法重新打开同一个套接字来获得自己的新句柄。

于 2012-12-10T13:49:04.430 回答