二进制库运行“ afl-fuzz -Q”的问题

时间:2018-11-29 02:23:58

标签: android nativelibrary fuzzer

我正在尝试使用afl-fuzz在Android本机库(例如libssl.solibhttp.so等)中查找安全漏洞。

据我了解,我应该使用QEMU,因为afl本身不足以在没有源代码的情况下查找错误。

尝试运行以下内容时:

#> afl-fuzz -Q -i input -o output -- ./libssl.so

我遇到了以下问题:

[-] The current memory limit (200 MB) is too restrictive, causing an OOM fault
    in the dynamic linker.

我设法通过将内存限制设置为“ none”来解决此问题。然后,我遇到了这个错误:

[-] Hmm, looks like the target binary terminated before we could complete
    a handshake with the injected code. Perhaps there is a horrible bug in
    the fuzzer.

我最近才刚开始使用afl,所以我不太熟悉如何使用它,尤其是在二进制库中。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

首先,不确定您是否真的需要在stack build模式下运行AFL来模糊开源库。您最好使用-Q重新编译它,以将工具安装在二进制文件中。然后,对整个应用程序进行模糊处理将变得更加容易(而且更快)。

实际上,只有在只有二进制程序要模糊化时,您才以afl-gcc模式运行(我的意思是,您没有源程序)。

然后,-Q基本上是通过为模糊程序创建部分随机输入来工作的。我不完全了解您对库的期望,因为它完全没有输入(它可以插入另一个程序,仅此而已)。

因此,您可以考虑多读一些有关模糊测试和软件I / O的信息,这可能是尝试做更复杂的事情之前的最佳方法。