[英]Changing tcp/ip packets c++ or java
这是情况。 网络中有服务器和客户端。 他们这样交流:
但是有时客户端无法执行功能并发送错误。 我想捕获第2步中的所有数据包(分析它们(我已经有相应的工具),阻止其中的某些数据包到达客户端,用我的程序处理它们并像第3步一样形成数据包。这必须在客户端上完成侧。 我无权访问服务器或客户端。
因此,问题是:是否存在用于在c ++或java中更改,注入和删除tcp / ip数据包的库? 该解决方案应该在Win和Linux系统上都可以使用。 另外,您是否有更好的想法来扩展客户端功能?
谢谢你的帮助! 我试图用谷歌搜索如何更改数据包,但我得到的只是未解决的问题和嗅探器=(
编辑:实际上,我真的不需要注入和删除数据包,只需更改数据包数据就可以对其进行管理。 同样,在同一数据包中没有多个请求,并且跨多个数据包的单个请求也不是问题。
您必须为服务器构建一个代理。 客户端连接到代理,而代理本身连接到服务器。 它只是在客户端和服务器之间路由所有软件包。
但是,现在它可以拦截特定消息并进行修改。 想象一下过滤HTTP代理,它的工作方式相同。
我在linux和freeBSD上有libpcap的经验,这是一种有助于捕获或注入数据包的低级库。 我确实在IPV6网络桥项目中使用了它……但是我知道有一个Windows端口。 http://sourceforge.net/projects/libpcap/您可以让该库执行以下操作:
但是,您将不得不完全处理内部数据。 该库的最佳文档是其头文件中的注释,这是最新信息。 也许有一些更舒适的高级库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.