- Как узнать, сделан ли джейлбрейк на iPhone, iPad, iPod Touch или Apple TV
- Признаки джейлбрейка
- Как определить джейлбрейк Apple TV
- Джейлбрейк – установлен или нет?
- Узнаем – стоит ли отвязанный джейлбрейк
- Стандартный способ распознавания джейлбрейка
- iFunBox знает – стоит джейлбрейк или нет
- Распознаем привязанный джейлбрейк
- Безопасность IOS-приложений (часть 24) – Методы обнаружение джейлбрейка на устройстве и способы обхода этих методов
Как узнать, сделан ли джейлбрейк на iPhone, iPad, iPod Touch или Apple TV
Определить, сделан ли джейлбрейк несложно, если только владелец устройства не пытался скрыть следы. Материалы по теме:
- Плюсы и минусы джейлбрейка;
- Удаление джейлбрейка.
Есть несколько признаков джейлбрейка iPhone и iPad, попробую перечислить основные из них, часть можно скрыть, но если вы наблюдаете хотя бы один из них, знайте точно, перед вами девайс с джейлом.
Признаки джейлбрейка
- Наличие приложения Cydia на на спрингбоарде (лучше воспользоваться поиском по системе);
- Наличие нестандартных приложений, которые невозможно удалить (iFile, XBMC, Winterboard);
- В главных настройках гаджета между настройками социальных сетей и установленных из App Store приложений присуствие иных настроек, например Activator, Zeppelin;
- После перезагрузки iPhone или iPad не включается.
Так же отмечу, что в сети ходит описание способа определения джейла программой iFunBox, данный софт не всегда правильно отображает наличие или отсутствие джейлбрейка, поэтому не рекомендую верить этой информации.
Опасаться джейлбрейка не стоит, всегда можно просто восстановить iPhone, iPad или iPod Touch через iTunes, кроме тех случаев, когда вам пытаются продать официально залоченый iPhone для работы в сетях только конкретного оператора связи. Сейчас такие телефоны практически не продают на территории России, но всегда можно обезопасить себя проверкой модели iPhone и поискать в интернете, залочена данная модель под какого-либо оператора или нет, например model A1428 (iPhone 5) официально разлочена (Sim-Free).
Как определить джейлбрейк Apple TV
Если вы не нашли ответа на свой вопрос или у вас что-то не получилось, а в комментаряих ниже нет подходящего решения, задайте вопрос через нашу форму помощи. Это быстро, просто, удобно и не требует регистрации. Ответы на свой и другие вопросы вы найдете в данном разделе.
Источник
Джейлбрейк – установлен или нет?
Фантазии на тему: «Голосовой помощник Siri в недалеком будущем»
Всем привет! Сегодня мы расскажем вам – как узнать стоит ли джейлбрейк в вашем iPhone, планшете iPad или плеере iPod touch. Тема очень важная, особенно для тех, кто планирует покупку Айфона. Ране мы немного рассказывали о Jailbreak, решили немного развить тему и объяснить немного подробней.
Существует два вида джейла:
Привязанный джел включает в себя все признаки отвязанного, но немного отличается от последнего своей работоспособностью после перезагрузки.
Узнаем – стоит ли отвязанный джейлбрейк
Самый распространенный вид джейла – это отвязанный Jailbreak. Отвязанный джейл отличается от привязанного тем, что после перезагрузки устройства, Айфон, Айпад или Айпод нормально загружается и все приложения работают. Определить стоит ли такой джейлбрейк можно несколькими способами:
Стандартный способ распознавания джейлбрейка
Основные признаки сделанного джейлбрейка — Cydia и сторонние приграммы и утилиты
В основном любой джейлбрек распознается по наличию установленной сторонней программы – Cydia. Если среди значков на одном из рабочих экранов вы обнаружите приложение Cydia, то знайте – что джелбрейк стоит точно. Вместе с Сидией, среди приложений иногда можно встретить распространенный файловый менеджер iFile или уже не работающий Installous (старое название Installer), которые ставились из Cydia.
Существуют хитрые продавцы телефонов iPhone (особенно б/у) умудряются прятать признаки джейла, после чего продают залоченный iPhone мало-разбирающемуся покупателю, выдавая его за официально разлоченный. В основном такие люди наводят визуальный марафет, пряча приложение Cydia (могут припрятать и другие сторонние приложения вроде iFile или Installous).
Если вы нашли Cydia в своем iPhone или iPad, то джейлбрейк имеется
Степень спрятанности зависит от наличия знаний по теме, некоторые прячут Cydia в созданную папку или делают иконки невидимыми при помощи специальных твиков (к примеру SBSettings). Для поиска спрятанной Cydia, иногда, можно воспользоваться быстрым поиском – вводим Cydia в строке поискам смотрим результаты, главное чтобы в настройках поиска (Настройки – Основные – Поиск Spotlight) стояла галочка – В программах.
Более разбирающиеся специалисты, при выполнении джейлбрейка, программу Cydia даже не устанавливают, соответственно узнать стоит ли джейлбрейк, при помощи найденной Cydia, не получится. Остается ставить iFunBox.
iFunBox знает – стоит джейлбрейк или нет
Есть еще один способ как можно узнать установлен джейл или нет. Ставим программу iFunBox в свой компьютер. Подключаем свой iPhone, iPad или iPod к компу.
Программа iFunBox знает что такое джейлбрейк
Программа iFunBox поможет нам узнать сделан ли джейлбрейк, для этого переходим в раздел iFunbox Classic и смотрим:
- Если в самом конце названия устройства в скобках указано – (Jailed), то в устройстве джейлбрейка нет.
- Если надписи (Jailed) в конце названия нету – в таком iPhone джейлбрейк сделан.
Что у нас получается. На изображении выше 3 устройства, из них лишь в iPod touch 5 джейлбрейк не сделан. Как мы видим в iPhone 2G и iPad 2 джейл установлен.
Распознаем привязанный джейлбрейк
Наличие установленного привязанного джейлбрейка определить очень просто, для этого достаточно выключить и включить свой iPhone, iPad или iPod. Если после включения устройство продолжает нормально работать, то привязанного джейла нет, для убедительности после загрузки проверьте работу браузера Safari.
Ели телефон, планшет или плеер после перезагрузки на запускается, горит яблоко, то в нем стоит привязанный джейл.
Некоторые модели устройств с процессорами A4, установленной утилитой SemiTether и привязанным джейлбрейком после перезагрузки могут включаться, но не будут работать некоторые приложения – Safari, Cydia, почтовое приложение Mail.
С признаками привязанного и полу привязанного джела вроде разобрались.
Источник
Безопасность IOS-приложений (часть 24) – Методы обнаружение джейлбрейка на устройстве и способы обхода этих методов
В этой статье мы рассмотрим способы обнаружения на уровне приложения, присутствует ли джейлбрейк на устройстве. Подобная проверка во многих случаях может быть весьма полезной.
Автор: Пратик Джианчандани (Prateek Gianchandani)
В этой статье мы рассмотрим способы обнаружения на уровне приложения, присутствует ли джейлбрейк на устройстве. Подобная проверка во многих случаях может быть весьма полезной. Как мы уже знаем, злоумышленник может воспользоваться утилитами наподобие Cycript, GDB или Snoop-it для выполнения динамического анализа и кражи конфиденциальной информации, используемой приложением. Существуют методы повышения безопасности приложения, когда вы не разрешаете его запуск на джейлбрейковом устройстве. Однако следует отметить, что устройствами с джейлбрейком пользуются миллионы пользователей и, следовательно, подобного рода защиты значительно сократят размер вашей целевой аудитории. Вместо полного запрета на запуск приложения, можно отключить только некоторые функции. В этой статье мы также рассмотрим, как обойти подобную проверку при помощи Cycript.
Как только сделан джейлбрейк, на устройство устанавливается множество новых приложений и файлов. Проверка на присутствие подобных приложений и файлов в системе может помочь опознать, джейлбрейковое устройство или нет. Например, после джейлбрейка на большинстве устройств устанавливается Cydia, и просто проверив систему на присутствие этого приложения, мы можем узнать, был ли сделан джейлбрейк или нет.
1 NSString *filePath = @»/Applications/Cydia.app»;
2 if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
3 <
4 //Device is jailbroken
5 >
Однако не на всех джейлбрейковых устройства установлена Cydia. Кроме того, взломщик может изменить месторасположение этого пакета. В этом случае более эффективна проверка на присутствие множества других приложений и файлов. Например, можно проверить присутствие фреймворка Mobile Substrate, который также установлен на множестве устройств, где есть джейлбрейк. Кроме того, можно проверить присутствие демона SSH или интерпретатора shell. Все вышеупомянутые проверки выполняет следующий код:
1 +(BOOL)isJailbroken <
2
3 if ([[NSFileManager defaultManager] fileExistsAtPath:@»/Applications/Cydia.app»]) <
4 return YES;
5 >else if([[NSFileManager defaultManager] fileExistsAtPath:@»/Library/MobileSubstrate/MobileSubstrate.dylib»]) <
6 return YES;
7 >else if([[NSFileManager defaultManager] fileExistsAtPath:@»/bin/bash»]) <
8 return YES;
9 >else if([[NSFileManager defaultManager] fileExistsAtPath:@»/usr/sbin/sshd»]) <
10 return YES;
11 >else if([[NSFileManager defaultManager] fileExistsAtPath:@»/etc/apt»]) <
12 return YES;
13 >
14 return NO;
15>
Из предыдущих статей мы также знаем, что приложения, запускаемые под пользователем «mobile», работают внутри песочницы и находятся в директории /var/mobile/Applications, а приложения, которые запускаются от имени суперпользователя (root) находятся в директории /Applications. Таким образом, пользователь на джейлбрейковом устройстве может установить приложение в папку /Applications и тем самым наделить его привилегиями суперпользователя. Исходя из этого, мы можем проверить, работает ли приложение внутри песочницы или у него есть более широкие права, путем тестовой модификации файла вне директории, где установлено приложение.
1 NSError *error;
2 NSString *stringToBeWritten = @»This is a test.»;
3 [stringToBeWritten writeToFile:@»/private/jailbreak.txt» atomically:YES
4 encoding:NSUTF8StringEncoding error:&error];
5 if(error==nil) <
6 //Device is jailbroken
7 return YES;
8 > else <
9 //Device is not jailbroken
10 [[NSFileManager defaultManager] removeItemAtPath:@»/private/jailbreak.txt» error:nil];
11 >
Как было сказано выше, опытный злоумышленник может изменить местонахождение приложения, однако даже в этом случае мы можем узнать, установлена ли Cydia на устройстве, поскольку злоумышленник, скорее всего, не изменит схему URL, которая используется в Cydia. Если вызов URL-схемы (cydia://) из вашего приложения завершился успешно, можно быть уверенным в том, что устройство джейлбрейковое.
1 if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:
@»cydia://package/com.example.package»]]) <
2 //Device is jailbroken
3 >
Также добавим условие, при котором код не будет выполняться в том случае, если приложение тестируется в симуляторе. Объединяя все вышеперечисленные техники, получаем следующий метод:
if ([[NSFileManager defaultManager] fileExistsAtPath:@»/Applications/Cydia.app»]) <
return YES;
>else if([[NSFileManager defaultManager] fileExistsAtPath:@»/Library/MobileSubstrate/MobileSubstrate.dylib»]) <
return YES;
>else if([[NSFileManager defaultManager] fileExistsAtPath:@»/bin/bash»]) <
return YES;
>else if([[NSFileManager defaultManager] fileExistsAtPath:@»/usr/sbin/sshd»]) <
return YES;
>else if([[NSFileManager defaultManager] fileExistsAtPath:@»/etc/apt»]) <
return YES;
>
NSError *error;
NSString *stringToBeWritten = @»This is a test.»;
[stringToBeWritten writeToFile:@»/private/jailbreak.txt» atomically:YES
encoding:NSUTF8StringEncoding error:&error];
if(error==nil) <
//Device is jailbroken
return YES;
> else <
[[NSFileManager defaultManager] removeItemAtPath:@»/private/jailbreak.txt» error:nil];
>
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@»cydia://package/com.example.package»]]) <
//Device is jailbroken
return YES;
>
#endif
//All checks have failed. Most probably, the device is not jailbroken
return NO;
>
Честно сказать, на данный момент не существует метода, который определял бы джейлбрейк на устройстве в 100% случаев. Опытный взломщик всегда сможет найти способ обхода всех этих проверок. Кроме того, он попросту может найти соответствующие инструкции в бинарном файле и заменить их NOP’ами. Он также может изменить логику работы вашего метода на свою собственную при помощи Cycript.
Вначале злоумышленник может найти соответствующий класс, используя утилиту Class-dump-z. Далее он найдет метод +(BOOL)isJailbroken, который относится к классу JailbreakDetector. Обратите внимание, это так называемый классовый метод, поскольку вначале него стоит префикс «+». Само собой из названия метода очевидно, что он отвечает за проверку устройства на джейлбрейк, и возвращает YES, если устройство джейлбрейковое. Если вы не знакомы с этими концепциями, обращайтесь к предыдущим статьям из этой серии.
Рисунок 1: После получения информации о классах, находим метод, который проверяет присутствие джейлбрейка на устройстве
Затем злоумышленник может подцепиться к приложению при помощи Cycript
Рисунок 2: Подключение к приложению при помощи Cycript
После этого взломщик получает перечень методов класса JailbreakDetector. Обратите внимание, что мы получаем этот перечень, используя конструкцию JailbreakDetector->isa.messages, поскольку isJailbroken – классовый метод. Для нахождения методов экземпляра класса следует использовать конструкцию JailbreakDetector.messages.
Рисунок 3: Перечень методов класса JailbreakDetector
После того, как список методов получен, злоумышленник может изменить реализацию метода (используя технику method swizzling), где вместо YES будет возвращаться NO. Если вы не знакомы с этой техникой, рекомендую изучить восьмую статью из этой серии.
Рисунок 4: Изменение логики работы метода
Мы, как разработчики, можем усложнить жизнь взломщику, если будем использовать такие имена методов, которые не привлекают внимание. Например, класс JailbreakDetector, можно переименовать в ColorAdditions, а метод +(BOOL)isJailbroken в +(BOOL)didChangeColor. На подобные имена злоумышленник не обратит внимания. Конечно, он всегда может посмотреть вызовы внутри этого метода, используя Snoop-it, GDB и другие утилиты, но это маленькое изменение вполне может затруднить ему жизнь.
Источник