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
ida-efiutils — Alguns scripts para IDA Pro para auxiliar na engenharia reversa de binários EFI | Kitploit
Ferramentas/GitHubGitHub/snare/ida-efiutils
Segurança de Sistemas EmbarcadosEngenharia ReversaSegurança de Hardware e IoTAnálise de BináriosAnálise de Firmware
GitHubsnare/ida-efiutils

ida-efiutils

Alguns scripts para IDA Pro para auxiliar na engenharia reversa de binários EFI

Ver Repositório
30966há 7 anosRevisado 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

Scripts EFI para IDA Pro

Alguns scripts de IDA para auxiliar na engenharia reversa de executáveis EFI.

Este pacote contém os seguintes arquivos:

  1. efiutils.py - Módulo IDAPython com algumas funções auxiliares

  2. efiguids.py - Uma coleção de GUIDs conhecidos para protocolos EFI

  3. efiguids_ami.py - Uma coleção de GUIDs conhecidos para protocolos usados no BIOS AMI

  4. behemoth.h - Um cabeçalho gigante contendo uma coleção de definições de tipos e estruturas para EFI

  5. structs.idc - Um script IDC contendo algumas definições de estruturas (substituído por behemoth.h)

  6. te_image.bt - Um template do 010 Editor para imagens binárias TE

  7. te_loader.py - Um script de loader do IDA Pro para imagens binárias TE

Esta é minha primeira tentativa de scripting em IDA, então por favor, perdoe-me e me avise se eu reinventei a roda/fiz algo bobo.

Funções

As principais funções úteis são descritas abaixo. Consulte o código e docstrings para mais informações sobre outras funções.

rename_tables()

Encontra o primeiro ponto de entrada do binário, tenta rastrear os parâmetros que foram passados para a função de ponto de entrada e renomeia variáveis globais nas quais as principais tabelas EFI são armazenadas. As seguintes operações de renomeação são executadas:

  1. A global onde ImageHandle termina é renomeada para gImageHandle.

  2. A global onde SystemTable termina é renomeada para gSystemTable.

  3. A global onde SystemTable->BootServices termina é renomeada para gBootServices.

  4. A global onde SystemTable->RuntimeServices termina é renomeada para gRuntimeServices.

Instruções de chamada serão seguidas apenas um nível de profundidade, pois a maioria dos executáveis copia as referências de tabela no ponto de entrada ou em uma função chamada a partir do ponto de entrada. Altere MAX_STACK_DEPTH se necessário.

update_structs()

Encontra referências cruzadas para as tabelas renomeadas acima e atualiza seus nomes para serem offsets de estruturas das estruturas apropriadas. Se rename_tables() falhar, você precisará renomear as coisas manualmente como acima para que isso funcione corretamente.

Por exemplo:

root@kitploit:~
    mov     rax, cs:qword_whatever
    call    qword ptr [rax+150h]

Torna-se:

root@kitploit:~
    mov     rax, cs:gBootServices
    call    [rax+EFI_BOOT_SERVICES.UninstallMultipleProtocolInterfaces]

rename_guids()

Encontra GUIDs em segmentos de dados e os renomeia. 470 GUIDs de protocolos foram extraídos do código-fonte do TianoCore, e GUIDs proprietários da Apple (e de outros fornecedores) serão adicionados conforme forem encontrados.

go()

Método de conveniência que faz tudo o que foi mencionado acima.

Uso

  1. Carregue seu binário EFI no IDA Pro

  2. Importe behemoth.h para definir as estruturas de dados necessárias

  3. Adicione as estruturas dos tipos locais ao seu IDB

  4. Execute efiutils.py para adicioná-lo ao caminho do python (ou faça isso por algum outro método)

  5. Dê uma olhada no código/docstrings, mas provavelmente:

    root@kitploit:~
     import efiutils; efiutils.go()
    

Para usar o loader de imagem TE te_loader.py, instale-o como faria com qualquer outro loader. No OS X, isso é feito copiando ou criando um symlink dentro da pasta de loaders em idaq.app/Contents/MacOS/loaders/.

Baixar ferramenta