Kas*_*lai 5 c++ tcp winpcap raw-sockets
我有一个小项目,我一直在使用C++,由于它的性质,我需要将数据包插入到实时TCP流中.(目的是无辜的,http://ee.forumify.com/viewtopic.php?id = 3299,如果你必须知道)我正在为游戏创建一个关卡编辑器,由于握手的性质,我不能简单地与WinSock等高级库建立新连接.到目前为止,它依靠Winsock数据包编辑器来完成肮脏的工作,但如果我让应用程序处理它,它会让每个人都开心.
所以我的问题是:在某个地方是否有一个API可以让我控制一个实时的TCP流,最好是一个在它完成后保持有效的一个?我宁愿不必注入任何DLL.另外,Detours是禁忌,因为我正在使用GCC/Mingw.
我玩弄了WinPCap并且我有一些工作代码(我可以收集一个数据包,并从中生成一个适当的数据包发送),但由于它运行在如此低的水平,我无法预测所有的潜在协议最终用户可能会使用.是的,很可能他们将使用IPv4 over Ethernet,但那些仍然使用PPP或其他一些模糊协议的人呢?此外,在完成连接后,客户端应用程序会断开连接,因为数据包中的最新ID值已更改,并且客户端认为已断开连接.
所以,如果有人能提供高级TCP流操纵器,我会非常高兴.如果没有,我将继续修补WinPCap并告诉所有拨号用户更好地上网.
目标平台:Microsoft Windows XP到Windows 7
我不认为有任何明智的 API 可以让你劫持 TCP 流。这样的事情本质上是一个安全问题。
您可以插入您的程序作为相关连接的代理吗?也就是说,让打开连接的程序将其打开到您的程序,然后让您的程序打开到真实目标的连接。
这个想法是,如果所有数据包都通过您的程序,那么修改 TCP 流就变得相对简单。