我有一个我一直在使用 C++ 进行的小项目,由于它的性质,我需要将数据包插入到实时 TCP 流中。(目的很单纯,http ://ee.forumify.com/viewtopic.php?id=3299,如果你必须知道的话)我正在为游戏创建一个关卡编辑器,由于握手的性质,我不能简单地与 WinSock 等高级库建立新连接。到目前为止,它一直依靠 Winsock Packet Editor 来做这些脏活,但如果我让应用程序来处理这一切,它会让每个人都开心。
所以我的问题是:是否有一个 API 可以让我控制实时 TCP 流,最好是在它完成后保持有效的 API?而且我宁愿不必注入任何 DLL。此外,Detours 是一个禁忌,因为我使用的是 GCC/Mingw。
我玩过 WinPCap 并且我有一些工作代码(我可以收集一个数据包,并从中生成一个适当的数据包以发送)但由于它在如此低的级别上运行,我无法预料到所有潜在的协议最终用户可能会使用。是的,他们很可能会使用基于以太网的 IPv4,但是那些仍然使用 PPP 或其他一些晦涩的协议的人呢?此外,在我的连接完成后,客户端应用程序会断开连接,因为数据包中的最新 ID 值已更改并且客户端假定它已断开连接。
所以,如果有人能提供一个高级的 TCP 流操纵器,我会很高兴的。如果没有,我会继续修补 WinPCap 并告诉所有拨号用户去获得更好的互联网。
目标平台:Microsoft Windows XP 至 Windows 7