libfuzzer 和 AFL 的理解和不同用法
Understanding and different usage between libfuzzer and AFL
我是模糊区域的菜鸟,看过 AFL 实现。
AFL 似乎将 stdin
文件描述符替换为 input file
描述符。每当目标程序遇到标准输入时,目标程序都会从 input file
而不是 stdin
.
获取输入
所以,我的问题就是从这里弹出来的。
假设我们创建了一个库,我们想进行单元测试以使用模糊器查找一些实现错误。在这种情况下,我们不接受任何 standard input
,只接受使用我们库的开发人员的函数参数。因此,AFL 在这种情况下不起作用。
Libfuzzer
在这种情况下似乎是合适的解决方案,因为生成的输入可以输入到我们特定的有趣函数中。
这样理解对吗?还是 AFL 也可以作为 libfuzzer
用于单元测试?
谢谢
Afl 支持通过文件提供输入,而不仅仅是 stdin
。要测试通过参数接收输入的库,您可以编写一个简单的可执行文件来打开输入文件、读取其内容、使用从该文件读取的参数值调用所需的库函数并关闭文件。
我是模糊区域的菜鸟,看过 AFL 实现。
AFL 似乎将 stdin
文件描述符替换为 input file
描述符。每当目标程序遇到标准输入时,目标程序都会从 input file
而不是 stdin
.
所以,我的问题就是从这里弹出来的。
假设我们创建了一个库,我们想进行单元测试以使用模糊器查找一些实现错误。在这种情况下,我们不接受任何 standard input
,只接受使用我们库的开发人员的函数参数。因此,AFL 在这种情况下不起作用。
Libfuzzer
在这种情况下似乎是合适的解决方案,因为生成的输入可以输入到我们特定的有趣函数中。
这样理解对吗?还是 AFL 也可以作为 libfuzzer
用于单元测试?
谢谢
Afl 支持通过文件提供输入,而不仅仅是 stdin
。要测试通过参数接收输入的库,您可以编写一个简单的可执行文件来打开输入文件、读取其内容、使用从该文件读取的参数值调用所需的库函数并关闭文件。