iOS Basic Testing Operations
Опис ідентифікації та доступу до пристрою iOS
Визначення UDID пристрою iOS
Для унікальної ідентифікації пристрою iOS використовується 40-значна послідовність, відома як UDID. На macOS Catalina або новіших версіях це можна знайти в додатку Finder, оскільки iTunes більше не присутній. Пристрій, підключений через USB та вибраний в Finder, показує свій UDID серед іншої інформації, коли деталі під його ім'ям натиснуті.
Для версій macOS до Catalina iTunes допомагає виявити UDID. Детальні інструкції можна знайти тут.
Інструменти командного рядка пропонують альтернативні методи отримання UDID:
Використання інструменту I/O Registry Explorer
ioreg
:
Використання
ideviceinstaller
для macOS (та Linux):
Використання
system_profiler
:
Використання
інструментів
для переліку пристроїв:
Доступ до оболонки пристрою
SSH доступ увімкнено шляхом встановлення пакету OpenSSH після в'язниці, що дозволяє підключення через ssh root@<device_ip_address>
. Важливо змінити паролі за замовчуванням (alpine
) для користувачів root
та mobile
, щоб захистити пристрій.
SSH через USB стає необхідним у відсутності Wi-Fi, використовуючи iproxy
для відображення портів пристрою для SSH підключень. Ця настройка дозволяє доступ до SSH через USB шляхом виконання:
Програми оболонки на пристрої, такі як NewTerm 2, сприяють прямому взаємодії з пристроєм, особливо корисні для усунення неполадок. Обернені оболонки SSH також можуть бути встановлені для віддаленого доступу з комп'ютера хоста.
Скидання забутого пароля
Для скидання забутого пароля на типовий (alpine
), необхідно відредагувати файл /private/etc/master.passwd
. Це включає заміну існуючого хешу хешем для alpine
поруч із записами користувачів root
та mobile
.
Техніки передачі даних
Передача файлів даних додатків
Архівування та відновлення через SSH та SCP: Просто архівувати каталог Даних додатка за допомогою tar
, а потім передати його за допомогою scp
. Команда нижче архівує каталог Даних у файл .tgz, який потім витягується з пристрою:
Графічні інструменти користувацького інтерфейсу
Використання iFunbox та iExplorer: Ці GUI-інструменти корисні для керування файлами на пристроях iOS. Однак починаючи з iOS 8.4, Apple обмежила доступ цих інструментів до пісочниці додатків, якщо пристрій не має виправлення.
Використання Objection для керування файлами
Інтерактивна оболонка з Objection: Запуск Objection надає доступ до каталогу Bundle додатка. Звідси ви можете перейти до каталогу Documents додатка та керувати файлами, включаючи їх завантаження та вивантаження на пристрій iOS.
Отримання та Розпакування Додатків
Отримання Файлу IPA
Посилання на Розповсюдження через Інтернет (OTA): Додатки, що розповсюджуються для тестування через OTA, можна завантажити за допомогою інструменту завантаження активів служб ITMS, який встановлюється за допомогою npm та використовується для збереження файлу IPA локально.
Видобуток бінарного файлу додатка
З IPA-файлу: Розпакуйте IPA-файл, щоб отримати доступ до розшифрованого бінарного файлу додатка.
З пристрою з вибухнутим джейлбрейком: Встановіть додаток та видобудьте розшифрований бінарний файл з пам'яті.
Процес розшифрування
Огляд Ручного Розшифрування: Бінарні файли додатків iOS шифруються Apple за допомогою FairPlay. Для реверс-інженерії необхідно витягнути розшифрований бінарний файл з пам'яті. Процес розшифрування включає перевірку прапорця PIE, налаштування прапорців пам'яті, ідентифікацію зашифрованої секції, а потім витягнення та заміну цієї секції на її розшифровану форму.
Перевірка та Зміна Прапорця PIE:
Визначення зашифрованої секції та вивантаження пам'яті:
Визначте початкову та кінцеву адреси зашифрованої секції за допомогою otool
та вивантажте пам'ять з в'язаного пристрою за допомогою gdb.
Перезапис зашифрованої секції:
Замініть зашифровану секцію в початковому бінарному файлі додатка на розшифрований дамп.
Завершення розшифрування: Змініть метадані бінарного файлу, щоб вказати відсутність шифрування за допомогою інструментів, таких як MachOView, встановивши cryptid
на 0.
Розшифрування (Автоматично)
frida-ios-dump
Інструмент frida-ios-dump використовується для автоматичного розшифрування та вилучення додатків з пристроїв iOS. Спочатку необхідно налаштувати dump.py
для підключення до пристрою iOS, що можна зробити через localhost на порту 2222 за допомогою iproxy або безпосередньо через IP-адресу та порт пристрою.
Додатки, встановлені на пристрої, можна переглянути за допомогою команди:
Для вилучення конкретного додатку, наприклад, Telegram, використовується наступна команда:
Ця команда ініціює витягування додатка, що призводить до створення файлу Telegram.ipa
в поточному каталозі. Цей процес підходить для пристроїв з виправданим доступом, оскільки непідписані або фальшиво підписані додатки можна перевстановити за допомогою інструментів, таких як ios-deploy.
flexdecrypt
Інструмент flexdecrypt, разом із обгорткою flexdump, дозволяє видобувати файли IPA з встановлених додатків. Команди для встановлення flexdecrypt на пристрої включають завантаження та встановлення пакунка .deb
. flexdump може бути використаний для переліку та витягування додатків, як показано у наведених нижче командах:
bagbak
bagbak, інший інструмент на основі Frida, потребує джейлбрейку пристрою для розшифрування додатків:
r2flutch
r2flutch, використовуючи як radare, так і frida, призначений для розшифрування та вивантаження додатків. Додаткову інформацію можна знайти на його сторінці GitHub.
Встановлення додатків
Sideloading відноситься до встановлення додатків поза офіційним App Store. Цей процес обробляється демоном installd і вимагає, щоб додатки були підписані сертифікатом, виданим Apple. Джейлбрейкнуті пристрої можуть обійти це за допомогою AppSync, що дозволяє встановлювати фейково підписані пакети IPA.
Інструменти для Sideloading
Cydia Impactor: Інструмент для підпису та встановлення файлів IPA на iOS та файлів APK на Android. Інструкції та усунення неполадок можна знайти на yalujailbreak.net.
libimobiledevice: Бібліотека для Linux та macOS для спілкування з iOS-пристроями. Наведені команди встановлення та приклади використання для ideviceinstaller для встановлення додатків через USB.
ipainstaller: Цей інструмент командного рядка дозволяє пряме встановлення додатків на пристрої iOS.
ios-deploy: Для користувачів macOS, ios-deploy встановлює iOS-додатки з командного рядка. Розпакування IPA та використання прапорця
-m
для прямого запуску додатка є частиною процесу.Xcode: Використовуйте Xcode для встановлення додатків, перейшовши до Window/Devices and Simulators та додавання додатка до Installed Apps.
Дозвіл на встановлення додатків на не-планшетних пристроях
Для встановлення додатків, специфічних для iPad, на пристроях iPhone або iPod touch, значення UIDeviceFamily в файлі Info.plist потрібно змінити на 1. Однак для цієї модифікації потрібно повторно підписати файл IPA через перевірку підпису.
Примітка: Цей метод може не працювати, якщо додаток вимагає можливостей, що є виключно для новіших моделей iPad при використанні старіших iPhone або iPod touch.
References
Last updated