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
EfiGuard — Desativar PatchGuard e Driver Signature Enforcement na inicialização | Kitploit
Ferramentas/GitHubGitHub/mattiwatti/efiguard
Ferramentas DefensivasExploraçãoEngenharia ReversaAnálise de Binários
GitHubmattiwatti/efiguard

EfiGuard

Desativar PatchGuard e Driver Signature Enforcement na inicialização

Ver Repositório
2.5k40932há 3 mesesRevisado 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

Visão Geral

EfiGuard é um bootkit portátil x64 UEFI que modifica o gerenciador de inicialização, o carregador de inicialização e o kernel do Windows durante a inicialização para desabilitar o PatchGuard e a Imposição de Assinatura de Driver (DSE).

Se você está apenas procurando testar o EfiGuard, pule para Uso.

Funcionalidades

  • Atualmente suporta todas as versões compatíveis com EFI do Windows x64 já lançadas, do Vista SP1 ao Windows 11.

  • Fácil de usar: pode ser inicializado a partir de um pendrive ou da partição EFI do Windows através de um carregador que automaticamente encontra e inicializa o Windows. O driver também pode ser carregado e configurado manualmente usando o shell UEFI ou o carregador.

  • Faz uso extensivo da biblioteca desmontadora Zydis para decodificação rápida de instruções em tempo de execução, suportando análises mais robustas do que o possível com correspondência de assinaturas, que frequentemente exige alterações com novas atualizações do sistema operacional.

  • Funciona passivamente: o driver não carrega nem inicia o gerenciador de inicialização do Windows. Em vez disso, age sobre um carregamento de bootmgfw.efi pelo gerenciador de inicialização do firmware através do menu de seleção de inicialização ou de um aplicativo EFI como o carregador. Se um sistema operacional não Windows for inicializado, o driver será descarregado automaticamente.

  • Suporta modificação em quatro estágios para quando bootmgfw.efi inicia bootmgr.efi em vez de winload.efi. Isso ocorre quando um arquivo WIM é carregado para inicializar o WinPE, a Configuração do Windows ou o modo de Recuperação do Windows.

  • Recuperação elegante: em caso de falha na modificação, o driver exibirá informações de erro e solicitará a continuação da inicialização ou a reinicialização pressionando ESC. Isso é verdade até mesmo no estágio final da modificação do kernel, porque o último estágio de modificação ocorre antes de ExitBootServices ser chamado. Muitos bootkits UEFI do Windows interceptam OslArchTransferToKernel que, embora seja fácil de encontrar por correspondência de padrões, é uma função que executa em modo protegido após ExitBootServices. Isso significa que nenhum serviço de inicialização está disponível para informar ao usuário que algo deu errado. bsod

    Falha de modificação simulada com informações de erro

  • Depurável: pode enviar mensagens para um depurador de kernel e para a tela (embora em buffer) durante o estágio de modificação do kernel, e para uma porta serial ou sem buffer para a tela durante os estágios de modificação do gerenciador de inicialização e do carregador de inicialização. Se o driver for compilado com informações de depuração PDB, é possível carregar os símbolos de depuração em qualquer ponto após a inicialização do HAL especificando a base virtual do driver DXE e depurando-o como faria com um driver NT normal.

  • Burlas de DSE: disponíveis como uma desativação de DSE direta no estilo UPGDSED na inicialização ou como um gancho no serviço de tempo de execução EFI SetVariable(). Este último serve como uma backdoor arbitrária de leitura/gravação em modo kernel que pode ser chamada do Windows usando NtSetSystemEnvironmentValueEx e permite definir g_CiEnabled/g_CiOptions para o valor desejado. Um pequeno aplicativo no estilo DSEFix chamado EfiDSEFix.exe é fornecido para fazer isso. Também é possível deixar o DSE ativado e desabilitar apenas o PatchGuard. O carregador usará o método de gancho SetVariable por padrão, devido ao fato de que alguns programas anti-cheat e antivírus não entendem a diferença entre cheats ou malware e drivers autoassinados em geral e visam o fix do UPGDSED.

  • Suporta kernels e carregadores de inicialização modificados em disco ao modificar ImgpValidateImageHash em cada estágio, bem como ImgpFilterValidationFailure, que pode denunciar silenciosamente algumas classes de violações a um TPM ou ao arquivo de log SI.

  • Permite que o Secure Boot funcione com Windows 7 (não é piada!). O Windows 7 em si é alheio ao Secure Boot, pois não o suporta, ou (oficialmente) nem mesmo inicializar sem CSM. Isso é útil para pessoas que desejam usar o Windows 7 em um dispositivo bloqueado que exige Secure Boot WHQL. Entrada da wiki sobre como fazer isso funcionar aqui. win7_secureboot

    WinObjEx64 no Windows 7 com Secure Boot ativado

Problemas e limitações

  • O EfiGuard não pode desabilitar a Integridade de Código Imposta pelo Hypervisor (HVCI ou HyperGuard) devido ao HVCI executar em um nível de privilégio maior. O EfiGuard pode coexistir com o HVCI e até mesmo desabilitar com sucesso o PatchGuard no kernel normal, mas isso não é útil na prática porque o HVCI pegará o que o PatchGuard fazia anteriormente. Ambos os tipos de bypass de DSE são tornados inúteis pelo HVCI: a modificação na inicialização não tem efeito porque o kernel delega ao kernel seguro as verificações de integridade, e o gancho SetVariable causará um bugcheck SECURE_KERNEL_ERROR se for usado para escrever em g_CiOptions.
  • Kernels checked não são suportados devido às diferenças no código de inicialização do PatchGuard e DSE causadas por otimizações desabilitadas e asserts adicionados, bem como alterações adicionais no PatchGuard em kernels checked. Isso não deve ser um problema, pois kernels checked geralmente não são úteis sem um depurador de kernel anexado, o que desabilita o PatchGuard.

Uso

Há duas maneiras de usar o EfiGuard: inicializando o aplicativo carregador, que carregará o driver e iniciará o Windows para você, ou instalando o driver como uma entrada de driver UEFI para que seja carregado automaticamente pelo firmware.

Instalar o driver pode ser preferível em algumas configurações avançadas, como ao fazer multi-boot, mas o carregador é mais fácil de usar e deve funcionar bem em todas as configurações. Veja a tabela abaixo para as diferenças mais importantes entre os dois métodos. Se não tiver certeza, escolha o aplicativo carregador.

LocalizaçãoInstalaçãoIgnorável?Qual SO é inicializado?
Entrada de Driver UEFIDeve estar na ESPVia Shell UEFI❌O mesmo de antes
CarregadorEm qualquer lugarNão é necessário✔️Windows

Comparação entre carregador e entrada de driver UEFI

Inicializando o carregador

  1. Baixe o EfiGuard e renomeie EFI/Boot/Loader.efi para bootx64.efi.
  2. Coloque os arquivos em uma unidade inicializável, como um pendrive formatado em FAT32 (para máquinas físicas) ou um ISO/disco virtual (para VMs). Supondo a unidade X:, os caminhos para os dois arquivos devem ser agora X:/EFI/Boot/{bootx64|EfiGuardDxe}.efi
  3. Inicialize a máquina a partir da unidade que você usou no passo 2. A maioria dos firmwares fornece um menu de inicialização para isso via F8/F10/F11/F12. Caso contrário, você precisará configurar a BIOS para inicializar a partir da nova unidade.
  4. O Windows deve inicializar agora, e você deve ver mensagens do EfiGuard durante a inicialização.
  5. Se você inicializou com o gancho SetVariable (o padrão), execute EfiDSEFix.exe -d em um prompt de comando como Administrador após a inicialização para desabilitar o DSE, ou execute EfiDSEFix.exe para ver a lista completa de opções.
Baixar ferramenta