RSS Проект Ноль
Подписаться
Простое фаззинг ядра macOS в пользовательском пространстве с помощью IDA и TinyInst
Иван Фратрич из Google Project Zero обсуждает проблемы fuzzing-а декодирования видео AV1 на устройствах Apple. Он упоминает, что несмотря на поддержку аппаратного декодирования AV1, значительная часть парсинга формата происходит в программном обеспечении в ядре, в частности в расширении ядра AppleAVD. Фратрич подчеркивает, что он не был первым, кто взялся за эту проблему, упоминая предыдущие проекты, такие как Fairplay, Cinema time!, KextFuzz и Pishi. Он объясняет, что его подход загружает код ядра в пользовательское пространство в лёгком виде, отличаясь от проекта Fairplay с его пользовательским загрузчиком. В статье также упоминается использование IDA для декомпиляции кода, что требует ручного исправления, и метод проекта KextFuzz замены инструкций аутентификации указателей на переход к трэмплину, собирающему покрытие.