
Все кто следит за миром iPhone/iPod Touch наверняка слышали о такой вещи как iBoot – 359.3.2, если не слышали о iboot, то наверняка знакомы с новостями летавшими в блогосфере о новых iPhone которые не поддаются джейлбрейку. Для всех наших читателей предлагаю статью, огромное спасибо автору и сайту iPhoneApps, где я ее нашел. Статья может показаться длинной, но поверьте, она вам пригодится!
Начнем с краткой истории, позволяющей понять нам суть джейлбрейка.
Все программы в айфоне имеют специальную цифровую подпись, устанавливаемую самой Apple. При внесении изменений в любую программу, цифровая подпись становится не действительной, равно как и не прошедшие/проходившие проверку Apple программы, устанавливаемые из Сидии, которые такой подписи вообще не содержат. При запуске программы ядро системы проверяет цифровую подпись Apple и при ее отсутствии или недействительности отказывается запускать такую программу. Между прочим, 100% защита от вредоносных программ. Однако, не все такие программы вредоносны и, не смотря на то, что на это думают в Apple, мы хотим иметь у себя такие программы. Для этого необходимо модифицировать ядро системы, отключив тем самым проверку подписи. Это и есть сама суть джейлбрейка. На самом деле, производится трехступенчатая модификация, и проверка подписи исполняемого кода (chain of trust) только одна из них, так же открывается полный доступ к файловой системе, и возможность записи в любую часть памяти. Это необходимо для работы таких утилит как winterboard. Jailbreak со всеми модификациями называют полным, в некоторых случаях, авторы модифицированных (Custom) прошивок включают не все модификации. Для простоты я буду описывать все модификации как одну.
Процесс модификации ядра возможен только тогда, когда операционная система айфона не загружена, а именно когда он находится в DFU (Device Firmware Upgrade) режиме. Однако, даже в этом режиме bootloader (загрузчик) проверяет цифровые подписи запускаемых модулей. Но, была найдена ошибка в программном коде загрузчика, которая позволяла загрузить в аппарат и выполнить произвольный код в обход проверки подписи загрузчиком. В частности, код который сможет сделать модификацию ядра и отключить проверку подписей, так было в моделях аппаратов iPhone 2G,3G и iPod Touch.
В более новых моделях iPhone 3GS и iPod Touch 2G/3G в Apple решили дополнить защиту и ввели еще одну проверку, теперь загрузчик проверял цифровую подпись самого ядра, и если оно оказывалось модифицированным, аппарат просто бы не загрузился. Более того, усложнилась система проверки подписей кода, загружаемого в аппарат в DFU режиме, теперь сама Apple может контролировать этот процесс, т.к. проверка подписи осуществляется сервером компании через интернет. Таким образом Apple может легко контролировать и не допускать установки старой прошивки или модифицированной (Custom), что собственно и делает.
Задача усложнилась тем, что требовалось: во-первых, внедрить код в обход загрузчика; во-вторых, позволить ему загрузить модифицированное ядро. Обе задачи были успешно решены благодаря двум найденным уязвимостям, в самих прошивках 3.0 и 3.1 и в самом загрузчике в ROM. Сами прошивки содержат подписанный модуль iBoot (имеющий лишь общее название в загрузчиком ROM) с уязвимостью, который легко загружается в аппарат в DFU режиме и может выполнить хакерский код по модификации ядра, а вторая уязвимость была найдена в самом загрузчике в ROM, которая позволяла загрузить уже модифицированное ядро.
Таким образом, даже выпустив следующую версию прошивки, где Apple бы непременно закрыли уязвимость модуля iBoot, но благодаря закешированным ответным кодам проверки подписи, сделанных ранее на прошивках 3.0 и 3.1 можно было бы «вломиться» в аппарат и сделать свое «грязное дело», а благодаря уязвимости в ROM загружать модифицированное ядро какая бы новая прошивка не вышла.
Ура, на данный момент, до выхода аппаратов с новой заводской прошивкой задача решена, а дальше будет видно.
Казалось бы все отлично: сидим спокойно, ждем новой прошивки от Apple и разбираемся, если найдем в ней новую дыру в iBoot используем ее для входа в «дверь», не найдем, возьмем от старой прошивки 3.1.
Однако, в Apple стали действовать более решительно, и кроме закрытия первой дыры в прошивке, которая еще предстоит, за одно решили закрыть вторую дыру в загрузчике в ROM. Никакими обновлениями они естественно этого сделать уже бы не смогли, просто в новых выпускаемых на заводе аппаратах в ПЗУ содержится новая версия загрузчика (iBoot – 359.3.2). Как только он был обнаружен одним французом, недавно купившим новенький iPhone 3GS, новость стремительно разлетелась по интернету, нагнавшей некую панику. Мол аппараты, выпущенные до часа Х, “ломаются” и будут “ломаться”, а вот те, что после – уже под большим вопросом.
Но, Эрик МакДональд, член команды DevTeam заверил нас, что бояться тут нечего. На начальном этапе, в любом случае будет возможен так называемый «привязанный jailbreak», когда модифицированное ядро можно будет загрузить с помощью компьютера, ну а там и полноценный jailbreak не за горами. Хакер Geohot уже выпустил обновленную утилиту Blackra1n, которая делает “привязанный jailbreak” для аппаратов с новым загрузчиком.
Для тех, кто приобретал аппараты iPhone 3GS или iPod touch 2G/3G сравнительно недавно, и не уверен в возможности сделать полноценный jailbreak, мы предлагаем способ посмотреть версию iBoot.
Для этого нам понадобится утилита от Microsoft: USBview (прямая ссылка на зеркало)
![]()
Необходимо подключить ваш аппарат к компьютеру USB проводом, ввести его в DFU режим и запустить USBview.
В меню Options выбрать Config Description и в правом списке найти устройство. В одной из строк вы увидите версию iBoot аппарата.

Если iBoot-359.3 все хорошо и ваш аппарат поддается jailbreak-у, если же iBoot-359.3.2 вам не так повезло и придется какое то время подождать полноценного jailbreak`а.