tar -xvzf mupdf-1.18.0-source.tar.gz
cd mupdf-1.18.0
CC=$HOME/AFLplusplus/afl-clang-fast CXX=$HOME/AFLplusplus/afl-clang-fast++ make
sudo make install
timeout 1000 afl-fuzz -t 10000 -i /home/ljh/in/ -o /home/ljh/out/ -s 123 -- /home/ljh/mupdf-1.18.0/build/release/mupdf-gl @@
使用如上命令用AFL++对mupdf,进行模糊测试,每一个测试用例都被判定超时。使用相同的版本AFL++和相同的测试用例对xpdf进行模糊测试,就可以正常测试。其中问题出在哪?
另外在使用CC=$HOME/AFLplusplus/afl-clang-fast CXX=$HOME/AFLplusplus/afl-clang-fast++ make
这一句命令对代码插桩时,提示应该更新llvm至llvm13以上,我是使用的是AFL++自带的llvm-11,没有另外安装llvm,是否有这一点有关
在使用AFL++对mupdf进行模糊测试时,每个测试用例都被判定为超时,而对于相同版本的AFL++和相同的测试用例对xpdf进行模糊测试则正常工作。这可能有几个原因:
定位问题:首先,你可以通过查看AFL++的输出日志或错误消息来获取更多关于超时的信息。它可能会提供一些有关超时原因的线索,例如处理器资源不足或程序内部错误。
版本兼容性:mupdf和AFL++之间可能存在版本兼容性问题。确保使用的AFL++版本与mupdf的版本兼容。你可以尝试使用不同版本的AFL++来确认是否存在版本兼容性问题。
程序复杂性:mupdf相对于xpdf可能更加复杂,因此可能需要更多的时间来处理每个测试用例。尝试增加超时时间限制来确认是否是由于处理时间超过了默认的超时时间。
关于"CC=$HOME/AFLplusplus/afl-clang-fast CXX=$HOME/AFLplusplus/afl-clang-fast++ make"命令提示更新llvm的问题,这可能是由于AFL++需要使用更新的llvm版本来进行代码插桩。建议按照提示更新llvm至13或更高版本,并重新编译AFL++以确保插桩过程能够正常进行。这可能对AFL++与mupdf的兼容性和测试结果产生影响。
总结:请先检查AFL++的输出日志或错误消息,确认超时的具体原因。如果确定版本兼容性没有问题,尝试增加超时时间限制或更新AFL++所需的llvm版本。
mupdf的AFL++模糊测试的问题似乎是所有测试用例都超时了。这可能是由于多种因素造成的,例如输入数据太大或太复杂,或者程序本身处理模糊测试的速度太慢。AFL++工具或mupdf程序中也可能存在导致超时的错误。
至于CC=$HOME/AFLplusplus/afl clang fast CXX=$HOME/AFLplusplus/afl clang fast++make命令的问题,很可能是llvm-11的过时版本导致了错误消息。更新到llvm13或更高版本应该可以解决此问题。