我目前正试图用AFL模糊(美国模糊Lop)模糊化PDF查看器。
我的问题很简单,afl-fuzz期望应用程序接收一个输入,并在处理它之后关闭。但是,PDF查看器的目的是打开文档并一直打开直到关闭。结果是,afl-fuzz达到了所有初始输入的超时,并决定在这里停止。
...
[*] Validating target binary...
[*] Attempting dry run with 'id:000000,orig:myPDFsample00.pdf'...
[*] Spinning up the fork server...
[+] All right - fork server is up.
[!] WARNING: Test case results in a timeout (skipping)
[*] Attempting dry run with 'id:000001,orig:myPDFsample01.pdf'...
[!] WARNING: Test case results in a timeout (skipping)
[*] Attempting dry run with 'id:000002,orig:myPDFsample02.pdf'...
[-] PROGRAM ABORT : All test cases time out, giving up!
Location : perform_dry_run(), afl-fuzz.c:2883我想知道如何告诉AFL要考虑到达超时并终止程序是测试用例的“正常”行为。
发布于 2019-02-25 14:39:43
实际上,通常的方法似乎只是通过在解析之后添加一个exit(0)来测试您正在查看的软件的代码。
这看起来很基本,但我工作..。
另一种方法是改变AFL软件中超时的含义。但是,当您的软件可能进入一个永无止境的循环时,它将不会检测到“挂起”。
因此,最好的方法似乎是在解析完成后在目标软件中添加一个exit(0) (或者return 0,如果您在main()中)。
https://stackoverflow.com/questions/53546823
复制相似问题