iBoot и привязанный джейлбрейк

Многие пользователи уже не представляют свои устройства без джейлбрейка, а владельцам залоченных аппаратов и вовсе без него не обойтись, т.к. отвязка от оператора осуществляется только с помощью взлома устройства. Для этого необходимо модифицировать ядро системы - это и есть сама суть джейлбрейка. Процесс модификации ядра возможен только тогда, когда операционная система iPhone не загружена, а именно когда он находится в DFU-режиме. Однако, даже в этом режиме bootloader (загрузчик) проверяет цифровые подписи запускаемых модулей. Но, была найдена ошибка в программном коде загрузчика, которая позволяла загрузить в аппарат и выполнить произвольный код в обход проверки подписи загрузчиком. Эксплоит от 24kpwn содержит код, который может сделать модификацию ядра и отключить проверку подписей, так было в моделях аппаратов iPhone 2G, 3G и iPod Touch.

В более новых моделях iPhone 3GS и iPod Touch 2G/3G в Apple решили дополнить защиту и ввели еще одну проверку, теперь загрузчик проверяет цифровую подпись самого ядра, и если оно оказывается модифицированным, аппарат просто не загружается. Более того, усложнилась система проверки подписей кода, теперь Apple сама может контролировать этот процесс, т.к. проверка подписи осуществляется сервером компании через интернет. Таким образом Apple может легко контролировать и не допускать установку старой или модифицированной прошивки, что собственно и делает.

На прошивках 3.0 и 3.1 эта проблема была успешно решена, так как сама прошивка содержит подписанный модуль iBoot с уязвимостью, которая и позволяет в DFU режиме выполнить хакерский код по модификации ядра. Также была найдена еще одна уязвимость в самом загрузчике ROM, которая позволяла загрузить уже модифицированное ядро. Таким образом, даже выпустив следующую версию прошивки, где непременно будет закрыта уязвимость модуля iBoot, мы сможем запускать телефон благодаря закешированным ответным кодам проверки подписи, сделанных ранее на прошивках 3.0 и 3.1. Именно благодаря этим подписям мы можем взломать систему, а благодаря уязвимости в ROM успешно загружать ее какая бы новая прошивка не вышла.

Естественно с загрузчиком, на уже выпущенных устройствах, Apple ничего уже сделать не сможет, они всегда будут запускаться. Однако этим все не закончилось, начиная с 43 недели 2009 года, они обновили версию загрузчика ROM до версии 359.3.2, тем самым закрыв все ранее найденные дырки.

DevTeam заверило нас, что бояться тут нечего. На начальном этапе будет возможен так называемый «привязанный» джейлбрейк, когда модифицированное ядро можно будет загрузить с помощью компьютера, ну а там и полноценный не за горами.

Процесс джейлбрейка никак не отличается от действий выполняемых на других устройствах, однако есть один нюанс, после каждого выключения девайса вам придется проделывать нехитрые манипуляции для его включения. Самое неприятное то, что выполняются эти действия на компьютере, и если у вас не дай Бог что-то глюкнуло или он разрядился , то включить его получится только при наличии компьютера. Самый простой способ включения такого устройства предоставляет нам утилита от GeoHot. Необходимо скачать программу blackra1n, подключить телефон к компьютеру, запустить ее и нажать на единственную кнопку «Make it ra1n». Через несколько мгновений устройство загрузится и вы дальше можете с ним работать, данные при этом не удалятся.


Проблема решена, теперь полноценный джейлбрейк можно сделать с помощью [утилиты iSpirit!]

Теперь о том как узнать какой у вас iBoot. Есть несколько способов:
  1. Самый простой способ, это узнать по серийному номеру - 4-я и 5-я цифры и есть номер недели его производства. Например, если серийный номер начинается на 87931, это говорит о том, что он был произведен на 31 неделе 2009 года (3-я цифра). Значит на нем можно сделать полноценный джейл, а если у вас там 43 или выше, то увы, пока только привязанный.
  2. С помощью утилиты f0recast. Просто подключите устройство запустите утилиту:



    Вам будет доступна следующая информация:
    • Serial #: Серийный номер устройства
    • Baseband: Версия прошивки модема
    • Bootloader: Версия бутлодера
    • Model: Модель устройства
    • Unlockable?: Залочен или нет (Если Yes, то будет подсказано чем разлочить)
    • Tethered?: Привязанный джейл или нет (Это то, что нам надо)