使用二进制库发出 运行 "afl-fuzz -Q"
issue running "afl-fuzz -Q" with binary libraries
我正在尝试使用 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
所以我不太熟悉如何使用它,尤其是二进制库。对此的任何帮助将不胜感激!
首先,我不确定您是否真的需要 运行 AFL 在 -Q
模式下对开源库进行模糊测试。您最好使用 afl-gcc
重新编译它,以便在二进制文件中安装工具。然后,对整个应用程序进行模糊测试会更容易(也更快)。
事实上,只有当你有一个二进制程序来模糊测试时,你才 运行 在 -Q
模式下(我的意思是,你没有它的来源)。
然后,afl
基本上是通过为模糊程序创建部分随机输入来工作的。我不完全理解你希望用库做什么,因为它 绝对没有输入 (它插入另一个程序,但仅此而已)。
因此,您可以考虑阅读更多有关模糊测试和软件的内容 I/O,这可能是尝试做更复杂的事情之前的最佳方式。
我正在尝试使用 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
所以我不太熟悉如何使用它,尤其是二进制库。对此的任何帮助将不胜感激!
首先,我不确定您是否真的需要 运行 AFL 在 -Q
模式下对开源库进行模糊测试。您最好使用 afl-gcc
重新编译它,以便在二进制文件中安装工具。然后,对整个应用程序进行模糊测试会更容易(也更快)。
事实上,只有当你有一个二进制程序来模糊测试时,你才 运行 在 -Q
模式下(我的意思是,你没有它的来源)。
然后,afl
基本上是通过为模糊程序创建部分随机输入来工作的。我不完全理解你希望用库做什么,因为它 绝对没有输入 (它插入另一个程序,但仅此而已)。
因此,您可以考虑阅读更多有关模糊测试和软件的内容 I/O,这可能是尝试做更复杂的事情之前的最佳方式。