我想能够拦截/ TCP中的流修改数据,在TCP客户端的一侧。 为PCAP显示如何解析TCP数据包报头/有效载荷的示例。 但假设,我想修改数据包有效负载之前TCP客户端读取它,或者完全丢弃该数据包。 我怎样才能做到这一点与PCAP capure?
Answer 1:
如上所述,你不能这样做拦截/修改与PCAP。 为此,您需要以下依赖于操作系统的技术之一:
- :libnetfilter_queue + iptables的
- :转移插座+ IPFW
- :WinPkFilter(商业),WinDivert(LGPL),或写自己的NDIS IM或世界粮食计划署呼出驱动程序。
(通常披露:WinDivert是我的项目)。
Answer 2:
与蟒蛇一起使用Scapy的是一个很好的工具暨图书馆。
您可以通过命令行做各种数据包监视和编辑的
你也可以建立在Scapy的顶部应用程序执行特定的任务。
Scapy的
Answer 3:
你不能做到这一点与libpcap的或WinPcap的; 的libpcap之上构建不支持该OS的机制(这些机制存在支持被动包捕获和低级别的数据包捕获和注射,不支持在分组输入输出路径数据包修改),和WinPcap的的驱动器之上构建的诸如此类的OS机制。
你必须找到某种机制,在任何操作系统您正在使用中,支持轻敲到网络堆栈的方式,允许窃听程序,因为他们通过网络堆栈修改数据包。 这种机制可能无法在某些操作系统存在; 在操作系统它确实存在,如果有的话,它可能非常依赖于操作系统。 (机制的libpcap用途也是依赖于操作系统的;存在的libpcap,部分地隐藏来自应用程序的这些差异,在最大延伸可能的。)
文章来源: packet data intercept and modification