情况如下。网络中有服务器和客户端。他们这样沟通:
但有时客户端无法执行功能并发送错误。我想要捕获第2步中的所有数据包,分析它们(我已经有了工具),阻止它们中的一些到达客户端,使用我的程序处理它们并像第3步那样形成数据包。这必须在客户端完成侧。我无法访问服务器或客户端。
所以,问题是:是否有用于在c ++或java中更改,注入和删除tcp / ip数据包的库?该解决方案应该适用于Win和Linux系统。 另外,您可能有更好的想法来扩展客户端功能吗?
感谢您的帮助! 我试图谷歌如何更改数据包,但我得到的都是未解决的问题和嗅探器=(
编辑:实际上,我并不需要注入和删除数据包,我只需要更改数据包数据就可以管理它。此外,同一个数据包中没有多个请求,跨多个数据包的单个请求不是问题。
答案 0 :(得分:3)
您必须为您的服务器构建代理。客户端连接到代理,代理本身连接到服务器。它只是在客户端和服务器之间路由所有包。
但它现在能够截取特定消息并进行修改。想象一下过滤HTTP代理,它的工作方式相同。
答案 1 :(得分:1)
我在linux和freeBSD上有libpcap的个人经验,这是一种有助于捕获或注入数据包的低级库。我确实在IPV6网桥项目中使用它...但我知道它有一个Windows端口。 http://sourceforge.net/projects/libpcap/ 您可以让图书馆:
但是你必须在一个非常原始的问题上处理内部数据。该库的最佳文档是其头文件中的注释,这是最新的信息。也许有一些更舒适的高级图书馆。