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

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

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

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

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

Категории

Все категории
Loading categories
moria — Идентификация и извлечение прошивок IoT | Kitploit
Инструменты/GitHubGitHub/nmatt0/moria
Безопасность встроенных системБезопасность IoTОбратная инженерияСбор информацииАнализ вредоносных программЦифровая криминалистикаУтилиты и фреймворкиБезопасность оборудования и IoTАнализ Бинарных ФайловАнализ Прошивок
GitHub
3203996 дней назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
nmatt0/moria

moria

Идентификация и извлечение прошивок IoT

Репозиторий

moria

Идентификация и извлечение прошивок IoT

moria идентифицирует файлы и структуры, встроенные в прошивки и образы IoT (файловые системы, ядра, загрузчики, архивы, ключи), и распаковывает большую часть найденного без root. Она сообщает о каждой находке с байтовым смещением, типом и оценкой достоверности, и выдаёт чистый JSON, так что скрипты и LLM-агенты могут управлять ею так же легко, как и люди.

Зачем moria

  • Извлекает широкий набор файловых систем в процессе, без sudo: SquashFS, ext2/3/4, F2FS, XFS, btrfs, HFS+, NTFS, EROFS, JFFS2, UBIFS и другие.
  • Рекурсивна по умолчанию. SquashFS, обёрнутый в gzip, внутри тома UBI распаковывается до самого низа.
  • Обнаруживает упакованные исполняемые файлы. Определяет UPX-упакованные ELF/PE/Mach-O для разных архитектур по проверенному контрольной суммой трейлеру PackHeader (формат, метод и размеры), а также помечает заглушки, чей заголовок был обнулён или изменён для обхода upx -d.
  • Детерминирована. Один и тот же вход всегда даёт один и тот же выход; разрешение конфликтов не имеет случайного разрешения ничьей.
  • Безопасна на враждебном входе. Каждое чтение проверяется на границы, каждая запись проходит через openat + O_NOFOLLOW (без обхода пути или выхода через символические ссылки), а декомпрессия ограничена против бомб.
  • Сначала идентификация. Читаемое дерево по умолчанию, JSON (-j) для инструментов, со смещениями и достоверностью для каждой находки.

Сборка и установка

root@kitploit:~
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
cmake --install build --prefix ~/.local     # or /usr/local (needs sudo)

Для сборки нужны cmake, компилятор C++20 и библиотеки разработки zlib, liblzma, lz4 и zstd (декомпрессоры, используемые --extract). В Debian/Ubuntu: sudo apt install cmake g++ zlib1g-dev liblzma-dev liblz4-dev libzstd-dev. Чтобы собрать без одной из них (минимальная сборка или сборка только для идентификации), настройте с -DMORIA_OPTIONAL_CODECS=ON, и отсутствующий кодек просто будет отключён.

Бинарный файл moria самодостаточен: все наборы сигнатур встраиваются во время сборки, поэтому бинарник работает где угодно без ничего установленного рядом (cp build/moria ~/.local/bin достаточно, а скачанный релизный бинарник просто запускается). Чтобы использовать внешние сигнатуры вместо встроенных (например, протестировать новый .toml без пересборки), передайте --sigs DIR или установите $MORIA_SIGDIR.

Использование

Вывод по умолчанию удобочитаем для человека. Передайте -j для JSON.

root@kitploit:~
moria <file>              # identify: a findings tree with offsets, types, and confidence
moria <dir>               # scan a tree: a type summary plus the notable files
moria -j <file>           # JSON, for tools and agents
moria -e <file>           # extract to <file>.extracted/   (-C DIR to choose the output dir)
moria -c <file>           # carve raw byte ranges to <file>.carved/ (no parsing)
moria -E <file>           # entropy pass: flag unidentified / possibly-encrypted regions
moria --list <archive>    # list tar/cpio/zip members without extracting
moria --broad <path>      # also load the ~2.5k general file-type signatures
moria --help

Извлечение

-e распаковывает распознанные форматы в <file>.extracted/, по одному каталогу на регион (0x<offset>-<type>/), плюс manifest.json, сопоставляющий смещения с путями. Она автоматически рекурсирует во вложенные контейнеры и пересобирает образы UBI том за томом. Защитные ограничения (--depth, --max-files, --max-bytes и предел коэффициента декомпрессии) ограничивают враждебный вход; сработавшее ограничение останавливает эту ветвь и всё равно возвращает всё восстановленное.

Распаковывается в процессе, без внешних инструментов и без sudo:

  • Файловые системы: SquashFS, ext2/3/4, F2FS, FAT12/16/32, exFAT, NTFS, HFS+/HFSX, XFS, btrfs, JFFS2, UBI/UBIFS, romfs, YAFFS2, cramfs, EROFS
  • Архивы и образы: ZIP, tar, cpio, ISO 9660, Android sparse, Android boot
  • Ядра и обёртки: U-Boot uImage, U-Boot FIT, автономные потоки gzip / xz / zstd / lz4
  • Пакеты прошивок: RAE Systems / Honeywell RFP (таблица секций; LZARI-декомпрессия каждой секции)

Сигнатуры

  • signatures/ — это написанное вручную ядро: файловые системы прошивок, контейнеры, ядра и распространённые форматы, каждый со структурной валидацией.
  • signatures-firmware/ содержит магические сигнатуры контейнеров прошивок производителей и загружается по умолчанию.
  • signatures-generated/ содержит ~2.5k магических сигнатур общих типов файлов, полученных из базы магических сигнатур file(1), и загружается только с --broad.

Чтобы добавить формат, положите .toml в signatures/. Небольшой валидатор на C++ нужен только для проверок, которые не может выразить декларативный слой, таких как CRC или межблочные указатели.

Область применения

moria выполняет структурную идентификацию, извлечение и карвинг. Сканирование секретов/учётных данных, SBOM, CVE и анализ лицензий — это отдельный инструмент (mithril).

Лицензия

MIT, см. LICENSE.

Некоторая обработка дисковых форматов является чистой переработкой алгоритмов из других open-source проектов, написанной независимо поверх собственного слоя ввода-вывода moria (исходный код не копировался): декомпрессор UCL/NRV2B и CTO-расфильтры из UPX/UCL (GPL-2.0, только алгоритмы), а также компоновка metadata-commit и CTZ skip-list из littlefs (BSD-3-Clause), и компоновка страниц/объектов из SPIFFS (MIT).

Скачать инструмент