Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
workshop_firmware_reverse_engineering — Воркшоп по реверс-инжинирингу прошивок | Kitploit
Инструменты/GitHubGitHub/emproof-com/workshop_firmware_reverse_engineering
Безопасность встроенных системСтатический анализОбратная инженерияАнализ вредоносных программБезопасность оборудования и IoTАнализ Бинарных ФайловОбучение и ОбразованиеАнализ ПрошивокЛаборатории и Практика

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHubemproof-com/workshop_firmware_reverse_engineering

workshop_firmware_reverse_engineering

Воркшоп по реверс-инжинирингу прошивок

Репозиторий
44355211 месяцев назадПроверено Kitploit

Воркшоп: Реверс-инжиниринг прошивок

Этот репозиторий содержит слайды и практические материалы для воркшопа Emproof по реверс-инжинирингу прошивок, представленного на ScapyCon Automotive 2025. Воркшоп рассчитан на техническую аудиторию с минимальным опытом в безопасности и обучает основам на практических, самодостаточных задачах. Темы включают:

  • базовый анализ файлов/ELF;
  • взлом ПО и кейгенинг;
  • дешифрование строк и триаж вредоносных программ;
  • распаковка прошивок встраиваемого Linux;
  • анализ bare-metal;
  • обнаружение криптографии;
  • техники обфускации/антианализа и способы их обхода;

Если вам это интересно, также загляните в серию технических вебинаров Emproof с дополнительными упражнениями и записями сессий.

Содержание воркшопа разработано и организовано Тимом Блазитко при поддержке Симран Катпалии.

Настройка

Чтобы настроить окружение, склонируйте репозиторий:

root@kitploit:~
git clone https://github.com/emproof-com/workshop_firmware_reverse_engineering
cd workshop_firmware_reverse_engineering

Для ряда задач нам требуется среда выполнения AArch64 Linux. Мы предоставляем Docker-контейнер на основе Kali Linux с предустановленными распространёнными инструментами (например, GNU Binutils, Binwalk). Это унифицирует окружение в Linux, Windows и macOS — независимо от архитектуры процессора хоста. Чтобы запустить контейнер и войти в оболочку, выполните:

root@kitploit:~
./docker_run.sh

Примечание: Первый запуск может занять некоторое время на сборку образа.

Примечание (архитектура): Сервис Docker Compose задаёт platform: "linux/arm64".
На хостах x86_64 (Intel macOS/Windows/Linux) Docker Desktop будет запускать образ под эмуляцией, поэтому первая сборка и запуск могут быть медленнее — это ожидаемо. На нативных хостах ARM64 (Apple Silicon, ARM-серверы) он работает нативно и быстрее.

Примечание: Docker-контейнер также может запускать ARMv7 (armhf) бинарные файлы. Мы устанавливаем armhf runtime (динамический загрузчик + библиотеки) в образ и регистрируем обработчики binfmt для aarch64 и arm через стартовый скрипт.

Кроме того, установите следующие графические инструменты на вашем хосте для интерактивных задач по реверс-инжинирингу (они не включены в контейнер):

  • Ghidra
  • Binary Ninja Free

Оба инструмента доступны для Windows, Linux и macOS.

Примечание: Binary Ninja Free не поддерживает AArch64. Для анализа AArch64 используйте Ghidra (или лицензированную сборку Binary Ninja). Поэтому в некоторых лабораторных работах поставляется дополнительный ARMv7 бинарный файл (*.armv7) специально для Binary Ninja Free; их также можно запускать в том же контейнере.

Порядок задач

Каждая задача самодостаточна и находится в tasks/<name>/, и включает:

  • samples/ — бинарные файлы (а иногда и исходный код), используемые в упражнении
  • task.md — задание с пошаговыми инструкциями и подсказками

Задачи можно выполнять независимо, но мы предлагаем рекомендуемый порядок (перечислен ниже), который постепенно повышает сложность и знакомит с новыми техниками. Большинство образцов ориентированы на ARMv7 (Thumb/ARM32) или AArch64; где необходимо, в примечаниях к задачам указаны архитектура, требуемые инструменты и особые потребности среды выполнения.

  • tasks/hello_world: основы ELF-файлов и анализа метаданных; первые шаги в Ghidra / Binary Ninja.

  • tasks/license_check: извлечение захардкоженных секретов / разблокировка функций; базовый патчинг для обхода проверок (крэкинг).

  • tasks/game: простая игра «угадай число»; разберитесь в логике и взломайте пробный режим, чтобы получить полный.

  • tasks/keygenning_1: реверсирование проверки лицензии и написание минимального кейгена для генерации валидных серийников.

  • tasks/keygenning_2: немного более сложная задача на кейгенинг (соли/ключи, hex-кодирование).

  • tasks/string_encryption: бинарный файл с зашифрованными строками (часто встречается во вредоносном ПО); определите дешифратор и восстановите строки статически.

  • tasks/mirai: встраиваемое вредоносное ПО, использующее процедуру дешифрования строк; ориентируйтесь в большой кодовой базе, выявляйте интересные конструкции и работайте с обфусцированными строками.

  • tasks/embedded_linux_1: прошивка встраиваемого Linux с файловой системой; распакуйте, исследуйте и взломайте данные для входа в Linux (в стиле CTF).

  • tasks/embedded_linux_2: аналогично, но найдите и проанализируйте скрытый бинарный файл, которого там не должно быть.

  • tasks/car_demo: анализ bare-metal прошивки: определите архитектуру, плату, карту памяти, артефакты тулчейна; извлеките учётные данные Wi-Fi и конечные точки протокола.

Лицензия

Если не указано иное, все материалы воркшопа в этом репозитории распространяются под лицензией GNU General Public License, версия 2 (GPL-2.0). Полный текст см. в LICENSE.

Некоторые сторонние / внешние образцы исключены из GPL и предоставлены только для анализа/обучения (без распространения). Это:

  • tasks/mirai/samples/
  • tasks/embedded_linux_1/samples/
  • tasks/embedded_linux_2/samples/

Примечание: Если в подкаталоге есть собственный файл лицензии или заголовок, эта лицензия имеет приоритет для содержимого данного подкаталога.

Скачать инструмент
  • tasks/iot_diag: дамп bare-metal прошивки диагностического инструмента; восстановите раскладку памяти по даташиту, затем найдите пароль для разблокировки режима диагностики.

  • tasks/crypto_detection: AArch64 бинарный файл, выполняющий криптографические операции с захардкоженным AES-ключом; найдите вызов EVP и вычислите ключ/IV, чтобы расшифровать данные без программы.

  • tasks/license_check_anti_patching: анти-патчинг через контрольную сумму кода; разберитесь в CRC-защите и изучите способы её обхода.

  • tasks/fibonacci_obfuscation: чистая и обфусцированная реализации чисел Фибоначчи (флаттенинг switch, computed goto, непрозрачные предикаты, арифметическая обфускация, небольшая VM); разберитесь в этих техниках и нормализуйте их.