Fuzzing код с прямым порядком байтов в среде с прямым порядком байтов с помощью libfuzzer - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь распознать часть кода, написанного для архитектуры MIPS с прямым порядком байтов, используя libfuzzer.

Я запустил libfuzzer под машиной с прямым порядком байтов Debian и выдается ошибка сегментации. Я думаю, что результаты не заслуживают доверия на 100%. Как использовать libfuzzer с эмулятором для архитектуры с прямым порядком байтов? Это возможно? Существуют ли другие методы для тестирования кода с прямым порядком байтов в архитектурах с прямым порядком байтов с использованием фаззинга?

1 Ответ

0 голосов
/ 11 июля 2019

Вы можете выполнить кросс-компиляцию вашего программного обеспечения в MIPS с прямым порядком байтов на вашем хост-компьютере, а затем использовать эмуляцию пользовательского режима QEMU.В этом режиме QEMU запускает один процесс на эмулируемом процессоре, исключая все эмулируемое оборудование.Вместо этого он просто транслирует системные вызовы хосту ядру , поэтому процесс обращается ко всем файлам хоста, сетям и т. Д. - точно так же, как если бы ваш центральный процессор получил возможность выполнять инструкции MIPS - онТеперь вы можете связываться с вашими хост-файлами и т. д., вы были предупреждены.:)

Я не знаком с конкретно libfuzzer, но такой настройки должно хватить, по крайней мере, для проверки уже найденных сбоев (предположим, что QEMU достаточно реалистично имитирует процессор MIPS),AFAIK libfuzzer является фаззером в процессе, поэтому в отличие от AFL, фаззированный процесс не должен сталкиваться с некоторыми проблемами при подключении к отдельному процессу фаззера с использованием общей памяти и т. Д.

...