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

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

1 Ответ

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