Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
ghidra-firmware-utils — Extensión de Ghidra para ingeniería inversa de firmware de PC, que proporciona cargadores para ROMs de opción PCI, Intel Flash Descriptor, coreboot CBFS y volúmenes de firmware UEFI, además de scripts auxiliares UEFI para recuperación de tipos e identificación de GUID. | Kitploit
Ferramentas/GitHubGitHub/al3xtjames/ghidra-firmware-utils
Segurança de Sistemas EmbarcadosEngenharia ReversaSegurança de HardwareSegurança de Hardware e IoTAnálise de BináriosAnálise de Firmware
GitHubal3xtjames/ghidra-firmware-utils

ghidra-firmware-utils

Extensión de Ghidra para ingeniería inversa de firmware de PC, que proporciona cargadores para ROMs de opción PCI, Intel Flash Descriptor, coreboot CBFS y volúmenes de firmware UEFI, además de scripts auxiliares UEFI para recuperación de tipos e identificación de GUID.

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
Ver Repositório
4935613há 5 diasRevisado pelo Kitploit

Ghidra Firmware Utilities

Vários módulos para Ghidra para auxiliar na engenharia reversa de firmware de PC. Este projeto foi aceito como um projeto coreboot para o GSoC 2019.

Recursos

Carregador de ROM de opção PCI

  • Implementa um carregador de FS para ROMs de opção PCI (lida com ROMs híbridas com múltiplas imagens, ex.: x86 legado + UEFI)
  • Carrega executáveis UEFI de ROMs de opção PCI (incluindo imagens compactadas)
  • Define a função de ponto de entrada e vários tipos de dados de cabeçalho para ROMs de opção x86 legado

Carregador de imagem de firmware

  • Implementa um carregador de FS para imagens Flash Map (FMAP) e Intel Flash Descriptor (IFD) (exibe regiões de flash)
  • Implementa um carregador de FS para imagens Coreboot Filesystem (CBFS) (exibe arquivos incluídos e lida com compactação)
  • Implementa um carregador de FS para volumes de firmware UEFI e análise de arquivos/sessões aninhados do sistema de arquivos de firmware (FFS)

Carregador Terse Executable (TE)

  • Implementa um carregador binário para binários TE (frequentemente usados em UEFI PI)

Script auxiliar UEFI

  • Inclui bibliotecas de tipos de dados para tipos UEFI base (retirados do EDK2 MdePkg)
  • Corrige a assinatura da função de ponto de entrada
  • Define GUIDs conhecidos nos segmentos .data/.text do binário
  • Localiza e define cópias globais de ponteiros de tabela UEFI (gBS/gRT/gST/etc)

Compilação e Instalação

JDK 21 (ou mais recente) e Ghidra 12.0 (ou mais recente) são necessários.

O sistema de compilação padrão Gradle do Ghidra é usado. Defina a variável de ambiente GHIDRA_INSTALL_DIR antes de compilar, ou defina-a como uma propriedade do Gradle (útil para compilar em uma IDE):

Variável de ambiente

root@kitploit:~
$ export GHIDRA_INSTALL_DIR="/caminho/para/ghidra"
$ ./gradlew

Propriedade do Gradle

root@kitploit:~
echo GHIDRA_INSTALL_DIR=/caminho/para/ghidra > gradle.properties

[!NOTE] GHIDRA_INSTALL_DIR deve apontar para o diretório que contém support/buildExtension.gradle. Por exemplo, usuários do pacote Flathub devem usar /var/lib/flatpak/app/org.ghidra_sre.Ghidra/current/active/files/lib/ghidra.

O ZIP do módulo será gerado em dist/. Use File > Install Extensions e selecione o sinal de mais verde para navegar até a extensão. Reinicie o Ghidra quando solicitado.

Para funcionamento adequado, o plugin deve ser compilado com o mesmo JRE usado pela sua instalação do Ghidra. Se você tiver vários ambientes de execução Java instalados, selecione o JRE correto definindo a variável de ambiente JAVA_HOME antes de compilar.

Uso

Carregador de ROM de opção PCI

Adicione uma ROM de opção PCI a um projeto Ghidra. ROMs de opção x86 legado podem ser carregadas diretamente para análise. Certifique-se de que o formato binário esteja definido como x86 PCI Option ROM e importe o binário.

ROMs de opção UEFI ou ROMs de opção que contenham mais de uma imagem devem ser importadas usando o carregador de sistema de arquivos. Quando solicitado a selecionar um modo de importação, selecione File system. As imagens contidas na ROM de opção serão exibidas e podem ser importadas para análise. Imagens x86 legado serão tratadas pelo carregador x86 PCI Option ROM, e imagens UEFI serão tratadas pelo carregador PE32 (compactação é suportada). Informações para cada imagem podem ser exibidas selecionando Get Info no menu de clique direito.

Carregador de imagem de firmware

Adicione uma imagem de firmware suportada a um projeto Ghidra. O carregador de imagem de firmware suporta imagens Intel com um Flash Descriptor, imagens coreboot com um layout FMAP/CBFS e volumes de firmware UEFI. O modo de importação File system pode ser usado para visualizar arquivos incorporados dentro da imagem de firmware especificada.

Observe que algumas imagens de firmware UEFI podem armazenar volumes de firmware aninhados dentro de arquivos freeform/raw (ou seções FFS freeform/raw). Tais arquivos podem ser importados como volumes de firmware selecionando Open File System no menu de clique direito para o arquivo freeform/raw especificado. Se nenhum volume de firmware aninhado for encontrado, uma mensagem de erro será exibida (No file system provider for...).

Script auxiliar UEFI

O script auxiliar está incluído no diretório ghidra_scripts do plugin, que deve ser adicionado automaticamente à lista de diretórios de scripts no Ghidra.

Execute o script auxiliar UEFI selecionando UEFIHelper.java na janela Script Manager (acessada em Window -> Script Manager).

Para modificar a biblioteca de tipos de dados UEFI, modifique o modelo PRF em data/gen_prf.sh conforme necessário e gere novos arquivos PRF. Abra o arquivo PRF gerado em File -> Parse C Source. Compile a biblioteca de tipos de dados atualizada selecionando Parse to File.... Sobrescreva as bibliotecas de tipos de dados originais em data e recompile o plugin.

Projetos relacionados

Estes são alguns projetos interessantes relacionados à engenharia reversa de UEFI:

  • efiXplorer - Plugin IDA para análise de firmware UEFI e automação de engenharia reversa
  • Ghidra-EFI-Byte-Code-Processor - Módulo de processador EFI Byte Code (EBC) para Ghidra

Licença

Apache 2.0, com algumas exceções:

  • src/efidecompress/c/efidecompress.c: BSD

Créditos

src/efidecompress/c/efidecompress.c é uma versão levemente modificada de Decompress.c do uefi-firmware-parser (que por sua vez é derivado de o original no EDK2 BaseTools).

O carregador de FS IFD em src/main/java/firmware/ifd usou o analisador de UEFITool como referência.

O banco de dados de GUIDs em data/guids.csv é retirado de UEFITool.

As bibliotecas de tipos de dados UEFI em data/uefi_*.gdt foram geradas com data/gen_prf.sh, que é parcialmente baseado na definição do analisador UEFI de uma solicitação de pull do Ghidra por wrffrz. Essas bibliotecas de tipos de dados usam cabeçalhos do EDK2 MdePkg.

GhidraVitaLoader por xerpi foi usado como referência para algumas partes do script auxiliar UEFI.

Baixar ferramenta