Как вытащить приложение на айфоне
Вот я вроде бы не тупой. Я много читаю, могу ответить на кучу вопросов, да и с техникой всегда был – что называется – на ты. Но, когда я пересел на iPhone, кое-что было мне непонятно. Причём «кое-что» — это ещё мягко сказано. Потому что непонятных или неудобных моментов было много. О части из них я написал в отдельной статье . А в этой же предлагаю обсудить один затык, который случился со мной практически сразу после активации iPhone и переноса туда всех моих данных с Android.
Вы вроде бы удалили приложение, но оно не удалилось? Бывает и такое Вы вроде бы удалили приложение, но оно не удалилось? Бывает и такоеПосле того, как перенёс на iPhone все данные с Android , мой смартфон предложил мне установить те же самые приложения. Естественно, я согласился. Но по факту оказалось, что среди установленного ПО довольно много такого, чему на iOS просто нет места. Например, сторонним клавиатурам, потому что штатная клавиатура круче всех остальных. Поэтому я просто взял и удалил и Gboard, и Swift Keyboard.
Удалил и даже не посмотрел, что, оказывается, приложения на iOS удаляются совсем не так, как на Android. Как это делается там? Нажимаешь на иконку приложения, удерживаешь и нажимаешь «Удалить». На iOS всё устроено чуть сложнее. Когда ты нажимаешь удалить, у тебя есть два варианта: удалить и удалить с экрана. А вот чем эти способы отличаются, мне только предстояло узнать.
Не удаляются приложения с Айфона
На iOS существует две версии кнопки «Удалить» для удаления приложений На iOS существует две версии кнопки «Удалить» для удаления приложенийОказывается, если ты нажимаешь «удалить с экрана», то приложение не удаляется. Ну то есть вообще. Оно, как и раньше, остаётся на устройстве со всеми своими данными. Вместо этого оно просто пропадает с экрана. Наверное, кому-то это и правда может пригодиться. Но ведь это не настоящее удаление. Куда логичнее, по-моему, было бы обозвать это действие «спрятать» или «скрыть», но точно не «удалить».
Получить доступ к этому приложению можно и после фейкового удаления. Оно продолжает отображаться в разделе, который называется «Библиотека приложений». Это самый крайний правый рабочий стол, где приложения вроде как каталогизируются по вашим предпочтениям. Не сказать, что это прямо особо удобно, но, если вы случайно удалили приложение не полностью, найти его можно будет только тут.
Отсюда его можно и удалить навсегда, и вернуть на рабочий стол:
- Листайте вправо до тех пор, пока не откроете «Библиотеку»;
- Найдите папку с приложением, которое случайно удалили;
- Нажмите на его иконку и удерживайте до появления меню;
- Выберите нужное действие: вернуть на экран домой или удалить.
Как восстановить приложение на Айфоне
Если вы нажмёте на кнопку удаления – тут, кстати, уже не будет никаких разночтений, — приложение удалится окончательно. В некоторых случаях вам будет предложено дополнительно удалить его данные, которые оно сохранило, либо оставить их на случай повторной установки. но в целом приложение с устройства пропадёт. То есть место в памяти устройства оно занимать больше не будет.
С помощью Спотлайта можно найти даже скрытые приложения С помощью Спотлайта можно найти даже скрытые приложенияА, если вы нажмёте «Вернуть на экран Домой», приложение вернётся на рабочий стол и будет размещаться точно там же, откуда оно исчезло, когда вы его якобы удалили. Так что искать не придётся. Но этот механизм сработает только в том случае, если вы не заняли его место каким-то другим приложением. Тогда оно появится в первом свободном слоте рабочего стола. Там его и ищите либо воспользуйтесь Spotlight .
Кстати, Spotlight пригодится для поиска приложения, если вы просто не можете найти его на рабочем столе или в Библиотеке приложений. Просто свайпните пальцем от середины экрана вниз, и перед вами откроется поисковая строка. Забейте там название приложения и откройте нужное из поисковой выдачи. Именно с помощью Spotlight, вообще говоря, можно найти так называемые скрытые приложения iOS, которые Apple встроила в систему , но не стала размещать их на экране.
По состоянию на июль прошлого года Apple продала более 800 миллионов устройств, работающих под управлением iOS. Более половины из них — различные модели iPhone. При таком количестве устройств в обращении совершенно не удивительно, что они часто становятся объектами компьютерно-технической экспертизы (forensics). На рынке представлены различные решения для автоматизации подобных экспертиз, но ценник на них зачастую делает их недоступными. Поэтому сегодня мы поговорим о том, как можно провести такую экспертизу с минимальными затратами или, проще говоря, используя бесплатные и/или open source инструменты.
Немного теории
- Пасскод. Он защищает устройство от неавторизованного доступа (в том числе и от экспертизы) и криптографически защищает часть данных. Это значит, что даже если пасскод как-то обойти, то некоторые файлы и записи Keychain будут недоступны, потому что устройство не сможет получить соответствующие ключи шифрования, не зная пасскод.
- Связка ключей (Keychain). Это централизованное хранилище паролей, токенов, ключей шифрования и прочих секретов, в котором Apple рекомендует разработчикам приложений держать ценные данные. Физически представляет собой SQLite3-базу, записи в которой зашифрованы и доступ к которой осуществляется опосредованно, через запросы к сервису `securityd`.
- Шифрование файлов. В отличие от систем полнодискового шифрования (full disk encryption, FDE), iOS шифрует каждый файл отдельным ключом (чем-то это напоминает EFS в Windows). Часть файлов защищена ключом, производным от уникального ключа устройства, и может быть расшифрована без знания пасскода, часть защищена таким образом, что расшифровать их без знания пасскода невозможно.
Извлечение данных
- «Физическое извлечение» позволяет получить побитовый образ диска, все ключи шифрования устройства и, в большинстве случаев, также позволяет перебирать пасскод (если он установлен). Для физического извлечения в общем случае требуется выполнение кода на устройстве в контексте пользователя с полными правами (root) и вне песочницы (sandbox). Этот метод был популярен несколько лет назад, так как уязвимость в загрузчиках старых устройств (таких как iPhone 4 или первые iPad’ы) позволяла выполнять на устройстве произвольный код. На более новых устройствах физическое извлечение возможно (да и то с оговорками) только при наличии jailbreak, поэтому сегодня мы его рассматривать не будем.
- «Логическое извлечение» использует для получения данных интерфейсы и сервисы, которые уже есть на устройстве и которые используются программами вроде iTunes или Xcode. Классическим примером здесь служит создание резервной копии iTunes: для ее создания не нужно устанавливать на устройство никаких дополнительных программ, и при этом она содержит большое количество ценной информации об устройстве (включая список контактов и вызовов, историю переписки, историю местоположений, фото/видео). Но одним только бэкапом дело не ограничивается — на iOS-устройствах присутствуют и другие службы, позволяющие получить доступ к данным.
- Извлечение из iCloud позволяет загрузить резервную копию устройства из облака. Для этого необходимо знать аутентификационные данные настроенного на устройстве Apple ID: Apple ID и пароль либо аутентификационный токен. Резервная копия в iCloud также содержит массу ценной информации.
Спаривание
Когда речь заходит о «логическом» извлечении, то одно из ключевых понятий — это спаривание (pairing) устройства и хоста. В большинстве случаев устройство будет отвечать на запросы только того хоста, с которым оно было спарено ранее (таких хостов может быть больше одного). Запись спаривания (pairing record) состоит из двух частей — одна хранится на устройстве и одна на хосте — и создается при первом подключении устройства к новому хосту. Для создания такой записи необходимо, чтобы устройство было разблокировано (то есть для спаривания в общем случае необходимо ввести пасскод) и чтобы пользователь подтвердил создание записи спаривания на устройстве (начиная с iOS 7; в более ранних версиях запись создавалась автоматически).
Запись спаривания содержит ключи шифрования для всего контента, хранящегося на устройстве, и, следовательно, может быть использована для подключения к устройству и его разблокировки. Другими словами, с точки зрения доступа к зашифрованным данным запись спаривания эквивалентна знанию пасскода: наличие любого из этих двух факторов позволяет разблокировать устройство и получить доступ ко всем данным (в криптографическом смысле).
С практической точки зрения вышесказанное значит, что для логического извлечения в общем случае необходима существующая запись спаривания с одного из доверенных компьютеров или пасскод (чтобы эту запись создать). Без этого большая часть сервисов iOS откажется работать и возвращать данные.
Практика
Для наших экспериментов понадобится виртуальная или физическая машина под управлением Linux. Linux, в принципе, может быть любым, важно чтобы под ним нормально собирались и работали `libusb` и `libimobiledevice`. Я буду использовать Santoku Linux — дистрибутив, созданный в том числе и для проведения исследования устройств под управлением Android и iOS. К сожалению, Santoku Linux содержит не все необходимое, поэтому кое-что «допиливать» все же придется.
Логическое извлечение
Для логического извлечения данных из устройства нам потребуется libimobiledevice — кросс-платформенная библиотека для общения с различными службами iOS. К сожалению, Santoku Linux 0.5 поставляется с устаревшей версией `libimobiledevice` (1.1.5), которая не полностью поддерживает iOS 8, поэтому первым делом установим самую свежую версию (1.1.7) и все ее зависимости (скачиваем архивы по указанным ссылкам, распаковываем, переходим в полученную папку и выполняем `./autogen.sh && make && sudo make install`):
-
; ; — здесь обрати внимание на ключ `--enable-dev-tools`, он включает сборку дополнительных утилит, которые мы в дальнейшем будем использовать для общения с некоторыми сервисами iOS: `./autogen.sh --enable-dev-tools`; — похоже, ключ `--without-systemd` необходим на Santoku 0.5, так как без него usbmuxd не стартует: `./autogen.sh --without-systemd`; ; .
Если все прошло удачно, то теперь самое время подключить какое-нибудь iOS-устройство к компьютеру (или к виртуальной машине) и проверить, что хост его видит:
Эта команда должна вывести идентификаторы (UUID) подключенных устройств.
Информация об устройстве
Следующий этап — получение более подробной информации об устройстве. Для этого служит утилита `ideviceinfo`. Она может использоваться в двух вариантах:
- `ideviceinfo –s` выводит общедоступную информацию об устройстве без попытки создать новое или использовать существующее спаривание между хостом и устройством;
- `ideviceinfo [-q <домен>] [-x]` выводит существенно более подробную информацию, но требует наличия спаривания между устройством и хостом. Утилита запрашивает информацию у сервиса `lockdownd`, выполняющегося на устройстве. Информация представляет собой пары ключ — значение и ключи сгруппированы в домены. С помощью параметра `-q` можно задать конкретный домен, из которого требуется получить данные.
Приложения
В рамках логического извлечения можно получить доступ к данным приложений. Для этого сначала необходимо получить список установленных приложений при помощи утилиты `ideviceinstaller`:
В результате для каждого приложения получаем его идентификатор (так называемый bundle ID), название и версию. Зная идентификатор приложения, мы можем получить доступ к его данным. Для этого задействуются два сервиса iOS — `house_arrest` и `afc`. AFC (Apple File Conduit) — это служба доступа к файлам; с ее помощью, в частности, iTunes осуществляет доступ к музыке и прочим медиафайлам на устройстве. `house_arrest` — это менее известный сервис, который позволяет запускать сервер AFC в песочнице конкретного приложения; он, в частности, используется для реализации функции File Sharing в iTunes.
Но это все теория. На практике для получения доступа к файлам приложения достаточно воспользоваться утилитой `ifuse`:
В результате выполнения этой команды директория с данными приложения будет смонтирована в директории
Отмонтировать данные приложения можно командой `fusermount –u
Резервная копия iTunes
Бэкап устройства традиционно служит одним из популярных векторов извлечения данных, что неудивительно, учитывая, что бэкап по определению должен содержать массу ценной информации об устройстве и его владельце. Для создания бэкапа можно воспользоваться утилитой `idevicebackup2`:
В зависимости от количества контента на устройстве создание резервной копии может занять длительное время (до получаса).
Другая потенциальная проблема, связанная с бэкапами, заключается в том, что они могут быть зашифрованы. Шифрование бэкапов в iOS осуществляется на стороне устройства, поэтому если пользователь защитил бэкап паролем, то все данные, отдаваемые устройством в процессе бэкапа, будут зашифрованы. Пароль можно попытаться подобрать — для этого существуют как коммерческие, так и бесплатные инструменты. Без пароля доступ к содержимому файлов бэкапа невозможен.
По умолчанию `idevicebackup2` сохраняет резервную копию во внутреннем формате iOS, который не вполне подходит для ручного исследования, поскольку, например, вместо имени файла в нем используется значение хеш-функции SHA-1 от пути файла. Преимущество этого внутреннего формата iOS в том, что многие программы знают, как с ним работать, так что для анализа содержимого бэкапа достаточно открыть его в одной из таких программ (например, iOS Backup Analyzer, iBackupBot, или iExplorer).
Если же по каким-то причинам требуется получить бэкап в более «читаемом» формате, то можно воспользоваться командой `unback`:
Эта команда создаст на рабочем столе директорию `_unback_`, в которой будет сохранена резервная копия устройства в виде традиционного дерева файлов, а не в виде списка файлов с псевдослучайными именами, как ранее.
Файловая система
Утилита `ifuse` может быть использована и для доступа к файловой системе iOS-устройства. Сразу замечу, что стандартная служба AFC позволяет получить доступ только к содержимому директории `/var/mobile/Media`, в которой хранятся фото- и видеофайлы, фильмы, музыка и прочий медиаконтент. Эта директория может быть смонтирована при помощи команды `ifuse
Если устройству был сделан jailbreak и установлена служба AFC2, то возможности доступа к файловой системе существенно расширяются. AFC2 — это тот же AFC, только имеющий доступ ко всей файловой системе, а не только к директории `/var/mobile/Media`. Корневая файловая система устройства может быть смонтирована следующим образом: `ifuse --root
/Desktop/Media/`. Отмонтирование устройства осуществляется, как и в случае с доступом к данным приложений, командой `fusermount –u
FILE_RELAY
File_relay — один из менее известных сервисов iOS, позволяющий в некоторых случаях получать данные, недоступные через другие интерфейсы. Сервис присутствует во всех версиях iOS, начиная с 2.0 (тогда ОС еще называлась iPhone OS), но список доступных данных меняется от версии к версии.
Для извлечения данных через службу file_relay можно воспользоваться утилитой `filerelaytest` (она будет скомпилирована, только если указать параметр `--enable-dev-tools` при конфигурации `libimobiledevice`):
Источники `file_relay` в iOS 8
AppleTV Baseband Bluetooth Caches CoreLocation CrashReporter CLTM demod Keyboard Lockdown MobileBackup MobileInstallation MobileMusicPlayer Network Photos SafeHarbor SystemConfiguration Ubiquity UserDatabases AppSuppor t Voicemail VPN WiFi WirelessAutomation MapsLogs NANDDebugInfo IORegUSBDevice VARFS HFSMeta tmp MobileAsset GameKitLogs Device-O-Matic MobileDelete itunesstored Accounts AddressBook FindMyiPhone DataAccess DataMigrator EmbeddedSocial MobileCal MobileNotes
Эта команда выполнит подключение к службе `file_relay` и запросит фиксированный набор «источников» (sources): AppleSupport, Network, VPN, WiFi, UserDatabases, CrashReporter, tmp, SystemConfiguration. Каждый такой источник — это один файл или более с устройства. Полный список источников для iOS 8 приведен во врезке. Для запроса определенного источника достаточно использовать его имя в качестве параметра для `filerelaytest`:
Результат (то есть извлеченные данные) будет записан в файл dump.cpio.gz в текущей директории. Его можно распаковать с помощью стандартных утилит `gunzip` и `cpio`:
До iOS 8 этот сервис был исключительно полезным и позволял получить данные, недоступные через другие интерфейсы (например, если бэкап зашифрован). Но, начиная с iOS 8, Apple ввела дополнительную проверку: для того чтобы служба `file_relay` работала, на устройстве должен быть установлен специальный конфигурационный профиль, подписанный Apple.
При установке такого профиля в директории `/Library/Managed Preferences/mobile/` будет создан файл `com.apple.mobile_file_relay.plist` со следующим содержанием:
`file_relay` во время выполнения проверяет наличие этого файла и значение ключа `Enabled` в нем и возвращает данные, только если оно установлено в `true`.
Автоматизация
Один из замечательных аспектов `libimobiledevice` состоит в том, что эта библиотека, помимо готовых утилит для общения с устройством, предоставляет и API для создания своих инструментов. Она содержит, например, привязки для Python, предоставляющие такой же уровень доступа к различным сервисам устройства. Используя этот API, ты можешь достаточно быстро создать именно тот инструментарий, который тебе необходим.
iCloud
Начиная с iOS 5, устройства могут создавать собственную резервную копию в облаке iCloud, а также восстанавливаться из такой копии при первоначальной настройке. Для доступа к данным необходимо знание Apple ID и пароля. Одно из решений с открытым кодом для этого — iLoot. Утилита достаточно проста в использовании, поэтому давать какие-либо пояснения излишне: на вход подается Apple ID и пароль, на выходе — резервные копии, загруженные из iCloud’а. На момент написания статьи iLoot не работает с учетными записями, для которых включена двухэтапная аутентификация.
Заключение
В статье я постарался рассказать о доступных способах извлечения данных из iOS-устройств — способах, не требующих финансовых затрат. За кадром остался такой важный аспект исследования, как анализ извлеченных данных, — эта тема гораздо более обширна и существенно зависит от версии iOS и установленных программ, поэтому раскрыть тему анализа «в общем» представляется труднодостижимым. Тем не менее я надеюсь, что представленный материал оказался интересен и ты узнал из него что-то новое. Happy hacking!
Впервые опубликовано в журнале «Хакер» от 02/2015.
Автор: Андрей Беленко (@abelenko)
Объединить можно 2 и более приложений. Сперва определитесь, какие значки будет группировать. Чтобы создать папку в iOS, выполните следующее:
- Нажмите на ярлык и удерживайте палец в течение пары секунд, как для удаления. Теперь вы можете переместить значок в любое место на экране. Вам нужно перетянуть его не в свободную область, а поместить четко сверху на другой ярлык и отпустить палец. Теперь эти два приложения находятся в одной группе.
Обратите внимание! Создавать папки на iPhone 7, 8, X, XS и XR, XI немного сложнее. Это обусловлено тем, что у этих смартфонов сенсорный экран по-другому реагирует на различные касания. Если вы пользуетесь одним из этих смартфонов, не нажимайте на экран слишком сильно, иначе откроется меню. Достаточно легкого прикосновения и удержания.
- Теперь вы можете назвать новую папку. Начиная с iOS 7 сразу после группировки двух приложений предложенное название занимает практически весь экран. Интересно, что название подбирается автоматически в зависимости от типа приложений, которые вы объединили. Однако вы можете переименовать папку по собственному усмотрению. Например, вместо «Финансы» назвать ее «Ca$h».
- Чтобы изменить название, откройте папку и выполните долгое нажатие на строчку с именем.
- Для добавления других приложений в группу перетяните их значки в нужную область. Чтобы выйти из папки, нажмите кнопку Home или Done на экране в зависимости от модели вашего устройства.
- Если вы хотите убрать какое-либо приложение из папки, просто перетяните ярлык на рабочий стол.
- Удалить папку на iPhone можно точно так же, как и любую программу в отдельности: удерживайте палец на папке, а затем нажмите на крестик вверху справа.
Если вы часто пользуетесь приложениями из определенной группы, вы можете для удобства закрепить любую папку в Doc, например, рядом с приложением «Телефон» или в другом месте.
Программы, представленные на экране «Домой», можно упорядочить, разложить по папкам, а также переместить на другие страницы или экраны. Можно также изменить порядок расположения страниц.
Упорядочение программ
Нажмите и удерживайте значок любой программы на экране, затем нажмите «Изменить экран "Домой"».
Теперь программу можно переместить в другое место (в том числе на панель Dock в нижней части экрана).
На iPhone X или более поздней модели нажмите «Готово», чтобы сохранить изменения. На iPhone 8 или более ранней модели нажмите кнопку «Домой».
Перенос программ в папку
Если программ много, можно разложить их по папкам.
Чтобы создать папку, перетащите одну программу на другую.
Чтобы переименовать папку, нажмите поле имени папки или значок , а затем введите новое имя.
В созданную папку можно перетащить программы. В одной папке может быть несколько страниц.
Перенос программы на другую страницу
Сначала на устройстве представлена только одна страница программ. Чтобы создать новую страницу, перетащите какую-либо программу в правый край экрана. Примерно через секунду появится новая страница. Чтобы удалить страницу, соберите все программы на другом экране «Домой». При отсутствии программ страница будет удалена.
Если на устройстве уже создано несколько страниц, яркая точка в ряду точек над панелью Dock укажет, на какой странице вы находитесь в данный момент. Вы можете переместить программу на другую страницу или создать новые страницы.
Если слева или справа от яркой точки есть другие точки, можно перетащить программу в правую часть экрана, чтобы переместить ее на следующую страницу в соответствующем направлении. Или смахните влево, чтобы увидеть программы на этой странице.
Если справа от яркой точки нет других точек, то при перетаскивании программы в эту часть экрана будет создана новая страница.
Дополнительная информация
Сведения об удалении программ, установленных на iPhone, iPad и iPod touch, см. в этой статье.
Программы, представленные на экране «Домой», можно упорядочить, разложить по папкам, а также переместить на другие страницы или экраны. Можно также изменить порядок расположения страниц.
Упорядочение программ
Нажмите и удерживайте значок любой программы на экране, затем нажмите «Изменить экран "Домой"».
Теперь программу можно переместить в другое место (в том числе на панель Dock в нижней части экрана).
На iPhone X или более поздней модели нажмите «Готово», чтобы сохранить изменения. На iPhone 8 или более ранней модели нажмите кнопку «Домой».
Перенос программ в папку
Если программ много, можно разложить их по папкам.
Чтобы создать папку, перетащите одну программу на другую.
Чтобы переименовать папку, нажмите поле имени папки или значок , а затем введите новое имя.
В созданную папку можно перетащить программы. В одной папке может быть несколько страниц.
Перенос программы на другую страницу
Сначала на устройстве представлена только одна страница программ. Чтобы создать новую страницу, перетащите какую-либо программу в правый край экрана. Примерно через секунду появится новая страница. Чтобы удалить страницу, соберите все программы на другом экране «Домой». При отсутствии программ страница будет удалена.
Если на устройстве уже создано несколько страниц, яркая точка в ряду точек над панелью Dock укажет, на какой странице вы находитесь в данный момент. Вы можете переместить программу на другую страницу или создать новые страницы.
Если слева или справа от яркой точки есть другие точки, можно перетащить программу в правую часть экрана, чтобы переместить ее на следующую страницу в соответствующем направлении. Или смахните влево, чтобы увидеть программы на этой странице.
Если справа от яркой точки нет других точек, то при перетаскивании программы в эту часть экрана будет создана новая страница.
Дополнительная информация
Сведения об удалении программ, установленных на iPhone, iPad и iPod touch, см. в этой статье.
Следуя народной мудрости, не все обновления в App Store одинаково полезны и приносят только позитивные изменения. Частенько бывает так, что мучительно хочется откатиться на предыдущую версию приложения или игры, и именно о том, как просто и быстро обезопасить себя от таких сюрпризов, мы и расскажем вам.
Теперь к сути действий для решения этой проблемы. Вам необходим компьютер с установленным iTunes (операционная система не важна), а также маленькая, но очень полезная программа iTools, о которой мы писали ранее.
Подключаем iPhone или iPad к ПК, закрываем iTunes и открываем iTools. Далее переходим во вкладку Applications, которая находится под названием подключенного устройства. После чего нажимаем кнопку «Backup», выбираем «Backup program» и указываем путь, куда будет сохранен ipa файл.
Если нужно провести операцию сразу над несколькими приложениями, просто отметьте их галочками, после чего уже в верхней панели выберите все те же пункты «Backup», а затем «Backup program». В результате программа сохранит файл каждой программы отдельно.
Обратное действие, если все же случилось непоправимое и вам нужно вернуть предыдущую версию программы, тоже делается в пару движений мышью. Достаточно выбрать пункт «Install» в верхней панели программы, а затем указать на ранее сохраненный ipa файл. После этого программа установит приложение на устройство.
Отдельный пункт стоит посвятить особенности, которая позволит беспроблемно восстановить купленное приложение из резервной копии. Чтобы процесс прошел успешно, необходимо, чтобы программа, которая была сохранена в виде установочного файла, соответствовала Apple ID на устройстве, с которым вы работаете. В противном случае получится вот такая ошибка.
Читайте также: