- •От издательства
- •О техническом обозревателе
- •О соавторах
- •Об авторах
- •Вступительное слово
- •Благодарности
- •Предисловие
- •Почему важна защита интернета вещей?
- •Чем защита интернета вещей отличается от традиционной ИТ-защиты?
- •Законы хакинга интернета вещей
- •Заключение
- •Моделирование угроз для интернета вещей
- •Схема моделирования угроз
- •Определение архитектуры
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Использование деревьев атак для обнаружения угроз
- •Распространенные угрозы интернета вещей
- •Атаки с подавлением сигнала
- •Атаки с воспроизведением
- •Атаки со взломом настроек
- •Клонирование узла
- •Заключение
- •Пассивная разведка
- •Физический или аппаратный уровень
- •Периферийные интерфейсы
- •Среда загрузки
- •Блокировки
- •Предотвращение и обнаружение несанкционированного доступа
- •Прошивка
- •Интерфейсы отладки
- •Физическая устойчивость
- •Разведка
- •Атаки на сетевой протокол и службы
- •Тестирование беспроводного протокола
- •Оценка веб-приложений
- •Картирование приложений
- •Элементы управления на стороне клиента
- •Аутентификация
- •Управление сеансом
- •Проверка ввода
- •Логические ошибки
- •Сервер приложений
- •Исследование конфигурации хоста
- •Учетные записи пользователей
- •Привилегии учетной записи
- •Уровни патчей
- •Удаленное обслуживание
- •Управление доступом к файловой системе
- •Шифрование данных
- •Неверная конфигурация сервера
- •Мобильное приложение и облачное тестирование
- •Заключение
- •4. Оценка сети
- •Переход в сеть IoT
- •VLAN и сетевые коммутаторы
- •Спуфинг коммутатора
- •Двойное тегирование
- •Имитация устройств VoIP
- •Идентификация устройств IoT в сети
- •Обнаружение паролей службами снятия отпечатков
- •Атаки MQTT
- •Настройка тестовой среды
- •Написание модуля MQTT Authentication-Cracking в Ncrack
- •Тестирование модуля Ncrack на соответствие MQTT
- •Заключение
- •5. Анализ сетевых протоколов
- •Проверка сетевых протоколов
- •Сбор информации
- •Анализ
- •Создание прототипов и разработка инструментов
- •Работа с Lua
- •Общие сведения о протоколе DICOM
- •Генерация трафика DICOM
- •Включение Lua в Wireshark
- •Определение диссектора
- •Определение основной функции диссектора
- •Завершение диссектора
- •Создание диссектора C-ECHO
- •Начальная загрузка данных функции диссектора
- •Анализ полей переменной длины
- •Тестирование диссектора
- •Разработка сканера служб DICOM для механизма сценариев Nmap
- •Написание библиотеки сценариев Nmap для DICOM
- •Коды и константы DICOM
- •Написание функций создания и уничтожения сокетов
- •Создание заголовков пакетов DICOM
- •Написание запросов контекстов сообщений A-ASSOCIATE
- •Чтение аргументов скрипта в движке сценариев Nmap
- •Определение структуры запроса A-ASSOCIATE
- •Анализ ответов A-ASSOCIATE
- •Создание окончательного сценария
- •Заключение
- •6. Использование сети с нулевой конфигурацией
- •Использование UPnP
- •Стек UPnP
- •Распространенные уязвимости UPnP
- •Злоупотребление UPnP через интерфейсы WAN
- •Другие атаки UPnP
- •Использование mDNS и DNS-SD
- •Как работает mDNS
- •Как работает DNS-SD
- •Проведение разведки с помощью mDNS и DNS-SD
- •Злоупотребление на этапе проверки mDNS
- •Атаки «человек посередине» на mDNS и DNS-SD
- •Использование WS-Discovery
- •Как работает WS-Discovery
- •Подделка камер в вашей сети
- •Создание атак WS-Discovery
- •Заключение
- •UART
- •Аппаратные средства для связи с UART
- •Как найти порты UART
- •Определение скорости передачи UART
- •JTAG и SWD
- •JTAG
- •Как работает SWD
- •Аппаратные средства для взаимодействия с JTAG и SWD
- •Идентификация контактов JTAG
- •Взлом устройства с помощью UART и SWD
- •Целевое устройство STM32F103C8T6 (Black Pill)
- •Настройка среды отладки
- •Кодирование целевой программы на Arduino
- •Отладка целевого устройства
- •Заключение
- •Как работает SPI
- •Как работает I2C
- •Настройка архитектуры шины I2C типа «контроллер–периферия»
- •Заключение
- •9. Взлом прошивки
- •Прошивка и операционные системы
- •Получение доступа к микропрограмме
- •Взлом маршрутизатора Wi-Fi
- •Извлечение файловой системы
- •Статический анализ содержимого файловой системы
- •Эмуляция прошивки
- •Динамический анализ
- •Внедрение бэкдора в прошивку
- •Нацеливание на механизмы обновления микропрограмм
- •Компиляция и установка
- •Код клиента
- •Запуск службы обновления
- •Уязвимости служб обновления микропрограмм
- •Заключение
- •10. Радио ближнего действия: взлом rFID
- •Радиочастотные диапазоны
- •Пассивные и активные технологии RFID
- •Структура меток RFID
- •Низкочастотные метки RFID
- •Высокочастотные RFID-метки
- •Настройка Proxmark3
- •Обновление Proxmark3
- •Клонирование низкочастотных меток
- •Клонирование высокочастотных меток
- •Имитация RFID-метки
- •Изменение содержимого RFID-меток
- •Команды RAW для небрендированных или некоммерческих RFID-тегов
- •Подслушивание обмена данными между меткой и считывателем
- •Извлечение ключа сектора из перехваченного трафика
- •Атака путем подделки RFID
- •Автоматизация RFID-атак с помощью механизма скриптов Proxmark3
- •Пользовательские сценарии использования RFID-фаззинга
- •Заключение
- •11. Bluetooth Low Energy (BLE)
- •Как работает BLE
- •Необходимое оборудование BLE
- •BlueZ
- •Настройка интерфейсов BLE
- •Обнаружение устройств и перечисление характеристик
- •GATTTool
- •Bettercap
- •Взлом BLE
- •Настройка BLE CTF Infinity
- •Приступаем к работе
- •Заключение
- •12. Радиоканалы средней дальности: взлом Wi-Fi
- •Как работает Wi-Fi
- •Атаки Wi-Fi на беспроводные клиенты
- •Деаутентификация и атаки «отказ в обслуживании»
- •Атаки на Wi-Fi путем подключения
- •Wi-Fi Direct
- •Атаки на точки доступа Wi-Fi
- •Взлом WPA/WPA2
- •Взлом WPA/WPA2 Enterprise для сбора учетных данных
- •Методология тестирования
- •Заключение
- •13. Радио дальнего действия: LPWAN
- •Захват трафика LoRa
- •Настройка платы разработки Heltec LoRa 32
- •Настройка LoStik
- •Превращаем USB-устройство CatWAN в сниффер LoRa
- •Декодирование протокола LoRaWAN
- •Формат пакета LoRaWAN
- •Присоединение к сетям LoRaWAN
- •Атаки на LoRaWAN
- •Атаки с заменой битов
- •Генерация ключей и управление ими
- •Атаки воспроизведения
- •Подслушивание
- •Подмена ACK
- •Атаки, специфичные для приложений
- •Заключение
- •14. Взлом мобильных приложений
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Защита данных и зашифрованная файловая система
- •Подписи приложений
- •Аутентификация пользователя
- •Управление изолированными аппаратными компонентами и ключами
- •Проверенная и безопасная загрузка
- •Анализ приложений iOS
- •Подготовка среды тестирования
- •Статический анализ
- •Динамический анализ
- •Атаки путем инъекции
- •Хранилище связки ключей
- •Реверс-инжиниринг двоичного кода
- •Перехват и изучение сетевого трафика
- •Анализ приложений Android
- •Подготовка тестовой среды
- •Извлечение файла APK
- •Статический анализ
- •Обратная конвертация двоичных исполняемых файлов
- •Динамический анализ
- •Перехват и анализ сетевого трафика
- •Утечки по побочным каналам
- •Заключение
- •15. Взлом умного дома
- •Физический доступ в здание
- •Клонирование RFID-метки умного дверного замка
- •Глушение беспроводной сигнализации
- •Воспроизведение потока с IP-камеры
- •Общие сведения о протоколах потоковой передачи
- •Анализ сетевого трафика IP-камеры
- •Извлечение видеопотока
- •Атака на умную беговую дорожку
- •Перехват управления интеллектуальной беговой дорожкой на базе Android
- •Заключение
- •Инструменты для взлома интернета вещей
- •Предметный указатель
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|||
ка.Компоновочныйбуфер(pasteboard)–этобуфер,которыйпомогает |
|
|
|
to |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
m |
||
w Click |
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
df-x chan |
|
o |
|
|||||
пользователям обмениваться данными между различными интер- |
. |
.c |
|
||||||||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
фейсами приложений или даже между разными приложениями, ког- да они выбирают операцию вырезания, копирования или дублиро- вания из предоставленного системой меню. Но именно эта функция можетнепреднамереннораскрытьконфиденциальнуюинформацию, такую как пароль пользователя, сторонним вредоносным приложе- ниям, которые отслеживают этот буфер, или другим пользователям на общем устройстве IoT.
Прогнозирующий текстовый движок (также известный, как меха- низм интеллектуального ввода текста) сохраняет слова и предложе- ния, которые вводит пользователь, и затем автоматически предлага- ет их при следующей попытке пользователя ввести данные,повышая общую скоростьнаборатекста.Но злоумышленники могутлегко най- ти эти конфиденциальные данные в файловой системе взломанного устройства, перейдя в следующую папку:
$ cd data/Library/Keyboard/en-dynamic.lm/
Используя эти знания, вы легко решите учебные задачи Keystroke Logging (Регистрация нажатия клавиш) и Cut-and-Paste (Вырезать и вставить) категории Side Channel Data Leaks.
Приложение Huawei HiLink для iOS содержало уязвимость этого типа, связанную с утечкой информации (https://www.cvedetails.com/cve/ CVE-2017-2730/). Приложение работает со многими продуктами Hua- wei,такими как Huawei Mobile WiFi (серия E5), маршрутизаторы Hua- wei, Honor Cube и домашние шлюзы Huawei. Уязвимость позволяла злоумышленникам собирать пользовательскую информацию о моде- ли iPhone и версии прошивки и потенциально отслеживать уязвимые устройства.
Атаки путем инъекции
Хотя XSS-инъекция–очень распространенная уязвимость в веб-при- ложениях, ее трудно найти в мобильных приложениях. Но вы можете наблюдать ее в тех случаях, когда приложение использует WebView для представления ненадежного содержания. Можно протестиро- вать такой случай в учебной задаче Cross Site Scripting (межсайтовый скриптинг) категории Injection Flaws (Уязвимости путем инъекции), вставив простую полезную нагрузку JavaScript между тегами скрипта в поле ввода (рис. 14.10).
Злоумышленник, способный использовать уязвимость XSS в Web- View, может получить доступ к любой конфиденциальной информа- ции, отображаемой в данный момент, а также к файлам cookie стра- ницы аутентификации HTTP, если они используются. Он может даже подделать представленную веб-страницу, добавив настраиваемое фишинговое содержимое,такое как поддельные формы входа.Кроме
406 Глава 14
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
того,взависимостиотконфигурацииWebViewиподдержкиплатфор- |
|
|
|
|
|
m |
||||
w Click |
|
|
|
|
|
|
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
мы, злоумышленник может получить доступ к локальным файламdf,-x chan |
.c |
|
||||||||
|
. |
|
|
|
|
|
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
e |
|
использовать другие уязвимости в поддерживаемых подключаемых модулях WebView или даже выполнить запросы на вызовы собствен- ных функций.
Рис.14.10.XSS-атака
в исследуемом приложении
Возможно выполнить атаку с использованием SQL-инъекции на мобильные приложения. Если приложение использует базу данных для регистрации статистики использования, атака, скорее всего, не сможет изменить поток приложения. Напротив, если приложение использует базу данных для аутентификации или ограниченного извлечения контента и присутствует уязвимость SQL-инъекции, мы могли бы обойти этот механизм безопасности . Если мы можем из- менить данные, чтобы вызвать сбой приложения, мы можем превра- тить SQL-инъекцию в атаку отказа в обслуживании.В учебной задаче SQL Injection (Внедрение SQL-кода в функционирующее приложение) категории Injection Flaws вы можете использовать вектор атаки SQLинъекции для извлечения неавторизованного контента с использо- ванием вредоносной полезной нагрузки SQL.
Обратите внимание, что, начиная с iOS 11, клавиатура iPhone со- держиттолько символ одинарной кавычки вместо символа апострофа ASCII. Это изменение может усложнить использование определенных уязвимостей SQL, которые часто требуют апострофа для создания оператора с корректным синтаксисом. Эту функцию по-прежнему можно отключить программно с помощью свойства smartQuotesType
(https://developer.apple.com/documentation/uikit/uitextinputtraits/2865931smartquotestype/).
Хранилище связки ключей
Многие приложения хранят секретную информацию с помощью API службы связки ключей (keychain service), зашифрованной базы дан- ных, предоставляемой платформой. В симуляторе iOS вы можете
Взлом мобильных приложений 407
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|||
извлечь эти секреты, открыв простую базу данных SQL. Возможно, |
|
|
|
to |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
m |
||
w Click |
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
df-x chan |
|
o |
|
|||||
вам потребуется использовать команду vacuum для слияния данных |
. |
.c |
|
||||||||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
из механизма предварительного журналирования SQLite. Этот попу- лярный механизм разработан для обеспечения устойчивости систем с несколькими базами данных.
Если приложение установлено на физическом устройстве, вам сначала потребуется взломать устройство, а затем использовать сто- ронний инструмент для получения дампа записей связки ключей. Возможные инструменты включают в себя Keychain Dumper (https:// github.com/ptoomey3/Keychain-Dumper/), инструмент IDB (https://github. com/dmayer/idb) и Needle (https://github.com/FSecureLABS/needle/). В симу-
ляторе iOS вы также можете использовать анализатор связки ключей iGoat, включенный в приложение iGoat. Этот инструмент работает только с приложением iGoat.
Используя полученные записи, теперь вы можете решить задачу Keychain Usage (Применение связки ключей) категории Data Protec- tion (Rest) в функциональных возможностях приложения.Вы должны предварительно раскомментировать вызов функции [self storeCredentialsInKeychain] в файле iGoat/Keychain/KeychainExerciseView-
Controller.m, чтобы настроить приложение для использования API хранилища ключей.
Реверс-инжиниринг двоичного кода
Разработчики обычно скрывают секреты в бизнес-логике исходного кодаприложения.Посколькуисходныйкодневсегдадоступен,мыис- следуемдвоичныйфайл,изменивкодсборки.Дляэтойцеливыможе- те использовать инструмент с открытым исходным кодом, такой как
Radare2 (https://rada.re/n/).
Перед исследованием мы должны «проредить» двоичный файл. Прореживание двоичного файла изолирует только исполняемый код конкретной архитектуры. Вы можете найти версии двоичного фай- ла iOS в формате MACH0 или FATMACH0, который включает испол- няемые файлы ARM6, ARM7 и ARM64. Нам нужно проанализировать только один из них – исполняемый файл ARM64, который легко из- влечь с помощью команды rabin2:
$ rabin2 -x iGoat
iGoat.fat/iGoat.arm_32.0 created (23729776) iGoat.fat/iGoat.arm_64.1 created (24685984)
Затем загрузите и выполните начальный анализ двоичного файла, используя команду r2:
$ r2 -A iGoat.fat/iGoat.arm_64.1
[x] Analyze all flags starting with sym. and entry0 (aa) [x] Analyze function calls (aac)
408 Глава 14
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
...
[0x1000ed2dc]> fs 6019 * classes
35 * functions
442 * imports
…
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Анализсвяжетимена,называемыефлагами,сопределеннымисме- щениями в двоичном файле,такими как разделы, функции, символы и строки.Мы можем получитьсводку этих флагов,используя команду fs , и получить более подробный список, используя команду fs; f.
Используйте команду iI для получения информации о двоичном файле:
[0x1000ed2dc]> iI~crypto
crypto false [0x1000ed2dc]> iI~canary
canary true
Проверьте возвращенные флаги компиляции. Те, что мы видим здесь,указывают на то,что конкретный двоичный файл был скомпи- лирован с помощью Stack Smashing Protection ,но не был зашифро-
ван Apple Store .
Поскольку приложения для iOS обычно пишутся на Objective-C, Swift или C++, они хранят всю символьную информацию в двоичном файле; вы можете загрузить его с помощью скрипта ojbc.pl,включен- ного в пакет Radare2. Этот скрипт генерирует команды оболочки на основе этих символов и соответствующих адресов,которые вы може- те использовать для обновления базы данных Radare2:
$ objc.pl iGoat.fat/iGoat.arm_64.1
f objc.NSString_oa_encodedURLString = 0x1002ea934
Теперь,когдавсесуществующиеметаданныезагруженывбазудан- ных, мы можем искать определенные методы и использовать коман ду pdf для получения ассемблерного кода:
[0x003115c0]> |
fs; f | grep Broken |
|
|
0x1001ac700 0 |
objc.BrokenCryptographyExerciseViewController_getPathForFilename |
||
0x1001ac808 1 |
method.BrokenCryptographyExerciseViewController.viewDidLoad |
||
… |
|
|
|
[0x003115c0]> |
pdf @method.BrokenCryptographyExerciseViewController.viewDidLoad |
||
| (fcn) sym.func.1001ac808 (aarch64) 568 |
|||
| sym.func.1001ac808 (int32_t arg4, int32_t arg2, char *arg1); |
|||
| ||||||| |
; |
var void *var_28h @ fp-0x28 |
|
| ||||||| |
; |
var int32_t var_20h |
@ fp-0x20 |
| ||||||| |
; |
var int32_t var_18h |
@ fp-0x18 |
|
|
|
|
Взлом мобильных приложений 409