Fuzz测试工具会生成格式错误的协议数据包。他们是否使用自己的TCP / IP堆栈来生成这些格式错误的数据包?操作系统的TCP / IP堆栈在Fuzz测试中是否起任何作用? 我正在研究在Windows 7操作系统上运行的MPLS Fuzz测试工具。该工具正在Linux机器上测试MPLS堆栈。我的测试工具是否使用Windows堆栈?有人告诉我,windows不支持MPLS,但测试工具运行得很好。
答案 0 :(得分:5)
任何不依赖于内核修改的工具都必须通过操作系统的网络堆栈。这并不意味着他们必须使用网络堆栈的TCP / IP支持:许多操作系统支持API,如SOCK_RAW
+ IP_HDRINCL
(Windows,BSD,OS X)/ PF_PACKET
(Linux),它允许您构建自己的数据包(不必是TCP,甚至是IP)。
这意味着只要操作系统提供必要的支持(大多数主要支持),用户空间工具就可以自由地绕过操作系统中的TCP / IP处理并滚动自己的数据包。