Binwalk

Analisar e extrair firmware

Abra o firmware. Encontre a estrutura. Extraia as provas. O Binwalk identifica e extrai ficheiros, sistemas de ficheiros, fluxos comprimidos, executáveis, carregadores de arranque, kernels e outros dados incorporados em firmware e imagens binárias — concebido para a investigação de segurança de firmware, a retroengenharia e a forense digital.

Transferir o BinwalkVer no GitHub

Gratuito e de código aberto · Binwalk 3.1.0 · Linux, macOS e Windows (WSL/Docker) · opções de instalação

Gravação animada de um terminal a mostrar o Binwalk a analisar e a extrair uma imagem de firmware

O que é o Binwalk?

Uma imagem de firmware raramente contém apenas um ficheiro. Pode conter camadas de dados comprimidos, cabeçalhos proprietários, componentes do sistema operativo, código de arranque, certificados, executáveis, ficheiros de configuração e sistemas de ficheiros completos — e localizar cada um deles manualmente é lento e propenso a erros.

O Binwalk automatiza a primeira fase da análise: percorre os dados binários à procura de estruturas conhecidas, valida os objetos que deteta e mostra onde começa cada componente reconhecido. Criado originalmente por Craig Heffner na ReFirm Labs, o Binwalk v3 reconstruiu o motor em Rust para obter velocidade, validação estrutural e taxas de falsos positivos mais baixas. É de código aberto sob a licença MIT e funciona como ferramenta de linha de comandos ou como biblioteca Rust.

Como funciona o Binwalk

Seis comandos cobrem a maior parte da análise de firmware — analisar, extrair, percorrer recursivamente, medir a entropia, registar e consultar.

1

Analisar e identificar

$ binwalk firmware.bin

Mapeie a estrutura interna de uma imagem: o Binwalk reporta os objetos reconhecidos por deslocamento (offset) decimal e hexadecimal, com tamanho, detalhes do formato, parâmetros de compressão, arquitetura, metadados do sistema de ficheiros e um nível de confiança para cada deteção.

2

Extrair conteúdo incorporado

$ binwalk -e firmware.bin

Extraia ficheiros, arquivos, fluxos comprimidos e sistemas de ficheiros reconhecidos com os extratores integrados ou utilitários externos suportados — sem cálculo manual de deslocamentos nem file carving.

3

Descompactar firmware aninhado

$ binwalk -Me firmware.bin

Analise recursivamente os ficheiros recém-extraídos para revelar arquivos dentro de sistemas de ficheiros, dados comprimidos dentro de partições e as camadas mais profundas de pacotes de atualização e firmware em camadas.

4

Localizar regiões desconhecidas

$ binwalk --entropy firmware.bin

Gere um gráfico de entropia para identificar as transições entre dados estruturados e regiões de alta entropia — a compressão, a cifragem ou o preenchimento que as assinaturas por si só não explicam.

5

Guardar resultados estruturados

$ binwalk --log=results.json firmware.bin

Exporte os resultados de assinaturas e de entropia em JSON para automação, relatórios, indexação, comparação ou transferência para outras ferramentas de análise.

6

Consultar as assinaturas suportadas

$ binwalk --list

Liste as assinaturas disponíveis na versão instalada, os seus nomes internos e o utilitário de extração associado a cada formato.

Porquê o Binwalk

Analisadores Rust personalizados, resultados com nível de confiança e saída pronta para automação — para que uma análise seja um ponto de partida fiável e não um amontoado de suposições.

Validação para além dos magic bytes

O Binwalk v3 utiliza analisadores (parsers) Rust personalizados para confirmar uma estrutura, calcular o tamanho de um objeto incorporado e decidir onde a análise prossegue — muito menos falsos positivos do que a simples correspondência de assinaturas de bytes.

Confiança em cada resultado

Cada deteção é classificada como elevada (metadados e dados validados), média (verificações de metadados coerentes aprovadas) ou baixa (apenas bytes identificadores) — para distinguir facilmente as deteções fiáveis das que exigem revisão manual.

Análise de entropia

Visualize a aleatoriedade dos dados para identificar onde começa e termina uma partição comprimida, se uma imagem contém várias regiões e que secções inexplicadas podem estar cifradas, preenchidas ou desconhecidas.

Análises focadas

As imagens de grande dimensão contêm milhares de objetos. Exclua conteúdos multimédia ruidosos, limite-se a assinaturas selecionadas ou percorra cada deslocamento para uma análise exaustiva — para que os resultados se mantenham legíveis em trabalhos urgentes.

Concebido para automação

A saída em JSON alimenta scripts, pipelines de CI e plataformas forenses. A biblioteca Rust do Binwalk integra-se diretamente em aplicações quando a execução por linha de comandos e a análise de JSON não bastam.

Análise totalmente local

Tudo é executado no seu próprio ambiente — imagens de produtos sensíveis, builds não publicados e provas forenses nunca precisam de ser carregados. Para amostras não fiáveis, trabalhe dentro de uma máquina virtual ou de um contentor.

Formatos suportados

Mais de 100 assinaturas de ficheiros e de dados em formatos de firmware, de sistema operativo, de arquivo, de sistema de ficheiros, de executáveis e relacionados com segurança.

Firmware & formatos de arranque

TRXuImageAndroid bootAndroid sparseUEFI capsuleUEFI volumeDevice tree (DTB)CFE bootloaderMatter OTAD-Link / TP-Link / Dahua

Sistemas de ficheiros & estruturas de disco

SquashFSJFFS2UBIUBIFSEXTFATNTFSAPFSBTRFSCramFSRomFSYAFFSISO9660MBRGPT/EFI

Compressão & arquivos

gzipLZMAXZZIP7-Zipbzip2LZ4LZFSELZOZstandardRARCPIOTARCABARJ

Executáveis & sistema

ELFWindows PELinux kernelARM / ARM64 bootWindows CEVxWorksQNXQEMU disk image

Segurança & criptografia

Certificados PEMChaves públicas / privadasCabeçalhos LUKSCifrado com OpenSSLTabelas AESChaves de sessão RSAConstantes de hashFicheiros assinados

Os formatos disponíveis e as capacidades de extração variam consoante a versão do Binwalk e os utilitários externos instalados no sistema.

Quem utiliza o Binwalk

Da investigação de segurança ao desenvolvimento embebido — onde quer que o firmware e os dados binários precisem de ser abertos.

Investigação de segurança de firmware & IoT

Mapeie pacotes de atualização, recupere sistemas de ficheiros incorporados, inspecione scripts de arranque, localize ficheiros de configuração e prepare o firmware para a análise de vulnerabilidades.

Equipas de segurança de produto & PSIRT

Faça a triagem de firmware de routers, câmaras, dispositivos industriais, eletrodomésticos, sistemas automóveis e produtos conectados antes de uma análise estática mais aprofundada ou de emulação.

Retroengenharia

Decomponha contentores proprietários em componentes mais pequenos, identifique limites internos, localize código executável e reduza a quantidade de dados desconhecidos que é necessário inspecionar manualmente.

Forense digital & resposta a incidentes

Extraia artefactos de imagens de dispositivos, identifique payloads incorporados e exporte resultados estruturados para fluxos de trabalho forenses reproduzíveis.

Desenvolvimento embebido

Inspecione imagens de versão, verifique os componentes esperados, compare disposições de firmware e integre a análise binária nas suas ferramentas de desenvolvimento ou de garantia de qualidade.

Hardware hacking & formação

Passe rapidamente de uma imagem flash capturada ou de um ficheiro de atualização do fabricante para um sistema de ficheiros raiz extraído, um kernel, um carregador de arranque e a configuração específica do dispositivo.

Instalar o Binwalk

Linux 64 bits (Cargo)

O Linux é a plataforma oficialmente suportada para o Binwalk v3, sendo as distribuições baseadas em Ubuntu as que oferecem a instalação mais previsível. Alguns sistemas de ficheiros e formatos de arquivo necessitam de utilitários externos adicionais.

$ cargo install binwalk

macOS & Linux (Homebrew)

O Homebrew fornece uma instalação empacotada para ambientes macOS e Linux suportados.

$ brew install binwalk

Docker

O Docker oferece um ambiente reproduzível com dependências controladas, bem adequado a uma análise de firmware isolada.

$ sudo docker run -t -v "$PWD":/analysis binwalkv3 -Me firmware.bin

Windows (WSL ou Docker)

Para o fluxo de trabalho Windows mais previsível, execute o Binwalk dentro do WSL ou do Docker. As builds nativas de Windows podem compilar, mas os testes e o suporte por parte do projeto permanecem limitados.

$ wsl -- cargo install binwalk

Obter o código-fonte do Binwalk

Transfira o arquivo de código-fonte do Binwalk 3.1.0 para compilar a partir do código-fonte, inspecionar a implementação, contribuir com assinaturas e analisadores, ou integrar a biblioteca Rust no seu próprio projeto. A análise permanece local — trate o código extraído como não fiável e mantenha as amostras desconhecidas isoladas.

Arquivo de código-fonte (.zip) · Binwalk 3.1.0 · Licença MIT

Perguntas frequentes

O que é o Binwalk?

O Binwalk é uma ferramenta de análise de firmware de código aberto que identifica e extrai ficheiros, sistemas de ficheiros, dados comprimidos, executáveis, carregadores de arranque, kernels, certificados e outras estruturas incorporadas em imagens binárias. É habitualmente utilizado na investigação de segurança de firmware, na retroengenharia, na forense digital, no desenvolvimento embebido, no hardware hacking e em investigações de segurança de produto.

Para que serve o Binwalk?

O Binwalk ajuda os analistas a compreender a estrutura interna do firmware e de outros ficheiros binários. As utilizações típicas incluem a extração de sistemas de ficheiros incorporados, a localização de regiões comprimidas ou cifradas, a identificação de código executável, a recuperação de ficheiros de configuração, a inspeção de pacotes de atualização de dispositivos, a comparação de disposições de firmware e a preparação de imagens binárias para uma análise de segurança mais aprofundada.

A quem se destina o Binwalk?

O Binwalk destina-se a investigadores de segurança, engenheiros de retroengenharia, testadores de intrusão, analistas forenses, programadores embebidos, hardware hackers, equipas de segurança de produto e a qualquer pessoa que trabalhe com firmware ou dados binários. Suporta tanto a inspeção rápida por linha de comandos como fluxos de trabalho de análise automatizada mais avançados.

Que tipos de ficheiros o Binwalk pode analisar?

O Binwalk pode analisar imagens de firmware, dumps de memória flash, pacotes de atualização de dispositivos, imagens de disco, imagens de arranque, executáveis, arquivos, fluxos comprimidos e outros ficheiros binários. O ficheiro não necessita de uma extensão padrão — o Binwalk analisa os dados binários subjacentes em vez de depender do nome do ficheiro.

O Binwalk pode extrair ficheiros do firmware?

Sim. O Binwalk pode extrair automaticamente muitos ficheiros, arquivos, fluxos comprimidos e sistemas de ficheiros reconhecidos. Alguns formatos são tratados por lógica de extração integrada, enquanto outros exigem utilitários adicionais instalados no sistema. O suporte para deteção e extração pode variar consoante o formato e a versão do Binwalk instalada. Uma extração básica utiliza binwalk -e firmware.bin.

O Binwalk pode descompactar recursivamente firmware aninhado?

Sim. A extração recursiva permite ao Binwalk analisar os ficheiros criados durante o processo de extração. Isto é útil quando o firmware contém várias camadas — por exemplo, um pacote de atualização do fabricante que contém uma partição comprimida, que por sua vez contém um sistema de ficheiros, arquivos e executáveis incorporados. Um comando recursivo comum é binwalk -Me firmware.bin.

O que mostra uma análise de entropia?

Uma análise de entropia visualiza quão aleatórias ou repetitivas parecem as diferentes regiões de um ficheiro binário. As regiões de alta entropia contêm frequentemente dados comprimidos ou cifrados; as regiões de baixa entropia podem conter texto, registos estruturados, preenchimento ou dados repetitivos. A análise de entropia não prova que uma região está cifrada ou comprimida, mas revela limites e áreas inexplicadas que merecem uma investigação mais aprofundada.

Qual é a precisão das assinaturas do Binwalk?

A precisão depende do formato, do analisador disponível e do nível de validação estrutural possível. O Binwalk v3 pode validar muitos objetos detetados para além dos seus bytes identificadores iniciais, o que ajuda a reduzir os falsos positivos, a calcular o tamanho dos objetos e a fornecer metadados mais úteis. Ainda assim, os resultados devem ser tratados como indícios para uma análise posterior e não como uma conclusão definitiva.

O Binwalk funciona localmente?

Sim. O Binwalk é executado localmente no sistema do analista. As imagens de firmware, as builds não publicadas, os ficheiros de clientes e as provas forenses não precisam de ser carregados para um serviço externo, o que torna o Binwalk adequado para investigação sensível e ambientes controlados. Ainda assim, o firmware não fiável deve ser analisado dentro de uma máquina isolada, uma máquina virtual ou um contentor.

Que sistemas operativos suportam o Binwalk?

O Binwalk v3 é desenvolvido e testado sobretudo para sistemas Linux de 64 bits. Também pode ser instalado através do Homebrew em ambientes macOS e Linux suportados. Os utilizadores de Windows podem executar o Binwalk através do WSL ou do Docker para uma configuração mais previsível. A compatibilidade nativa, as ferramentas de extração disponíveis e os requisitos de instalação podem variar consoante a plataforma.

Como se instala o Binwalk?

O Binwalk pode ser instalado através do Cargo (cargo install binwalk), do Homebrew (brew install binwalk), do Docker, ou compilando o projeto a partir do código-fonte no GitHub. Algumas funcionalidades de extração necessitam de utilitários externos que podem não ser instalados automaticamente com o pacote principal.

O Binwalk é gratuito e de código aberto?

Sim. O Binwalk é software de código aberto distribuído sob a licença MIT. O código-fonte pode ser inspecionado, modificado, integrado noutro software e utilizado em ambientes comerciais ou não comerciais nos termos da licença.

O Binwalk pode ser integrado em ferramentas automatizadas?

Sim. O Binwalk pode exportar os resultados da análise em JSON estruturado para scripts, pipelines de CI, sistemas forenses, plataformas de processamento de firmware e ferramentas de segurança internas. O Binwalk v3 também pode ser utilizado como biblioteca Rust, permitindo que as aplicações analisem dados binários diretamente sem depender apenas da execução por linha de comandos.

Quem criou o Binwalk?

O Binwalk foi originalmente criado por Craig Heffner na ReFirm Labs para simplificar a identificação e a extração de dados incorporados em imagens de firmware. Tornou-se uma ferramenta amplamente utilizada na segurança de firmware, na retroengenharia, na forense digital, nos testes de intrusão e na investigação de hardware. O Binwalk v3 reconstruiu o motor de análise em Rust, com um foco reforçado no desempenho, na validação estrutural, na extração e na redução de falsos positivos.

O Binwalk é um scanner de segurança de firmware completo?

Não. O Binwalk é uma ferramenta de identificação, extração e análise de firmware. Expõe os componentes existentes numa imagem binária, mas não determina automaticamente se cada componente extraído é seguro ou vulnerável. Um fluxo de trabalho completo de segurança de firmware pode também incluir desmontagem (disassembly), descompilação, emulação, análise de composição de software, deteção de segredos, revisão de configuração, análise criptográfica, investigação de vulnerabilidades e testes em hardware autorizado.

O Binwalk está disponível para Windows?

O Binwalk dá prioridade ao Linux, mas funciona bem no Windows através do WSL (Subsistema Windows para Linux) ou de um contentor Docker, que oferecem o ambiente mais próximo do oficialmente suportado. No WSL, pode instalá-lo com cargo install binwalk e analisar ficheiros a partir das suas unidades de Windows. As builds nativas de Windows podem compilar, mas recebem testes limitados por parte do projeto.

Comece pelo binário. Chegue às provas mais depressa.

Mapeie a imagem de firmware, extraia os seus componentes internos e identifique as regiões inexplicadas — código aberto, licenciado sob MIT e analisado inteiramente na sua própria máquina.