我正在尝试使用AFL模糊pngquant,并注意到我看到了odd, check syntax!警告。previous answer表示AFL可能没有读取我指定的输入文件。我可以通过提供png文件来调用pngquant,该文件位于我在使用AFL进行模糊处理时使用的同一个输入示例目录中。
我执行的AFL命令是:
afl-fuzz -i ./in-filtered -o ./out -x ./dictionary/png.dict -- pngquant @@AFL documentation提到,当AFL无法找到新路径时,可能会弹出odd, check syntax!警告。
此外,我注意到,一旦AFL开始使用havoc模糊策略,就会弹出警告。下面的图像显示,一旦fuzzer开始使用havoc,周期计数就会开始递增。


发布于 2020-12-30 22:06:52
这是因为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 overwritingAFL没有机会探索目标,因为它每次都会被封锁。
快速查看后,最简单的修复方法如下:
afl-fuzz -i ./in -o ./out -- ./pngquant -f -- @@这会强制pngquant覆盖结果文件,从而启用afl-fuzz。但是,请注意这会产生大量IO。因此,尝试使用/dev/null或类似的技巧来规避这一点。
毛发快乐!
https://stackoverflow.com/questions/65441830
复制相似问题