Как узнать был ли джейлбрейк на iphone. Как проверить есть ли Джейлбрейк — советы экспертов. Apple закрыла почти все дыры

Существует множество заблуждений о джейлбрейке, многие из которых приходится слышать из года в год. Что из этого правда? Приводит ли джейлбрейк к аннулированию гарантии на iPhone и iPad? Насколько сложно сделать джейлбрейк? Есть ли вообще смысл его делать?

В этой статье перечислены 10 самых распространенных мифов о джейлбрейке. Мы объясним, почему пользователи взламывают свои устройства, и расскажем, чего не стоит опасаться.

Джейлбрейк лишает гарантии

Джейлбрейк делается не навсегда. Если вы хотите обратиться в гарантийный отдел, просто используйте Cydia Impactor , чтобы стереть все следы джейлбрейка, либо восстановите iOS «с нуля» через iTunes. После этого Apple не узнает, было ли ваше устройство когда-либо взломано.

Джейлбрейк снижает производительность

Конечно, вы сможете установить множество твиков, и некоторые могут замедлить ваш гаджет. Но если вы будете следить за тем, что вы ставите на свой гаджет, то не столкнетесь с падением производительности. Более того, с помощью твиков можно ускорить работу iPhone.

Джейлбрейк делает iPhone менее защищённым

Опять-таки, вам нужно следить за тем, какие программные разработки вы устанавливаете. Точно так же джейлбрейк может сделать ваш смартфон более защищенным. В частности, разработчики джейлбрейка выпускали обновления с исправлением ошибок в iOS раньше, чем это делала сама Apple. Если вы будете держаться подальше от подозрительных репозиториев, пиратства, сомнительных твиков и не откроете ОС, установив OpenSSH или AFC2, – вы будете в полной безопасности.

Джейлбрейк запрещен

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

Джейлбрейк для темных личностей

Некоторые считают, что джейлбрейк – это что-то подозрительное, чем занимаются странные личности в темных подворотнях. Но ведь это глупо. Джейлбрейк делают абсолютно разные люди: профессионалы и начинающие, родители, дети, знаменитости и музыканты. Джастин Бибер однажды пользовался iPhone с джейлбрейком.

Джейлбрейк – это сложно

Джейлбрейк вашего iPhone, iPad или iPod touch займёт меньше времени, чем вы тратите на приготовление утреннего кофе. Поверьте – это очень легко, и каждый без проблем может его сделать.

Джейлбрейк не бесплатный

Джейлбрейк не может быть платным. В интернете можно найти множество обучающих статей и роликов. Если вам предлагают заплатить – вас просто обманывают.

Джейлбрейк сокращает время автономной работы

В этом есть доля правды, но игры на смартфоне также плохо влияют на аккумулятор. Если вы будете внимательно подходить к выбору твиков, то сможете сохранить аккумулятор вашего гаджета. Сам факт джейлбрейка не означает, что ваше устройство автоматически будет быстрее разряжаться. Кроме того, существуют твики для увеличения автономности гаджетов.

Джейлбрейк создан для пиратства

На самом деле это не так. В то время как некоторые действительно пользуются возможностью устанавливать пиратский софт на взломанные устройства, это определённо не является причиной появления джейлбрейка и поводом его сделать. Большинство прибегает к джейлбрейку, поскольку он позволяет персонализировать iPhone и iPad, а не ради нелегальных приложений.

Джейлбрейк больше не нужен

Можете ли вы установить тему оформления на iPhone с заводской прошивкой? Или запустить видео поверх другого приложения? А может быть Apple разрешает ускорить невозможно медленную анимацию iOS? Можете ли вы получить доступ к файловой системе iPhone? Или записать скринкаст на своем iPhone? Можете ли вы настроить переключатели в Пункте управления? Нет. А ведь всё это можно сделать при помощи джейлбрейк-твиков из Cydia.

А как относитесь к джейлбрейку вы? Слышали ли вы ещё какие-либо мифы? Поделитесь с нами в комментариях!

Всем, или почти всем, владельцам "яблочных" устройств известна такая процедура, как джейлбрейк. Относятся к ней по-разному: кто-то одобряет и с легкостью проводит эту операцию на своем телефоне, а кто-то, наоборот, критикует и выступает ярым противником таких "издевательств" над своей техникой. Если вы еще не знаете, что такое джейлбрейк и нужен ли он вашему устройству, то данная статья может оказаться для вас полезной.

Вопрос этики

Начнем с того, что операция эта является неофициальной и не поддерживается Apple, а это означает, что после ее проведения пользователь снимается с гарантийного обслуживания в результате нарушения Уже на этом этапе стоит задуматься, готовы ли вы к подобному повороту. Взвешенное решение можно принять, только хорошо понимая, что такое джейлбрейк и какие возможности он открывает.

Что дает джейлбрейк пользователям?

Это операция, проводимая на устройствах с операционной системой IOS и открывающая доступ к их файловой системе. В результате у владельцев техники Apple существенно расширяются возможности ее использования, так как в систему можно производить запись твиков, тем, приложений, в том числе из сторонних источников (без джейлбрейка это невозможно). Таким образом, плюсы данной модификации в следующем:

  • возможность использования приложений с ПК;
  • возможность установки программного обеспечения не только с AppStore, но и из других источников (например, с помощью Cydia);
  • возможность SSH-доступа к "яблочному" устройству (в том числе позволяет осуществить отвязку от оператора).

Виды джейлбрейка

Заманчивые перспективы, не так ли? Прежде чем рассказывать о том, как сделать джейлбрейк на устройстве, нужно отметить, что существует два типа таких операций:

  1. Непривязанный джейлбрейк. Внесенные изменения сохраняются после перезагрузки, аппарат нормально перезагружается без дополнительной помощи.
  2. Привязанный джейлбрейк требует регулярного повторения процедуры после каждой перезагрузки устройства (без этого аппарат неспособен работать). Так как необходимо каждый раз подключать телефон к ПК, такой вид операции назвали "привязанным".

Есть и промежуточный вариант - полупривязанный, когда аппарат функционирует после перезагрузки, однако слетают все функции джейлбрейка.

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

Джейлбрейк для IOS 7: инструкция

Далее мы рассмотрим, последней версии IOS 7, который сделала доступным команда Evad3rs. Нужно отдать ей должное, ведь предложенная процедура взлома "яблочного" устройства настолько проста, что окажется под силу даже самым неопытным пользователям.

Итак, выделите 10 минут вашего свободного времени для реализации следующих пяти шагов:

  1. Проведите бэкап устройства. Резервная копия делается через iTunes либо iCloud.
  2. Отключите цифровой пароль, а также Touch ID.
  3. Скачайте соответствующую утилиту (официальный сайт разработчика Evad3rs).
  4. Запустите мастер джейлбрейка, предварительно подключив к компьютеру iPhone/iPad/iPod. Для запуска откройте архив и нажмите на кнопку (она одна).
  5. Ожидайте, пока будет производиться установка джейлбрейка на ваше устройство.
  6. На заключительном этапе установки на вашем аппарате появится иконка, на которую следует нажать. После перезагрузки на рабочем столе вы увидите появившуюся иконку Cydia. Процесс закончен.

Вот такая незамысловатая процедура джейлбрейка. Она доступна для всех устройств Apple, начиная с версии 7.0.0 и заканчивая 7.0.4. Однако при всей ее простоте и привлекательности торопиться не стоит. Хотя бы потому, что Cydia пока не готов предложить пользователям оптимизированные под IOS 7 твики.

Почему стоит отказаться от джейлбрейка

Что такое джейлбрейк для вашего устройства: друг или враг? Существует немало противников данной процедуры, в том числе и сам Apple (что неудивительно). Какие же доводы могут заставить отказаться от данного рода модификации? Вот их список:

  • снижается уровень безопасности, что может стать причиной кражи личной информации и проникновения вирусных, шпионских программ;
  • возможны зависания сторонних программ, сбои в ОС устройства;
  • сокращение времени работы аппарата от одного заряда батареи;
  • ошибки или отказ работы фирменных услуг Apple;
  • перебои в передаче данных (задержка по времени или искажение информации);
  • отказ в работе устройства при установке обновлений для IOS;
  • лишение возможности технического и гарантийного обслуживания устройств после их несанкционированной модификации.

Такой внушительный список разнообразных опасностей заставляет задуматься о том, так ли нужен джейлбрейк или лучше обойтись без него. Теперь, когда вы знаете, что такое джейлбрейк, можете решить это для себя сами. В любом случае не стоит проводить операцию необдуманно, чтобы потом не жалеть о последствиях. Оцените все "за" и "против" и примите взвешенное решение.

«Джейлбрейкнутое» устройство Apple - это не только новые возможности, но и дополнительные проблемы с безопасностью самого устройства и работающих на нем приложений. Сегодня мы поговорим о том, что такое джейлбрейк, как он работает и каковы его последствия для системы безопасности.

Что такое jailbreak?

Итак, jailbreak - это специальная программа для снятия некоторых ограничений безопасности системы посредством эксплойтов. Со временем данное определение четко закрепилось за взломом устройств от компании Apple: iPod, iPad, Apple TV, iPhone. Такое название было дано в связи с основной его целью - взломом песочницы, но песочница эта настолько хорошая, что ее прозвали тюрьмой (jail). Для устройств под управлением ОС Android почти аналогичный процесс называется root’ованием, что связано с конечной целью - работой от пользователя root. Необходимо также не путать эти термины с понятием unlock, под которым подразумевается отвязка оператора сотовой связи, установленного с покупкой телефона. И стоит понимать, что jailbreak зависит от hardware и software: эксплойты, лежащие в его основе, могут использовать особенности как железа, так и программных составляющих. Так что наличие jailbreak под какое-то устройство X с OC Y не означает его работоспособность на устройстве Z с ОС Y или устройстве X с ОС K.

При этом сами jailbreak’и бывают двух типов:

  • tethered (привязанный);
  • untethered (непривязанный).

Привязанный означает, что после перезагрузки такого устройства JB пропадает, а в случае непривязанного останется в силе, что гораздо удобнее.

Why?

Я бы выделил три основные категории людей, кому вообще нужен jailbreak: разработчики, обычные пользователи и исследователи ИБ.
Первым - чтобы узнавать, что крутится под капотом iOS, использовать ее скрытые возможности и как можно лучше оптимизировать свое приложение (порой и задействовать private API). Вторым - для того, чтобы использовать tweak’и (как правило, написанные первыми). Tweak - это небольшая программка, которая вносит какое-либо изменение в работу iOS для улучшения юзабилити. Это может быть новый набор иконок, вставка новых подсказок в SpringBoard или запоминание пароля для App Store - в общем, все, что кажется удобным и полезным со стороны пользователя, но не реализовано Apple. И наконец, исследователи безопасности нуждаются в джейлбрейке для копания в самой ОС и всем, что там крутится. Самый распространенный сценарий - это анализ защищенности мобильного приложения для iOS. Если ты не в курсе, то все iOS-приложения из App Store защищены DRM и получить расшифрованное приложение можно только в runtime. Данная операция пока возможна только на джейлбрейкнутом устройстве. Да, еще можно было бы сюда добавить госслужбы для шпионажа и атаки неугодных стран и ее лидеров. Например, Обаме его служба безопасности уже запретила использовать iPhone. Существует мнение, что в связи с высоким интересом военных к jailbreak может полностью исчезнуть публичный jailbreak: зачем выкладывать что-то бесплатно, когда тебе готовы отсыпать кучи зелени...

Сама Apple, конечно, относится к jailbreak негативно и предупреждает об этом своих пользователей. Это и очевидно, ведь в закрытую ОС сторонние люди вносят изменения и для сохранения этих изменений нарушают работу системы безопасности ОС - патчат и хучат определенные участки кода. Что, естественно, ведет к нарушению стабильности работы OC - это стоит иметь в виду, когда ты делаешь jailbreak.

Jailbreak - угроза безопасности

JB отключает большинство механизмов безопасности ОС, в связи с этим появляется угроза заражения устройства вредоносным ПО. Это может быть как случайно скачанное вредоносное ПО из Cydia (его там никто не проверяет), так и целенаправленная атака в духе ZitMo, SpitMo, CitMo. Если ты думаешь, что таких проектов не существует, то ты ошибаешься. Есть проект iPhone-Espionage , который включает в себя такой функционал, как:

  • keylogger;
  • захват снимков экрана;
  • перенаправление SMS;
  • запись микрофона;
  • отправка GPS-координат.

С позиции комьюнити это, наоборот, яркое и широко обсуждаемое событие, которое не обходят стороной даже такие издания, как Forbes. У разработчиков JB даже есть собственная конференция Worldwide jailbreak con , где они делятся информацией друг с другом. А по данным saurik (создателя Cydia - магазина нелегальных приложений для iOS), на 2 марта 2013 года в мире существовало 23 миллиона джейлбрейкнутых устройств.

Как бы то ни было, весь процесс создания jailbreak со стороны напоминает игру в кошки-мышки между Apple и разработчиками. Одни закрывают уязвимости и вносят новые механизмы безопасности в ОС, а другие ждут релизов и тестируют свои детища.


Security in iOS

Хватит прелюдий, начнем погружение в техническую составляющую jailbreak. Давай немного познакомимся с механизмами безопасности iOS, которые встают на пути JB.

  • Code Signing. Приложения после проверки компанией Apple становятся защищены DRM (используется сертификат X.509v3). Так что на устройстве могут выполняться только подписанные компанией Apple приложения.
  • Sandboxing (Seatbelt). Каждое приложение, которое ставится из App Store, работает в своей песочнице. Оно имеет собственную рабочую директорию /var/mobile/Applications/ , дальше которой ничего не видит. Да и других процессов это тоже касается, так что приложение понятия не имеет, кто еще существует в системе. Из более тонких моментов можно выделить отсутствие прямого доступа к железу устройства и невозможность динамически генерировать код (JIT), исключением является только Safari.
  • Разделение привилегий. Каждое приложение запущено с ограниченными правами под пользователем mobile и имеет ряд entitlements.

Понятное дело, так как в процессе JB приходится эксплуатировать баги повреждения памяти, появляется и необходимость обойти различные механизмы безопасности, нацеленные на затруднение эксплуатации таких уязвимостей. Среди них stack cookie, DEP, ASLR, KASLR и еще ряд других, которые даже не имеют специальных названий. На этом мы не будем останавливаться: это нам никак не поможет детектировать JB на устройстве и, в общем, выходит за рамки данной статьи.

Немного истории и цифр

  • 29 июня 2007 года компания Apple презентовала новый телефон iPhone со своей операционной системой iOS 1.0. Спустя 11 дней ОС была взломана.
  • Jailbreak’и: PwnageTool, redsn0w, purplera1n, Spirit, JailbreakMe, Absinthe, evasi0n.
  • Основные лица: iPhone Dev Team, Chronic Dev Team, George Hotz, comex, pod2g, evad3rs и, конечно, saurik.
  • Привязанный JB делали меньше, чем за неделю, за исключением версии 3.0, где Apple внесла все текущие средства безопасности (чуть меньше 100 дней).
  • Непривязанный выходит гораздо реже, и на его взлом тратится больше времени, причем если сравнивать с привязанным, то время увеличилось в среднем в 7–8 раз.

Жизнь после JB

Приступим к нашей основной теме. Чтобы разобраться, как задетектить, имеет устройство JB или нет, нужно понимать, что JB сделал, изменил, оставил после себя. Итак, ты поставил JB - какие новые грани открылись перед тобой?

  1. Запуск неподписанных приложений. Теперь можно ставить приложения из Cydia и других сторонних репозиториев. Там обычно лежат различные системные приложения, tweak’и, которые не прошли (и никогда не пройдут) проверку Apple - из-за того, что они либо используют private-функции, либо вообще требуют JB для своей полноценной работы. Но поскольку данное ПО никак не проверяется, среди него может быть и вредоносное - об этом не стоит забывать. Особенно вкупе с тем, что JB отключил большинство механизмов защиты. Основной эффект: Cydia и другие неразрешенные Apple приложения.
  2. Возможность доступа к ФС. Появляется доступ для взаимодействия с файловой системой, например по SSH. Становится возможным поход по всем директориям системы, копирование/редактирование/скачивание/загрузка любого файла в системе. Основной эффект: появление новых файлов, изменение стандартных файлов.
  3. Обход ограничений sandbox. Sandbox теперь, по сути, не работает, как и ряд других механизмов безопасности (например, проверка подписи кода), и любое приложение в системе уже может видеть не только свою директорию, но и все файлы в системе. Основной эффект: возможность обращаться к тому, к чему раньше не могли обратиться.

На этих эффектах мы и будем играть - детектить JB!


Последствия JB

Последствие 1: изменения в ФС

/dev/disk0s1 / hfs ro 0 1 /dev/disk0s2 /private/var hfs rw,nosuid,nodev 0 2

/dev/disk0s1 / hfs rw 0 1 /dev/disk0s2 /private/var hfs rw 0 2

После установки JB изменяется /etc/fstab . Директория / становится доступной на запись, а у директории /private/var пропадают биты nosuid, nodev.

Последствие 2: дополнительные утилиты

По умолчанию на iOS-устройстве отсутствует unix shell. Оно и понятно, Apple не закладывала в свои устройства возможность работы с ними из консоли. В связи с этим JB ставит различные полезные программки для упрощения своей установки. В итоге на устройстве появляется куча новых утилит, среди которых утилиты для работы JB, файлы самого JB, различные Bundle, Cydia (как правило, но не обязательно), Mobile Substrate и так далее. Часть из этих новинок можно увидеть в измененном /var/mobile/Library/Caches/com.apple.mobile.installation.plist .

Последствие 3: перерасположение папок

Приложения из App Store ставятся в /var/mobile/Applications , а из Cydia - в /Applications . В связи с тем, что системная директория (/) имеет значительно меньший размер, чем пользовательская (/private/var), и приложения из Cydiа ставятся в системную директорию, возникает проблема с доступным местом. Для ее решения с нужных директорий делают символическую ссылку на пользовательскую директорию, где места предостаточно. В итоге метод имеет следующую формулу: /var/stash + symbolic links. То же самое делается и для /Library/Ringtones , /Library/Wallpaper , /usr/include , /usr/lib/pam , /usr/libexec , /usr/share .


Последствие 4: поломанная песочница

Данные изменения происходят очень низко, на бинарном уровне, и они нам не особо пригодятся, но не сказать о них нельзя. Во-первых, JB патчит Apple Mobile File Integrity Daemon, который отвечает за проверку подписей. Во-вторых, вносит изменения в само ядро:

// Выключаем MAC для процессов security.mac.proc_enforce=0 // Выключаем MAC для Vnode security.mac.vnode_enforce=0

  • появление новых файлов/директорий;
  • измененные свойства;
  • измененное поведение.

Detection

Кто-то может задаться вопросом: зачем мне как разработчику iPhone-приложений проверять, на каком устройстве запущена моя программа? Вопрос хороший и логичный.

Во-первых, чтобы снизить риски для самого пользователя. Если ты разрабатываешь какое-то критичное мобильное приложение, допустим для мобильного банкинга, то в связи с возможностью выполнения на таком устройстве вредоносного ПО ты можешь либо запретить запуск своего приложения, либо ограничить некоторый доступный функционал, например запретить денежные переводы или ограничить их верхним пределом. Я видел такие подходы в российских приложениях для мобильного банкинга. Также это часто используют MDM (Mobile device management) системы.

Во-вторых, не допустить обход ограничений, внесенных в код. Ограничения на клиенте - это зло.

В-третьих, усложнить анализ своего приложения. Кто-нибудь может захотеть изучить алгоритм работы твоей программы, и тут одной статикой не обойтись - нужна и динамика. И вот чтобы ему жизнь медом не казалась, можно либо переставать работать, либо вести по ложному следу.

Какое-то время назад, а именно с iOS 4.0 до 4.2.1, существовала специальная функция в MDM API от Apple для определения JB. Но просуществовала она недолго - меньше шести месяцев. Причины исключения данной функции Apple не комментировала. По одной из версий, данная функция была опасна и сама могла привести к JB-атаке.

Обнаружение JB: новые файлы.

  1. Можно обратиться к файлам от Cydia (например, /Applications/Cydia.app/) или URI-схеме cydia:// , которая появляется с ней. Данный метод очень часто встречается, но нужно иметь в виду, что Cydia - это всего лишь bundle и она может не входить в JB или быть удалена. Вот взять, например, последний JB от evad3rs для iOS 7. У них нет Cydia, но есть китайский App Store Taig.
  2. Можно пытаться обращаться просто к любым заранее известным файлам за пределы песочницы, будь то /bin/bash , /Application/Preferences.app/General.plist или /Applications/MobileMail.app .
  3. Естественно, файлы от jailbreak не могут остаться без внимания - например, /private/var/stash . Их очень много, и их можно сначала определить по дате модификации в системе.
  4. Существуют и более экзотические способы, как, например, SSH loopback connection - обращение на 127.0.0.1 порт 22, поскольку обычно для взаимодействия с устройством пользователи ставят на него SSH.

Для обращения к URI-схеме можно использовать Objective-C-функцию openURL, а для работы с файлами как Obj-C-функции (BOOL)fileExistsAtPath:(NSString*)path), так и классические С-функции (fopen(), stat() или access()).

Обнаружение JB: изменение свойств

Порой для запутывания можно обращаться не к самим файлам, а к их свойствам:

  • правам доступа на запись;
  • размеру /etc/fstab ;
  • обнаруживаем символические ссылки на /var/stash с:/Applications /Library/Ringtones /Library/Wallpaper /usr/arm-apple-darwin9 /usr/include /usr/libexec /usr/share

Тут все просто, как и в предыдущем пункте. Опять же можно использовать как Obj-C-функции из класса NSFileManager, так и стандартные С типа statfs(), stat().

Обнаружение JB: измененное поведение или целостность Sandbox

Sandbox запрещает приложениям из App Store использовать такие функции, как fork(), popen(), или любую другую C функцию для создания дочернего процесса на устройстве за пределами jail. Так что пытаемся вызвать эти функции и смотрим результат. Или можно выполнить вызов system(), который вернет 0 в случае, если sandbox работает, и 1 - если jailbreak. Это связано с тем, что на устройстве с JB будет присутствовать /bin/sh . Еще более изощренный способ - это использовать dyld imagecount() и dyld get image_name() для просмотра, какие dylibs сейчас загружены, - после JB есть своя специфика. При этом данный метод достаточно сложно пропатчить.

Обходы обнаружения JB

Если можно обнаружить детект, то можно обнаружить и процесс детектирования. А потом его нужным способом изменить:). Можно выделить три основных способа:

  1. Редактирование бинарного файла. Патчим сам код, данные в бинарнике. Например, если приложение определяет наличие JB по присутствию файла /Applications/Cydia.app/ , то можно прямо в бинарнике исправить Cydia на Fydia, и такой файл в системе уже не найдется, и проверка провалится. Также можно патчить ARM-код, например условный переход на безусловный. Патчинг инструкций в ARM упрощает и то, что в нем все инструкции имеют фиксированную длину.
  2. Использование MobileSubstrate для хукинга Objective-C-функций. Если проверка реализована на Obj-C, то ее можно очень легко перехватить в runtime и вернуть нужное нам значение. Для примера можно посмотреть проект xCon , который как раз так и работает. В общем, можно посмотреть имена методов в классах на наличие таких, как JailbreakDetect, isJailbreak и так далее, затем пишем tweak, и защита пройдена.
  3. Игры во время выполнения программы (GDB, Cycript). Если проверка реализована как часть другой функции, то полностью заменить ее так просто мы не можем. Тут придется играть с GDB. В общем, ничего нового в этом способе нет по сравнению с Linux-платформой.

Помимо знания, что применять, нужно еще знать, как правильно это применять. Здесь хотелось бы дать несколько советов по защите iOS-приложения.

  1. Используй антиотладочные техники. Это хорошо всем известная функция ptrace(PTDENY ATTACH, 0, 0, 0) и флаг P_TRACED.
  2. Используй техники anti hooking. В iOS детектировать hook можно с помощью dladdr() вызова и Dlinfo структуры. А еще лучше критичные фрагменты кода (проверки безопасности, jailbreak detect) в виде inline функций с помощью _attribute_((always inline)).
  3. Обфусцируй свой код и данные. Специфика Objective-C в том, что он хранит много метаинформации о классах, функциях, переменных и так далее. Если в других компилируемых языках, как правило, это символы и они не попадают в финальную сборку, то тут все на виду, и это просто сказка для реверс-инженера - логика сразу понятна. Так что перед выпуском в релиз можно переименовывать имена классов и методов. Что касается критичных данных, то их надо шифровать или динамически генерировать.
  4. Если ты пытаешься определить наличие JB, то используй не одну технику, а несколько.

При этом старайся все security-проверки равномерно распределять по коду, а не проводить только при старте программы. И используй С для критичных функций и функций безопасности - таким образом информация о них не будет отображаться в _objc сегментах.


Для защиты от пиратства приложений можно проверять целостность собственных файлов. Например, целостность исполняемого файла - у всех взломанных/расшифрованных приложений LCENCRYPTION INFO = 0, так как его расшифровывают. Или еще, как вариант, проверять файлы метаданных: iTunesMetadata.plist, SC_Info, Code Signing, Info.plist.

Конечно, идеальной, непреодолимой защиты не существует, и все перечисленные способы лишь усложняют процесс реверс-инжиниринга.

INFO

В статье перечислены далеко не все способы детектирования JB на устройстве, но по аналогии ты можешь находить свои и усовершенствовать существующие методы.

Цепочка загрузки iOS

Во-первых, существует три режима загрузки iOS: normal boot, DFU (device firmware upgrade) mode и recovery mode. Последние два, если не вдаваться в детали, необходимы для восстановления ОС в определенное состояние. Для обновления ОС через iTunes используется recovery mode. А на приведенном рисунке проиллюстрированы этапы при normal boot.

Во-вторых, при normal boot компоненты системы загружаются в такой последовательности: Bootrom -> LLB -> iBoot -> Kernel -> System Software -> Apps.

На каждом этапе происходит проверка подписи компонента. Атаковать эту цепочку можно на любом из этапов, и чем раньше это будет сделано, тем лучше, так как на более ранних этапах работает меньшее количество механизмов безопасности, которые необходимо будет обойти, и чем ближе к началу, тем ближе к железу. А закрытие уязвимости в hardware-составляющей требует от производителя произвести замену самого железа, то есть время жизни такой уязвимости - до выхода следующей версии устройства.

О совершении джейлбрейка с каждым днём задумывается всё больше пользователей, но поскольку это «взлом чистой воды» многие опасаются его делать. Стоит отметить, что после джейлбрейка устройство получает много новых возможностей, вызывая интерес у пользователей. Jailbreak имеет как преимущества, так и недостатки, ознакомившись с которыми можно сделать вывод, стоит ли взламывать свой гаджет.

Что такое джейлбрейк

Джейлбрейк - процедура взлома операционной системой iOS, позволяющая пользователю получить несанкционированный доступ к файловой системе устройств Apple. Совершается jailbreak посредством выявления уязвимостей системы безопасности Apple, благодаря чему пользователь получает доступ к ранее недоступным системным файлам. После джейлбрейка владелец гаджета под управлением iOS может управлять содержимым файловой системы и устанавливать различные программы из сторонних магазинов приложений, помимо основного от Apple (App Store). Пользователям «взломанных» iPhone и iPad, как и ранее, доступны все функции устройства, включая iTunes и App Store.

Одной из основных функций jailbreak является возможность модификации функций iOS, а также индивидуализация интерфейса iPhone или iPad.

Для чего нужен на айфон или айпад

Воспользовавшись джейлбрейком, пользователь получает ещё один дополнительный магазин приложений Cydia, содержащий те приложения, которые в App Store или iTunes отсутствуют. Учитывая то, что благодаря jailbreak появляется возможность модифицировать iOS, то именно в Cydia содержатся все те приложения, которые помогут настроить операционную систему по вкусу пользователя. Также в Cydia огромное количество бесплатных приложений, которые в App Store распространяются платно. Стоит отметить, что все бесплатные программы из Cydia (в народе «твики»), являются всего лишь копиями лицензионных приложений, которые в большинстве случаев платные.

Преимущества

  1. Дополнительный магазин приложений Cydia. Большинство пользователей Apple решаются совершить джейлбрейк только ради Cydia, которая предоставляет возможность скачивать бесплатно приложения, распространяемые в App Store платно.
  2. Настройка интерфейса и функционала iOS на свой вкус. Джейлбрейк позволяет изменить внешний вид и содержание операционной системы, посредством скачивания специализированных приложений из Cydia.
  3. Скрытые возможности Apple устройств и доступ к файловой системе. Джейлбрейк позволит пользователям не только воспользоваться скрытыми возможностями iOS, но и получить доступ к файловой системе, что даст возможность контролировать операционную систему и изменять исходные коды.

Недостатки

  1. Возможные проблемы со скачанными приложениями. Поскольку твики из Cydia не являются лицензионными приложениями, а лишь копиями, то и проблем со стабильностью их работы встречаются чаще, а также их использование может привести к вылету лицензионных приложений, которые ранее работали стабильно.
  2. Разные твики - разные проблемы. После установки или же удаления любого твика, скачанного из Cydia, в системе остаётся системный кеш твика (мусор), который навсегда останется на устройстве, а также замечены случаи несовместимости твиков, из-за чего они не работают.
  3. Проблемы с обновлением iOS. Во взломанном устройстве невозможно обновить iOS, а при выходе обновления джейлбрейк всегда слетает, из-за чего все скачанные твики из Cydia и изменения интерфейса удаляются.
  4. Лишение тех. поддержки разработчиков и гарантии Apple. При необходимости ремонта устройства пользователю придётся избавиться от джейлбрейка, а если понадобится воспользоваться гарантией - в сервисном центре откажут в обслуживании.
  5. Безопасность Apple устройств с джейлбрейком. Взлом гаджета подвергнет его к заражению вирусами, впоследствии чего могут быть утрачены персональные данные, в числе которых информация о платёжных возможностях (реквизиты банковской карты).
  6. Уменьшена автономность работы батареи. Операционная система iOS закрыта не просто так, ведь разработчики компании Apple оптимизируют уровень нагрузки на системное железо, чтобы сбалансировать расход энергии аккумулятора и максимально увеличить автономность батареи.
  7. Потеря качества связи. Многими пользователями было замечено, что джейлбрейк может повлиять на качество связи во время звонков. Проявляются эти проблемы частым прерыванием связи, а иногда даже искажение голоса абонента.

Типы jailbreak

Непривязанный jailbreak совершается один раз и работает до момента выхода следующей перепрошивки. В основе этого типа джейлбрейка находятся уязвимости, которые дают возможность получить доступ к файловой системе во время каждой загрузки гаджета без любого другого вмешательства.

Привязанный jailbreak предоставляет пользователю доступ к файловой системе устройств от Apple только до первого перезапуска или выключения устройства. При перезагрузке гаджета часто встречаются проблемы с его запуском или же устройство запустится, но некоторые твики перестанут работать или вовсе исчезнут.

Инструкция по установке

С помощью компьютера

Для совершения джейлбрейка пользователю нужно скачать бесплатный софт Pangu 9. Прежде чем начать процесс взлома необходимо:

  • Обновить iTunes на компьютере до последней версии.
  • Создать резервную копию данных через iTunes или iCloud.
  • Отключить защиту экрана паролем и Touch ID (Настройки > Touch ID и пароль).
  • Отключить функцию «Найти iPhone» (Настройки > iCloud > Найти iPhone).
  • Активировать Авиарежим в Пункте Управления.

Как сделать джейлбрейк - пошаговое руководство

После последующей перезагрузки гаджета процесс джейлбрейка будет успешно завершён, о чём сообщит надпись «Jailbreak completed».

Без помощи компьютера

  1. Откройте эту инструкцию в браузере Safari на своём iPhone, iPad или iPod touch.
  2. Перейдите по ссылке itms-services://?action=download-manifest&url=https://www.iclarified.com/jailbreak/pangu-pp/jailbreak.plist и нажмите «Установить».
  3. Дождитесь загрузки и установки приложения PP, необходимого для выполнения джейлбрейка.
  4. Перейдите в меню «Настройки» > «Основные» > «Управление устройством».
  5. Выберите появившийся там профиль разработчика и в открывшемся окне нажмите «Доверять».
  6. Запустите ранее установленное приложение PP.
  7. Согласитесь принимать уведомления.
  8. Нажмите на круг, расположенный в центре экрана и заблокируйте устройство, нажав кнопку «Питание».
  9. Дождитесь перезагрузки устройства, после чего запустите Cydia для проверки установки джейлбрейка.

На входящие уведомления во время установки джейлбрейка не реагируйте.

После всех выполненных действий джейлбрейк установлен, причём без использования компьютера и данных об учётной записи Apple ID.

Основные твики, ради которых стоит совершить Jailbreak

Как удалить на айфон или айпад

На сегодняшний день существует специальный инструмент, благодаря которому можно удалить джейлбрейк, при этом сбросив все настройки до заводских и не используя никакие перепрошивки.

Прежде, чем приступить к удалению джейлбрейка необходимо совершить ряд действий, а именно:

  • Создать резервную копию через iTunes, iCloud.
  • Подключить устройство к интернету (оптимально по Wi-Fi).
  • Зарядить устройство минимум на 20%.
  • Вставить SIM-карту.
  • Убедиться, что устройство привязано к вашему Apple ID функцией «Найти iPhone» (если включена).

Инструкция

  • Сначала нужно зайти в Cydia.
  • Зайти в репозиторий BigBoss, который установлен по умолчанию и найти приложение Cydia Impactor.
  • Далее нужно установить Cydia Impactor.
  • После успешной установки, Cydia Impactor появится на рабочем столе устройства и его нужно запустить.
  • После открытия Cydia Impactor на экране отобразится текст на английском, под которым требуется нажать на кнопку «delete all data and unjailbreak device».
  • Дальше нужно нажать на кнопку «Delete all», после чего и начнётся процедура удаления джейлбрейка. Во время удаления ни в коем случае нельзя ничего нажимать, а просто подождите около 10 минут.
  • После завершения удаления устройство самостоятельно перезагрузится и его нужно будет заново активировать.

Возможные проблемы и пути их решения

Проблемы с джейлбрейком встречаются очень часто, но и решения их совсем несложные.

Ошибка Error 0A (зависает на 45%)

Эта ошибка появляется во время совершения джейлбрейка, тогда как утилита зависает на 45-50%. Для решения проблемы нужно подключить своё устройство к компьютеру, открыть iTunes (должен быть свежей версии) и найти своё гаджет в списке. Далее зайти в «Резервные копии» и снять флажок с пункта «Зашифровать резервную копию iPhone». После проделанных действий нужно повторить попытку совершения джейлбрейка.

Кнопка «Старт» серая

Если кнопка «Start» серого цвета и не кликабельная - это означает, что Pangu 9 не разрешает начинать джейлбрейк устройства. Чтобы кнопка «Старт» стала кликабельной необходимо отключить устройство от компьютера и установить последнюю версию iTunes и попробовать снова. Если установлена последняя версия iTunes, но кнопка «Start» всё равно серая - попробуйте запустить iTunes от имени администратора или переподключиться к интернету.

Иконка Cydia не появилась

Очень часто случается так, что процедура джейлбрейка прошла успешно и без ошибок, но на экране устройства не появился магазин приложений Cydia. Объясняется это тем, что утилите Pangu вовремя не был разрешён доступ к «Фото». Для решения проблемы стоит лишь заново взломать устройство, разрешив доступ к «Фото» приложению Pangu вручную. Сделав это, на экране гаджета гарантировано появится Cydia.

Не запускается Cydia

Бывают случаи, когда джейлбрейк прошёл успешно, никаких ошибок не было, Cydia на экране появилась, но попытка открыть её завершается сразу же после нажатия на иконку. Для решения проблемы нужно сбросить настройки устройства до заводских, после чего обновить версию прошивки (если есть обновление). Далее рекомендуется создать резервную копию или проверить её наличие, если уже была создана и попробовать снова запустить Cydia.

Стоит ли совершать джейлбрейк своего устройства пользователь в состоянии решить самостоятельно, на основе всех преимуществ и недостатков этой процедуры. Возможностей после джейлбрейка появляется огромное количество, чего стоит только настройка интерфейса устройства на свой вкус, но стоит ли ради этого лишать свой iPhone или iPad гарантийного обслуживания - вопрос, которым задаются всё больше пользователей гаджетов под управлением iOS.

Джейлбрейк – столь знакомо незнакомое слово, и столько об этом вроде говорят, а не совсем понятно, что это такое. У многих этот термин ассоциируется с хакингом, пиратским контентом и обязательной порчей смартфона. Некоторые шарахаются от этого слова как от проказы. Да ну, не стоит так…

Ведь ничего в этой процедуре страшного нет – это всего лишь официальный взлом операционной системы айфона, позволяющий вернуть пользователю крылья, столь жестоко подрезанные разработчиками Apple. А вопрос о греховности джейлбрейка на айфон можно смело оставить для форумных словоблудов.

Что такое jailbreak? Джейлбрейк, он же просто «джел» — это официальная процедура, открывающая свободный доступ к файловой системе на яблочных устройствах, и, таким образом, расширяющая их возможности. «Официальная» – это не значит, что Apple лично инициировала это предложение, но, во всяком случае, на законодательном уровне она не может этого запретить. Ей остаётся только угрожать свободолюбивым пользователям отсутствием технической поддержки и гарантийного ремонта, но и то по законам РФ, в случае поломки, не по вине клиента, смартфон обязаны починить по гарантии. Так что запугивание носит чисто символический характер.

Тем более что откатить эту процедуру, вернув сенсорному любимцу девственность, совершенно несложно. В гарантийном сервисе всё будет выглядеть так, словно и не было никакого джела и вместе с ним тонны пиратского контента.

Есть два вида джела – привязанный и отвязанный. Первый лучше вообще не рассматривать. Дело в том что привязанный джел работает только на время одной сессии, т.е. после выключения он слетает, и потом его необходимо проводить заново. Причём система начинает наглухо терять самоконтроль. И после включения либо вообще не запускается, либо работает лишь частично – некоторые приложения «молчат». Зато выходит он почти наравне с новой версией iOS.

Но лучше подождать выхода отвязанного джейлбрейка. Название говорит само за себя – к сессии он не привязан и даёт более устойчивый результат, работая без выходных. И не вызывает проблем в системе. Как правило.

Плюсы и минусы джейлбрейка

Ну и для чего конкретно нужен этот «побег из тюрьмы» и сколько за него дают? Да нисколько, главное, своевременно стереть следы преступления. Ладно, обманывать нехорошо, и минусы есть, поэтому взвесив все «за и против» пользователь сам примет осознанное решение.

Итак, зачем нужен джейлбрейк:

1 Пиратка, она самая, единственная и неповторимая! После побега всё возможно – весь нелегальный софт в полном распоряжении, особенно если установить утилиту AppSync. Хотя честным ребятам и девчатам вовсе необязательно пользоваться нелегальным контентом – джел не только для этого существует; 2 Возможность скачивать различные твики из приложения Cydia и менять интерфейс iOS по собственному усмотрению. Apple это очень не нравиться. А собственно говоря, почему пользователь не может настроить личный смартфон по своему же вкусу?; 3 Новые возможности, которые изначально по праву должны принадлежать покупателю гаджета. Это возможность обмениваться данными по блютуз с пользователями любых девайсов от различных производителей, читать файлы с флэшек без ограничений, использовать любые переходники, скачивать посредством 3G-связи файлы любого размера; 4 Отличительная особенность джела – давать прямой доступ к файловой системе, а значит можно добавлять свои файлы для русификации и изменения настроек программ. Например, можно запустить какое то приложение или игрушку, которые не желали работать до этого.

Ну почему же не сделать столь полезное действие? Чем аргументируют борцы за права Apple и всех ущемлённых авторов?

Итак, вот они минусы:

1 Джел может отрицательно сказаться на работе всех приложений – они начинают вылетать. Хотя до него работали нормально. Видимо, чуют врага; 2 Проблемы с обновлением – не хочет официальная функция обновлять софт через пиратские сайты. И на новую версию тоже перейти проблематично – неугодный джел будет снесён вместе со всей пираткой. Хотя порой это решается созданием бэкапа. И будет ли написан новый джел для последней версии – вопрос. Нет, он будет написан, но вот когда… Для седьмого iOS три месяца ждали; 3 Твики (приложения для настроек) могут очень отрицательно сказаться на работе всей системы, вывести её из баланса, так тщательно продуманного разработчиками, и даже привести к её неработоспособности. Не исключено, особенно если твик сделан не через то место. К тому же два совершенно благообразных твика могут попросту мешать друг другу. Поэтому нужно знать меру и не превращать операционную систему в помойку. Также эти твики могут писаться хакерами для кражи данных. Вот это уже проблема – придётся устанавливать «левое» ПО на свой страх и риск. Такова цена свободы. Ну или не устанавливать его вовсе – ну его, этот джелбрейк…; 4 Тем более при взломе можно спровоцировать удаление всех данных – поэтом лучше заранее сделать резервную копию; 5 И, главное – смартфон становится вне закона и навсегда уходит из под тёплого крыла Apple. Никто и никогда не отремонтирует его за бесплатно! Да ладно – не стоит так пугаться. Конечно, джел не лучшее, что можно сделать со своим любимым айфоном, но в случае чего можно откатить всё назад, да и если поломка не связана с ПО – его обязаны принять на гарантийный сервис, во всяком случае, по законам РФ.

Как узнать есть ли джейлбрейк на айфоне

Как проверить, есть ли джейлбрейк для iPhone 4, iPhone 5s – да и для любой другой модели?

Cidia http://www.cydiaimpactor.com/ – пиратское приложение, которое может сдать «отджеленный» айфон с головой иногда благоразумно скрыта. Ярлык убирают в отдельную папку или скрывают с помощью специальных твиков. Но сама то программа никуда не девается, поэтому её легко определять посредством поиска.

Можно проверить это с помощью iFunbox. Он устанавливается на комп, после этого подключается айфон, и в строке устройства нужно посмотреть, есть ли слово «Jailed». Если оно есть – значит, джела нет. Должно напрячь отсутствие этого слова, особенно, если завтра нести игрушку на гарантийный ремонт. Ведь, вероятно, модель уже с джейлбрейком.

Как установить джелбрейк на айфоне

Сразу необходимо отметить, что для каждой модели айфона, а, точнее, той версии iOS, которую он поддерживает, существует свой способ провести джел. Если метод будет выбран неверно – можно запросто угробить аппарат. Поэтому если нет уверенности что любимый iPhone 5s или выше не поддерживает данный джел – лучше воспользоваться посторонними услугами. Или устанавливать именно ту версию, о которой говорится в инструкции к джелу. Как обновить «ось», наверное, не нужно объяснять.

Джейлбрейк iPhone 3gs

Способ работает на версии iOS 6.0, а с версией 6.1 уже может работать некорректно. Причём установленный взлом будет привязанным и после каждой перезагрузки потребуется заново проводить процесс. Но проблема решается установкой p0sixpwn из Сидии.

Алгоритм действий:

  • Скачивается утилита Redsn0w 0.9.15b3.
  • Айфон подключается к ПК, после чего запускается Redsn0w (от имени админа).
  • В открывшемся окне выбирается Дополнительно> IPSW> IOS 6.0 IPSW.
  • Производится возврат на главную и нажимается «Jailbreak».
  • Выбирается Install Cidia и жмётся Далее.
  • Смартфон вводится в режим DFU (нужно подтвердить действие), и программа уже сама доводит процесс джела до финала, сообщив о выполнении привязанного JB.
  • Потом нажимается ОК и процесс завершается вручную – исходя из инструкций.

Джейлбрейк iPhone 3g проводится по аналогичной инструкции (без пункта 3) и с той лишь разницей, что «ломается» iOS 4.2.1.

Как сделать джейлбрейк iPhone 4s и iPhone 5s

Порядок следующий:

  • Скачивается и устанавливается утилита Pangu. Как уже сказано, она работает на iPhone 4 и iPhone 5s, вернее, с операционными системами, которые они поддерживают.
  • Запускается программа, подключается айфон – если система подходит, то загорается заветная кнопка Jailbreak.
  • Теперь нужно нажать на неё – после чего на смартфоне будет предложено изменить системную дату. Программа подскажет, что именно нужно сделать.
  • На смартфоне появиться ярлык Pangu – его нужно запустить и продолжить «ломать». Вернее, прога будет это делать сама. Как завершит – обернётся иконкой Cidia.

Да, всё вот так – очень и очень сложно.

Джейлбрек на iPhone 6/7

Как видно, айфон 4 или iPhone 5s, конечно, несложно взломать. А что делать владельцам более поздних версий iOS?

И для них уже всё сделано. Итак, для начала нужно скачать файлы:

  • ipa-файл Yalu https://mega.nz/#!W10jGaIZ!_Ph1J327fNlVPIS6Bq-cWVF…
  • Cydia Impactor
  • Теперь нужно подключить устройство к ПК через самый свежий iTunes;
  • Запускается Cydia Impactor – лучше предварительно сохранить файлы с айфона в облако;
  • Выбирается устройство.
  • Yalu перетаскивается в окно Cydia Impactor.
  • Появится окно – нужно ввести данные Apple ID. Лучше предварительно создать другой аккаунт.
  • Подтверждается действие – после этого нужно зайти в настройки в раздел управления устройством и разрешить доверять аккаунту разработчика.
  • Теперь можно запустить появившееся приложение mach_portal и радоваться. Но только до следующего включения, потому что потом снова придётся запускать это приложение. Джел – полупривязанный, другого пока нет.

Как удалить джейлбрейк с айфона

Как удалить Jailbreak? Это очень просто. Нужно просто обновить операционку через iTunes. Обновленный iOS убирает Jailbreak с iPhone бесследно. Прежде чем убрать его – лучше предварительно сделать резервную копию в ICloud всего, что есть на смартфоне.

Заключение

Да, всё достаточно просто и не требует больших затрат времени или интеллектуальной энергии. Только вот вопрос – зачем покупать Айфон и «ломать» его, когда можно купить менее строгий девайс?

Да, Apple – это качество, это статус, в конце концов, это же детище самого Стива Джобса! Это по-настоящему культовая вещь. Поэтому стоит купить её, а потом «сломать» – никто же не увидит этого, и внешне модный гаджет останется прежним. В общем, тут есть о чём подумать.