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
BugChecker — Depurador de kernel similar ao SoftICE para Windows 11 | Kitploit
Ferramentas/GitHubGitHub/vitoplantamura/bugchecker
Análise Dinâmica (Sandboxing)Engenharia ReversaDepuradoresAnálise de Binários
GitHubvitoplantamura/bugchecker

BugChecker

Depurador de kernel similar ao SoftICE para Windows 11

Ver Repositório
1.1k14417há 3 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

BugChecker

Introdução

BugChecker é um depurador de kernel e usuário semelhante ao SoftICE para Windows 11 (e também Windows XP: suporta versões do Windows do XP ao 11, tanto x86 quanto x64). O BugChecker não requer uma segunda máquina conectada ao sistema que está sendo depurado, como no caso do WinDbg e KD. Esta versão do BugChecker (diferentemente da versão original desenvolvida 20 anos atrás) utiliza a API KD interna e não documentada do NTOSKRNL. A API KD permite que WinDbg/KD faça chamadas como ler/escrever memória virtual, ler/escrever registradores, colocar um breakpoint em um endereço, etc.

Por outro lado, o BugChecker original, assim como o SoftICE, costumava "assumir o controle" do sistema, interceptando várias APIs do kernel (tanto exportadas quanto privadas), assumindo o controle do APIC, enviando IPIs, etc. Essa abordagem aumenta a complexidade exponencialmente (e reduz a estabilidade do sistema), pois a implementação deve ser compatível com todas as versões e subversões suportadas do Windows (no nível da assinatura da função), bem como todas as possíveis configurações de hardware suportadas. Além disso, 20 anos depois, o PatchGuard torna essa solução impossível.

Por outro lado, esta versão do BugChecker, ao interceptar chamadas a KdSendPacket e KdReceivePacket no kernel, apresenta-se à máquina que está sendo depurada como um segundo sistema executando um depurador de kernel externo, mas, na realidade, tudo acontece na mesma máquina. Normalmente, isso é alcançado substituindo KDCOM.DLL (que é o módulo que implementa a comunicação por cabo serial para a API KD no Windows) e iniciando o sistema em modo de depuração de kernel. Essa abordagem (inspirada pelo VirtualKD) reduz a complexidade e aumenta a estabilidade e compatibilidade (e portabilidade, por exemplo, para ARM - e modularidade, uma vez que as capacidades de depuração de baixo nível são implementadas por trás de KdXxxPacket e poderiam ser substituídas por uma implementação personalizada). Além disso, a presença de um depurador de kernel na inicialização (embora "falso") faz com que o Windows desabilite o PatchGuard.

No momento, o BugChecker requer um teclado PS/2 para entrada e um framebuffer linear para escrever sua saída. Observe que o teclado embutido de muitos laptops modernos ainda é PS/2.

Funcionalidades

  • Suporte para Windows XP até Windows 11, x86 e x64, e kernels SMP. Suporte para processos WOW64 em x64.
  • Integração do QuickJSPP, que é uma porta do QuickJS para MSVC++. Antes de chamar o QuickJS, o BugChecker salva o estado da FPU (em x86) e alterna para uma pilha expandida de 128 KB.
  • Comandos aceitam expressões JS. Por exemplo, "U rip+rax*4" e "U MyJsFn(rax+2)" são comandos válidos. Funções personalizadas podem ser definidas na Janela de Script. Os registradores da CPU são declarados automaticamente como variáveis de escopo global pelo BugChecker.
  • Suporte para arquivos de símbolo PDB. Arquivos PDB podem ser especificados manualmente ou o Symbol Loader pode baixá-los de um servidor de símbolos.
  • Código JavaScript pode chamar as seguintes funções assíncronas: WriteReg, ReadMem, WriteMem.
  • Breakpoints podem ter uma condição JS: se a condição for avaliada como 0, não ocorre "breakin". Isso permite definir "Logpoints" e breakpoints que podem alterar o fluxo de execução.
  • Janela de log mostra as mensagens enviadas ao depurador de kernel (por exemplo, mensagens DbgPrint).
  • Janela JavaScript com destaque de sintaxe.
  • A tecla Tab permite, com alguns dígitos, percorrer todos os números hexadecimais na tela ou, com alguns caracteres, percorrer todos os símbolos que contêm esses caracteres.
  • EASTL e corrotinas C++20 tornam a criação de novos comandos uma moleza. Sinta-se à vontade para enviar seus pull requests!

Vídeos (Youtube)

Demonstração do BugChecker no Windows 11 22H2, dentro do VirtualBox 7.0.4. Uma condição de breakpoint JavaScript é escrita que altera o fluxo de execução em um thread de modo usuário.

Assista ao vídeo

BugChecker rodando em um ambiente muito restrito: um Raspberry Pi 4 (4GB RAM), via QEMU no Windows XP (512MB RAM). Um breakpoint é usado para registrar todas as chamadas SYSENTER do modo usuário para o kernel. O índice do serviço é armazenado em um array JavaScript.

Assista ao vídeo

Executando BugChecker diretamente em hardware real, em um HP Pavilion Dv2000, que é um PC antigo com teclado PS/2. O sistema operacional é Windows 7 Home 32 bits.

Assista ao vídeo

Instruções de Instalação

Introdução

Certifique-se de que o Secure Boot esteja desabilitado ao instalar e usar o BugChecker. Normalmente você pode reativá-lo depois. Se estiver usando VMware ou VirtualBox, o Secure Boot pode ser desabilitado nas configurações da máquina virtual.

Considere também habilitar o menu de inicialização legado, se estiver usando Windows 8, 10 ou 11, usando o comando: bcdedit /set "{current}" bootmenupolicy legacy. Isso permite uma experiência mais suave durante a inicialização, permitindo selecionar a opção de boot do BugChecker e desabilitar a Imposição de Assinatura de Driver ao mesmo tempo.

Instruções

O primeiro passo é iniciar o Symbol Loader:

Symbol Loader

Se necessário, desabilite os drivers de vídeo clicando no botão "Disable Display Drvs". A mesma coisa pode ser feita no Gerenciador de Dispositivos do Windows. Após desabilitar os drivers de vídeo, eles permanecem desabilitados mesmo após uma reinicialização do sistema. Eles podem ser reabilitados a qualquer momento depois, quando não estiver usando o BugChecker.

O ponto aqui é que o BugChecker precisa de um framebuffer linear com formato de 32 bits por pixel para desenhar sua interface. Ao desabilitar os drivers de vídeo, o Windows descarta a aceleração de hardware para desenhar sua interface e volta para o modo de compatibilidade VGA. Se estiver executando em hardware real ou VMware, você deve desabilitar os drivers de vídeo. Se estiver executando no VirtualBox, você deve desabilitar os drivers de vídeo ou definir a configuração vm_screen no BugChecker.dat, conforme descrito abaixo. Se estiver executando no QEMU, você não precisa desabilitar os drivers de vídeo, mas certifique-se de especificar o dispositivo de vídeo "-vga std".

Observe que o modo de compatibilidade VGA pode limitar a resolução máxima da tela. O VMware é limitado a uma resolução máxima de 1152x864. O QEMU com o dispositivo de vídeo "-vga std" não sofre dessa limitação.

Baixar ferramenta