testing - 模糊测试工具是否使用操作系统的 TCP/IP 堆栈?

标签 testing fuzzing fuzz-testing

模糊测试工具会生成格式错误的协议(protocol)数据包。他们是否使用自己的 TCP/IP 堆栈来生成这些格式错误的数据包?操作系统的 TCP/IP 堆栈在模糊测试中发挥作用吗? 我正在开发在 Windows 7 操作系统上运行的 MPLS 模糊测试工具。该工具正在 Linux 计算机上测试 MPLS 堆栈。我的测试工具使用 Windows 堆栈吗?我被告知 Windows 不支持 MPLS,但测试工具工作得很好。

最佳答案

任何不依赖于内核修改的工具都必须经过操作系统的网络堆栈。这并不意味着它们必须使用网络堆栈的 TCP/IP 支持:许多操作系统都支持 API,例如 SOCK_RAW+IP_HDRINCL(Windows、BSD、OS X)/PF_PACKET (Linux),它允许您构建自己的数据包(不一定是 TCP,甚至 IP)。

这意味着只要操作系统提供必要的支持(大多数主要操作系统都提供必要的支持),用户空间工具就可以自由地绕过操作系统中的 TCP/IP 处理并滚动自己的数据包。

关于testing - 模糊测试工具是否使用操作系统的 TCP/IP 堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30660594/

相关文章:

clang - 使用 LLVM LibFuzzer 时, 'edge' 中的值 'fsantize-coverage=edge' 无效

python - 在 python 中引发异常之前如何对回溯进行切片?

c# - 如何使用批处理文件在应用程序外部运行 CodedUI 测试并创建报告

测试遗留代码

c# - 负载测试 C# 函数

fuzzing - 如何让Libfuzzer像AFL一样不间断运行?

.net - 对 Windows 窗体应用程序进行模糊测试有什么好的工具或技巧吗?

testing - 使用 Peach Fuzzer 模糊 TCP 数据包

testing - grabAttributeFrom() 方法不返回属性值