C AFL";(奇数,检查语法!)”;

C AFL";(奇数,检查语法!)”;,c,warnings,fuzzing,pngquant,american-fuzzy-lop,C,Warnings,Fuzzing,Pngquant,American Fuzzy Lop,我试图使用fuzz并注意到我看到了奇怪的检查语法警告。A表示AFL可能没有读取我指定的输入文件。我可以调用pngquant,方法是提供位于我使用AFL进行模糊处理时使用的相同输入示例目录中的png文件 我执行的AFL命令是: afl-fuzz -i ./in-filtered -o ./out -x ./dictionary/png.dict -- pngquant @@ 文章提到,odd,检查语法当AFL无法找到新路径时,可能会弹出警告 此外,我注意到,一旦AFL开始使用havoc模糊策略,

我试图使用fuzz并注意到我看到了
奇怪的检查语法警告。A表示AFL可能没有读取我指定的输入文件。我可以调用
pngquant
,方法是提供位于我使用AFL进行模糊处理时使用的相同输入示例目录中的png文件

我执行的AFL命令是:

afl-fuzz -i ./in-filtered -o ./out -x ./dictionary/png.dict -- pngquant @@
文章提到,
odd,检查语法当AFL无法找到新路径时,可能会弹出警告

此外,我注意到,一旦AFL开始使用
havoc
模糊策略,就会弹出警告,下面的图像显示,当模糊器开始使用
havoc
时,循环计数开始增加


这是因为pngquant的使用不正确

使用pngquant时,它会生成一个包含结果的输出文件,如果执行两次,则会遇到错误:

➜  pngquant git:(master) ✗ ./pngquant  ./test/img/metadata.png
➜  pngquant git:(master) ✗ ./pngquant  ./test/img/metadata.png
error: './test/img/metadata-fs8.png' exists; not overwriting
AFL没有机会探测目标,因为它每次都被封锁

快速查看后,最简单的修复方法如下:

afl-fuzz -i ./in -o ./out -- ./pngquant -f -- @@
这将强制pngquant覆盖结果文件,从而启用afl模糊。但是,请注意,这会产生大量IO。因此,请尝试使用
/dev/null
或类似技巧来规避此问题

快乐的绒毛