- •От издательства
- •О техническом обозревателе
- •О соавторах
- •Об авторах
- •Вступительное слово
- •Благодарности
- •Предисловие
- •Почему важна защита интернета вещей?
- •Чем защита интернета вещей отличается от традиционной ИТ-защиты?
- •Законы хакинга интернета вещей
- •Заключение
- •Моделирование угроз для интернета вещей
- •Схема моделирования угроз
- •Определение архитектуры
- •Разбивка архитектуры на компоненты
- •Выявление угроз
- •Использование деревьев атак для обнаружения угроз
- •Распространенные угрозы интернета вещей
- •Атаки с подавлением сигнала
- •Атаки с воспроизведением
- •Атаки со взломом настроек
- •Клонирование узла
- •Заключение
- •Пассивная разведка
- •Физический или аппаратный уровень
- •Периферийные интерфейсы
- •Среда загрузки
- •Блокировки
- •Предотвращение и обнаружение несанкционированного доступа
- •Прошивка
- •Интерфейсы отладки
- •Физическая устойчивость
- •Разведка
- •Атаки на сетевой протокол и службы
- •Тестирование беспроводного протокола
- •Оценка веб-приложений
- •Картирование приложений
- •Элементы управления на стороне клиента
- •Аутентификация
- •Управление сеансом
- •Проверка ввода
- •Логические ошибки
- •Сервер приложений
- •Исследование конфигурации хоста
- •Учетные записи пользователей
- •Привилегии учетной записи
- •Уровни патчей
- •Удаленное обслуживание
- •Управление доступом к файловой системе
- •Шифрование данных
- •Неверная конфигурация сервера
- •Мобильное приложение и облачное тестирование
- •Заключение
- •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 |
|
|
||||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Более дешевый, но гораздо более медленный способ определения |
|
|
|
|
|
|
m |
||||
w Click |
|
|
|
|
|
|
|
||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
распиновки JTAG – использование утилиты JTAGenum (https://github.f-x chan |
|
.c |
|
||||||||
|
. |
|
|
|
|
|
|
|
|||
|
|
p |
d |
|
|
|
|
e |
|
||
|
|
|
|
|
|
g |
|
|
|
com/cyphunk/JTAGenum/),загруженнойнаArduino-совместимыймикро- контроллер, например на модули STM32F103 Black/Blue Pill, атаку на которые мы опишем в разделе «Взлом устройства с помощью UART иSWD».ИспользуяJTAGenum,высначаладолжныопределитьконтак- ты зондирующего устройства,которое будете использоватьдля пере- числения.Например,для модуля STM32 Blue Pill мы выбрали следую- щие контакты (но вы можете их изменить):
#elif |
defined(STM32) |
// STM32 bluepill, |
byte |
pins[] = |
{ 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17, 18 , 19 , 21 , 22 }; |
|
|
|
Вам нужно будет обратиться к схеме выводов устройства,а затем со- единитьэтиконтакты сконтрольнымиточками нацелевом устройстве.
Затем нужно прошить код JTAGenum Arduino (https://github.com/cyphunk/
JTAGenum/blob/master/JTAGenum.ino/)наустройствеисвязатьсяснимчерез последовательный порт (командаs просканирует комбинации JTAG).
Третий способ идентифицировать контакты JTAG – проверить пе- чатную плату на наличие одного из разъемов,показанных на рис.7.8. В некоторых случаях печатные платы могут удобно предоставлять интерфейс Tag-Connect, что ясно указывает на то, что на плате также есть разъем JTAG. Вы можете увидеть, как выглядит этот интерфейс,
на странице https://www.tag-connect.com/info/. Кроме того, проверка та-
блиц наборов микросхем на печатной плате может выявить схемы распиновки, указывающие на интерфейсы JTAG.
Рис.7.8.Обнаружение любого из этих контактных интерфейсов на печатной плате определенного производителя (ARM,STMicroelectronics или Infineon для OCDS) –надежный признак того,что вы имеете дело с разъемом JTAG
Взлом устройства с помощью UART и SWD
В этом разделе мы воспользуемся портами UART и SWD микроконт роллера, чтобы получить данные из памяти устройства и обойти процедуру аутентификации прошитой программы. Для атаки на устройство будем использоватьдва инструмента: программатор mini ST-Link и адаптер USB-UART.
Уязвимости портов UART,JTAG и SWD 203
|
|
|
|
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 |
|
|
|
|
Программатор mini ST-Link (рис. 7.9) позволяет нам ствовать с целевым устройством через SWD.
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
взаимодей- |
|
|
to |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
m |
||
w Click |
|
|
|
|
|
|
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Рис.7.9.Программатор mini ST-Link V2 позволяет взаимодействовать с ядрами STM32 через SWD
Адаптер USB-UART (рис. 7.10) позволяет связываться с выводами UART устройства через USB-порт нашего компьютера. Этот адаптер представляет собой устройство транзисторно-транзисторной логики (TTL),т.е.он использует напряжения 0 и 5 В для представления логи- ческих уровней 0 и 1 соответственно. Многие адаптеры используют микросхему FT232R, и вы можете легко найти ее, если поищете в ин- тернете адаптеры USB для последовательного порта.
Рис.7.10.Адаптер USB-UART (TTL),который может переключаться между рабочими напряжениями 5 и 3,3 В
Вам понадобится как минимум десять проводов-перемычек, чтобы соединить устройства между собой. Также рекомендуем приобрести макетную плату, на которой можно надежно установить модуль Black Pill. У вас должна быть возможность приобрести эти аппаратные ком- поненты в интернете. Мы специально выбрали компоненты, исполь- зуемые здесь, потому что их легко найти и они недороги. Но если вам нужна альтернатива программатору ST-Link, можете использовать Bus Blaster,авкачествеальтернативыадаптеруUSB-UART–платуBusPirate.
204 Глава 7
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Что касается программного обеспечения, мы будем использовать |
|
|
|
|
|
m |
||||
w Click |
|
|
|
|
|
|
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
Arduino для кодирования программы аутентификации, которую мыdf-x chan |
.c |
|
||||||||
|
. |
|
|
|
|
|
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
e |
|
атакуем; для отладки подойдет OpenOCD с GDB. В следующих разде- лах показано, как настроить эту среду тестирования и отладки.
Целевое устройство STM32F103C8T6 (Black Pill)
STM32F103xx – очень популярное семейство недорогих микрокон- троллеров, используемых во множестве приложений на промыш- ленных, медицинских и потребительских рынках. Такой микрокон- троллер имеет 32-разрядное ядро RISC ARM Cortex-M3, работающее на частоте 72 МГц, флеш-память объемом до 1 МБ, статическую па- мять с произвольным доступом (SRAM) объемом до 96 КБ и широкий спектр устройств ввода/вывода и периферийных устройств.
Две версии этого устройства известны как Blue Pill и Black Pill (в за- висимости от цвета платы). Мы будем использовать Black Pill (STM- 32F103C8T6) в качестве целевого устройства. Основное различие между двумя версиями заключается в том, что Black Pill потребляет меньше энергии и прочнее, чем Blue Pill. Устройство можно купить в интернет-магазинах. Рекомендуем заказать плату с предваритель- но распаянными гребенчатыми разъемами и прошитым загрузчиком Arduino:таким образом,вам не придется паятьразъемы,и вы сможе- те использовать устройство напрямую через USB.Но в этом упражне- нии мы покажем, как загрузить программу для Black Pill без загруз-
чика Arduino.
ПРЕДУПРЕЖДЕНИЕ Мы выбрали Black Pill, потому что столкнулись с некоторыми проблемами при использовании Blue Pill с интерфейсом UART. Настоятельно рекомендуем взять для эксперимента именно Black Pill вместо более дешевой версии Blue Pill.
На рис. 7.11 показано расположение выводов устройства. Обратите внимание,что не все контакты устойчивы к напряжению 5 В,поэтому мы не будем превышать 3,3 В. Если хотите узнать больше о внутрен- нем устройстве микроконтроллера STM32 в целом, вот очень хоро-
ший справочник: https://www.rlocman.ru/forum/showthread.php?t=22505.
Убедитесь,чтовынеподключаетевыход5Вникодномуизконтак- тов 3,3 В, иначе вы, скорее всего, выведете Black Pill из строя.
Настройка среды отладки
Начнем с программирования целевого устройства с помощью инте- грированной среды разработки (IDE) Arduino. Arduino – недорогая, простая в использовании электронная платформа с открытым исход- ным кодом, которая позволяет программировать микроконтролле- ры с помощью языка программирования Arduino. Его IDE содержит текстовый редактор для написания кода,менеджер плати библиотек, встроенные функции для проверки, компиляции и загрузки кода на
Уязвимости портов UART,JTAG и SWD 205
|
|
|
|
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 |
|
|
|||
плату Arduino и монитор последовательного порта для отображения |
|
|
to |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
m |
|||
|
w Click |
|
|
|
|
|
|
||||
|
w |
|
|
|
|
|
|
|
|
|
|
вывода с оборудования. |
|
w |
|
df-x chan |
|
o |
|
||||
|
. |
.c |
|
||||||||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
Рис.7.11.Расположение выводов STM32F103C8T6 (Black Pill)
Установка среды Arduino
ВыможетезагрузитьпоследнююверсиюIDEArduinoпоссылкеhttps:// www.arduino.cc/en/Main/Software/. В нашем примере используется вер- сия 1.8.9 в Ubuntu 18.04.3 LTS, но какая операционная система у вас, значения не имеет. В Linux загрузите пакет вручную и следуйте ин-
струкциям на веб-странице https://www.arduino.cc/en/guide/linux/.Кроме того, если вы используете дистрибутив на основе Debian, например Kali или Ubuntu, после ввода следующей команды в терминале будет установлено все, что вам нужно:
# apt-get install arduino
После установки IDE загрузите последние файлы ядра Arduino STM32 с GitHub,поместите их в папку оборудования в каталоге Ardu- ino sketches и запустите сценарий установки правил udev.
$ wget https://github.com/rogerclarkmelbourne/Arduino_STM32/archive/master.zip $ unzip master.zip
$ cp -r Arduino_STM32-master /home/ithilgore/Arduino/hardware/
206 Глава 7
|
|
|
|
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 |
|
|
||||
$ cd /home/ithilgore/Arduino/hardware/Arduino_STM 32-master/tools/linux |
|
|
|
|
to |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|||
w |
|
|
|
|
|
|
|
|
|
|
m |
||
$ ./install.sh |
w Click |
|
|
|
|
|
|
|
o |
||||
|
w |
|
|
|
|
|
|
|
|
|
|
||
|
. |
|
|
|
|
|
|
e |
|
||||
|
|
|
p |
df |
- |
|
|
|
g |
.c |
|
||
|
|
|
|
|
|
n |
|
|
|
|
|||
|
|
|
|
|
|
x cha |
|
|
|
|
|
Убедитесь, что вы заменили имя пользователя после /home/ ис- пользуемым вами именем пользователя. Если папки hardware не су- ществует, создайте ее. Чтобы узнать, где сохранены эскизы Arduino, запустите Arduino IDE, введя arduino в терминале или щелкнув зна- чок Arduino на рабочем столе. Затем выполните команды File > Pref- erences (Файл > Настройки) и укажите путь к файлу в поле Sketch- book location (Расположение папки файлов). В нашем примере это
/home/<ithilgore>/Arduino.
Вам также потребуется установить 32-разрядную версию libusb-1.0 следующим образом (потому что утилита st-link,которая поставляет- ся вместе с Arduino STM32, нуждается в ней):
$ sudo apt-get install libusb-1.0-0:i386
Кроме того, установите платы Arduino SAM (Cortex-M3). Это ядра микроконтроллера Cortex-M3. Ядра – это низкоуровневые API, ко- торые делают определенные микроконтроллеры совместимыми с вашей Arduino IDE. Вы можете установить их внутри Arduino IDE, щелкнув Tools > Board > Boards Manager (Инструменты > Плата > Менеджер плат). Затем найдите SAM Boards (Платы SAM). Нажми- те Install (Установить) на появившейся панели Arduino SAM Boards (32-битная ARM Cortex-M3). Мы использовали версию 1.6.12.
Последние инструкции по установке Arduino STM32 можно найти по адресу https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation/.
Установка OpenOCD
OpenOCD–бесплатныйинструментдлятестированиясоткрытымис- ходным кодом, который обеспечивает доступ JTAG и SWD через GDB к системам ARM, MIPS и RISC-V. Мы будем использовать его для от- ладки Black Pill.Чтобы установить его в вашей системе Linux,введите следующие команды:
$ sudo apt-get install libtool autoconf texinfo libusb-dev libftdi-dev libusb-1.0 $ git clone git://git.code.sf.net/p/openocd/code openocd
$ cd openocd $ ./bootstrap
$ ./configure --enable-maintainer-mode --disable-werror --enable-buspirate --enable-ftdi $ make
$ sudo make install
Обратите внимание, что вы также устанавливаете libusb-1.0, ко- торый потребуется для включения поддержки для устройств Future Technology Devices International (FTDI). Затем скомпилируйте Ope-
Уязвимости портов UART,JTAG и SWD 207