我正在尝试使用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.
我设法通过将内存限制设置为“ 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
,所以我不太熟悉如何使用它,尤其是在二进制库中。任何帮助将不胜感激!
答案 0 :(得分:0)
首先,不确定您是否真的需要在stack build
模式下运行AFL来模糊开源库。您最好使用-Q
重新编译它,以将工具安装在二进制文件中。然后,对整个应用程序进行模糊处理将变得更加容易(而且更快)。
实际上,只有在只有二进制程序要模糊化时,您才以afl-gcc
模式运行(我的意思是,您没有源程序)。
然后,-Q
基本上是通过为模糊程序创建部分随机输入来工作的。我不完全了解您对库的期望,因为它完全没有输入(它可以插入另一个程序,仅此而已)。
因此,您可以考虑多读一些有关模糊测试和软件I / O的信息,这可能是尝试做更复杂的事情之前的最佳方法。