#c #ida #fuzzing #american-fuzzy-lop
#c #ida #фаззинг #американский-нечеткий-lop
Вопрос:
Я изучаю, как использовать AFL для размытия двоичного файла. Я знаю, что для этого можно использовать режим qemu. Однако использование режима qemu действительно влияет на производительность фаззинга.
Таким образом, мне интересно, что, если я изменю целевой двоичный файл на код C с помощью IDA PRO, а затем скомпилирую код C с помощью afl-gcc? Будет ли эта идея работать? Или это приведет к искажению.
Комментарии:
1. Декомпиляция не всегда идеальна, поэтому у вас возникнут некоторые проблемы. См reverseengineering.stackexchange.com/questions/2603 /… и github.com/NationalSecurityAgency/ghidra/issues/236
2. Ваше предложение не сработает. Но ближайшим решением для ваших целей является afl-dyninst.
Ответ №1:
Фаззинг двоичного файла без исходного кода можно выполнить с помощью таких инструментов, как McSema. Он преобразует двоичный файл в битовый код LLVM и позволяет вам фаззировать его с помощью libFuzzer. Но, как уже сказал пользователь3804799, декомпиляция не идеальна.
Ответ №2:
По моему опыту, код должен быть исполняемым, чтобы иметь возможность хорошо запускать фаззинг. В случае, если это исходный код, и вы не сможете его выполнить, фаззинг не будет работать должным образом. Однако, когда у вас есть исходный код, вы можете выполнить статическую аналитику кода.