【问题标题】:AFL "(odd, check syntax!) "AFL“(奇怪,检查语法!)”
【发布时间】:2020-12-24 18:08:36
【问题描述】:

我正在尝试使用AFLpngquant 进行模糊测试,并注意到我看到了odd, check syntax! 警告。 previous answer 表示 AFL 可能没有读取我指定的输入文件。我可以通过提供位于我在使用 AFL 进行模糊测试时使用的同一输入示例目录中的 png 文件来调用 pngquant

我执行的 AFL 命令是:

afl-fuzz -i ./in-filtered -o ./out -x ./dictionary/png.dict -- pngquant @@

AFL documentation 提到,当 AFL 无法找到新路径时,可能会弹出 odd, check syntax! 警告。

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

【问题讨论】:

    标签: c warnings fuzzing pngquant american-fuzzy-lop


    【解决方案1】:

    这是因为 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-fuzz。但是,请注意,这会产生大量 IO。所以尝试使用/dev/null 或类似的技巧来规避这个问题。

    模糊测试愉快!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-19
      • 2020-10-11
      • 2013-09-05
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多