Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
moria — Identificação e extração de firmware IoT | Kitploit
Ferramentas/GitHubGitHub/nmatt0/moria
Segurança de Sistemas EmbarcadosSegurança IoTEngenharia ReversaColeta de InformaçõesAnálise de MalwareForensia DigitalUtilitários e FrameworksSegurança de Hardware e IoTAnálise de BináriosAnálise de Firmware
GitHub
320399há 6 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
nmatt0/moria

moria

Identificação e extração de firmware IoT

Ver Repositório

moria

Identificação e extração de firmware de IoT

moria identifica arquivos e as estruturas embutidas em firmware e imagens de IoT (sistemas de arquivos, kernels, bootloaders, arquivos compactados, chaves) e desempacota a maior parte do que encontra, sem root. Ele reporta cada descoberta com um deslocamento em bytes, um tipo e uma pontuação de confiança, e fala JSON limpo para que scripts e agentes LLM possam conduzi-lo tão facilmente quanto pessoas.

Por que moria

  • Extrai um amplo conjunto de sistemas de arquivos em processo, sem sudo: SquashFS, ext2/3/4, F2FS, XFS, btrfs, HFS+, NTFS, EROFS, JFFS2, UBIFS e mais.
  • Recursivo por padrão. Um SquashFS envolto em gzip dentro de um volume UBI desempacota até o fim.
  • Sinaliza executáveis empacotados. Detecta ELF/PE/Mach-O empacotados com UPX em várias arquiteturas a partir do trailer PackHeader verificado por checksum (formato, método e tamanhos), e sinaliza stubs cujo cabeçalho foi zerado ou alterado para derrotar upx -d.
  • Determinístico. A mesma entrada sempre produz a mesma saída; a resolução de conflitos não tem desempate aleatório.
  • Seguro com entrada hostil. Toda leitura é verificada quanto a limites, toda escrita passa por openat + O_NOFOLLOW (sem path-traversal ou escape por symlink), e a descompressão é limitada contra bombs.
  • Identificação em primeiro lugar. Uma árvore legível por padrão, JSON (-j) para ferramentas, com deslocamentos e confiança em cada descoberta.

Compilação e Instalação

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

A compilação precisa de cmake, um compilador C++20 e as bibliotecas de desenvolvimento zlib, liblzma, lz4 e zstd (os descompressores usados por --extract). No Debian/Ubuntu: sudo apt install cmake g++ zlib1g-dev liblzma-dev liblz4-dev libzstd-dev. Para compilar sem uma delas (uma compilação mínima ou apenas de identificação), configure com -DMORIA_OPTIONAL_CODECS=ON e o codec ausente é simplesmente desabilitado.

O binário moria é autocontido: todos os conjuntos de assinaturas são embutidos em tempo de compilação, então o binário funciona em qualquer lugar sem nada instalado ao lado dele (cp build/moria ~/.local/bin é suficiente, e um binário de release baixado simplesmente executa). Para usar assinaturas externas em vez das embutidas (para testar um novo .toml sem recompilar, por exemplo), passe --sigs DIR ou defina $MORIA_SIGDIR.

Uso

A saída é legível por humanos por padrão. Passe -j para 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

Extração

-e desempacota formatos reconhecidos em <file>.extracted/, um diretório por região (0x<offset>-<type>/), mais um manifest.json mapeando deslocamentos para caminhos. Ele recorre automaticamente em contêineres aninhados e reconstrói imagens UBI volume por volume. Guardas (--depth, --max-files, --max-bytes e um limite de taxa de descompressão) limitam entrada hostil; uma guarda acionada interrompe aquele ramo e ainda retorna tudo o que foi recuperado.

Desempacotado em processo, sem ferramentas externas e sem sudo:

  • Sistemas de arquivos: SquashFS, ext2/3/4, F2FS, FAT12/16/32, exFAT, NTFS, HFS+/HFSX, XFS, btrfs, JFFS2, UBI/UBIFS, romfs, YAFFS2, cramfs, EROFS
  • Arquivos compactados e imagens: ZIP, tar, cpio, ISO 9660, Android sparse, Android boot
  • Kernels e wrappers: U-Boot uImage, U-Boot FIT, streams standalone gzip / xz / zstd / lz4
  • Pacotes de firmware: RAE Systems / Honeywell RFP (tabela de seções; descomprime cada seção com LZARI)

Assinaturas

  • signatures/ é o núcleo escrito à mão: sistemas de arquivos de firmware, contêineres, kernels e formatos comuns, cada um com validação estrutural.
  • signatures-firmware/ contém magics de contêineres de firmware de fornecedores e carrega por padrão.
  • signatures-generated/ contém ~2.5k magics de tipos de arquivo gerais derivados do banco de dados de magic do file(1) e carrega apenas com --broad.

Para adicionar um formato, coloque um .toml em signatures/. Um pequeno validador C++ só é necessário para verificações que a camada declarativa não consegue expressar, como CRCs ou ponteiros entre blocos.

Escopo

moria faz identificação estrutural, extração e carving. Varredura de segredos/credenciais, SBOM, CVE e análise de licenças são uma ferramenta separada (mithril).

Licença

MIT, veja LICENSE.

Parte do tratamento de formatos em disco é uma reimplementação limpa dos algoritmos em outros projetos de código aberto, escrita de forma independente sobre a própria camada de I/O do moria (nenhum código-fonte copiado): o descompressor UCL/NRV2B e os unfilters CTO do UPX/UCL (GPL-2.0, apenas algoritmos), e o layout de metadata-commit e CTZ skip-list do littlefs (BSD-3-Clause), e o layout de página/objeto do SPIFFS (MIT).

Baixar ferramenta