0

我正在尝试使用afl-fuzz来查找 Android 本机库(例如,等)中的安全libssl.so漏洞libhttp.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.

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

[-] 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,所以我不太熟悉如何使用它,尤其是二进制库。对此的任何帮助将不胜感激!

4

1 回答 1

-1

首先,它不确定您是否真的需要在-Q模糊开源库的模式下运行 AFL。您最好重新编译它以afl-gcc在二进制文件中安装工具。然后,对整个应用程序进行模糊测试会更容易(也更快)。

事实上,-Q只有当你有一个二进制程序来进行模糊测试时,你才能在模式下运行(我的意思是,你没有它的来源)。

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

因此,您可以考虑阅读更多关于模糊测试和软件 I/O 的内容,这可能是在尝试做更复杂的事情之前最好的方法。

于 2018-11-29T20:02:06.830 回答