Появление эксплойта checkm8
можно назвать одним из важнейших событий прошедшего года для исследователей продукции Apple. Ранее мы уже опубликовали технический анализ этого эксплойта. Сейчас сообщество активно развивает джейлбрейк checkra1n на основе checkm8
, поддерживающий линейку устройств iPhone
от 5s
до X
и позволяющий установить на iOS
пакетный менеджер Cydia
и с его помощью устанавливать различные пакеты и твики.
checkm8
в значительной степени опирается на смещения различных функций в SecureROM
и данных в SRAM
. В связи с этим могут возникнуть вопросы: как изначально был извлечен SecureROM
конкретного устройства? Был ли он извлечен с помощью уязвимостей, лежащих в основе checkm8
, или каким-то другим образом?
Наверное, ответить на эти вопросы могут лишь сами исследователи, принимавшие участие в разработке checkm8
. Однако, в этой статье мы расскажем об одном из подходов к извлечению SecureROM
, основанном на уязвимостях, используемых в checkm8
, и требующем минимальных знаний о структуре памяти устройства. Описанный метод не является универсальным и будет работать только на устройствах без технологии безопасности W^X
. В качестве примера мы рассмотрим Lightning-видеоадаптер Apple (да, в этом адаптере есть свой SoC
с SecureROM
) и продемонстрируем не только извлечение SecureROM
, но и полную реализацию функциональности checkm8
для этого адаптера.