проблема запуска "afl-fuzz -Q" с двоичными библиотеками - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь использовать 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, поэтому я не совсем знаком с тем, как использовать его, особенно с двоичными библиотеками.Любая помощь с этим будет принята с благодарностью!

1 Ответ

0 голосов
/ 29 ноября 2018

Прежде всего, я не уверен, что вам действительно нужно запускать AFL в режиме -Q для фаззинга библиотек с открытым исходным кодом.Вам лучше перекомпилировать его с afl-gcc, чтобы установить инструментарий в двоичном файле.Тогда будет намного проще (и быстрее) распознать все приложение.

На самом деле, вы запускаете в режиме -Q только тогда, когда у вас есть только двоичная программа для фаззинга (я имею в виду, вы этого не делаетеесть источники этого).

Затем afl в основном работает путем создания частично случайных входных данных для размытой программы.Я не совсем понимаю, что вы ожидаете сделать с библиотекой, так как она имеет абсолютно без входных данных (она подключается к другой программе, но это все).

Итак, вы можете немного почитатьбольше о фаззинге и вводе / выводе sotfware, возможно, это лучший способ, прежде чем пытаться делать более сложные вещи.

...