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
DriverBuddy — DriverBuddy is an IDA Python script to assist with the reverse engineering of Windows kernel drivers. | Kitploit
Ferramentas/GitHubGitHub/nccgroup/driverbuddy
Vulnerability AnalysisReverse EngineeringBinary Analysis
GitHubnccgroup/driverbuddy

DriverBuddy

DriverBuddy is an IDA Python script to assist with the reverse engineering of Windows kernel drivers.

Ver RepositórioSite
38377há 6 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

Quickstart

Instruções de Instalação do DriverBuddy

  1. Copie a pasta DriverBuddy e o arquivo DriverBuddy.py para a pasta de plugins do IDA C:\Program Files (x86)\IDA 6.8\plugins ou onde você instalou o IDA

Instruções de Uso do DriverBuddy

  1. Inicie o IDA e abra um driver de kernel do Windows
  2. Vá em Edit->Plugins e selecione Driver Buddy ou pressione ctrl-alt-d
  3. Verifique a janela Output para os resultados da análise do DriverBuddy
  4. Para decodificar IOCTLs, destaque o IOCTL suspeito e pressione ctrl-alt-i

DriverBuddy

O DriverBuddy é um plugin IDAPython que ajuda a automatizar parte da monotonia envolvida na engenharia reversa de drivers de kernel do Windows. Ele possui uma série de recursos úteis, como:

  • Identificar o tipo do driver
  • Localizar as funções DispatchDeviceControl e DispatchInternalDeviceControl
  • Preencher structs comuns para drivers WDF e WDM
    • Tenta identificar e rotular structs como o IRP e o IO_STACK_LOCATION
    • Rotula chamadas a funções WDF que normalmente ficariam sem rótulo
  • Encontrar códigos IOCTL conhecidos e decodificá-los
  • Sinalizar funções propensas a uso indevido

Encontrando DispatchDeviceControl

Ser capaz de localizar e identificar automaticamente a função DispatchDeviceControl é uma tarefa que economiza tempo durante a engenharia reversa de drivers. Essa função é usada para rotear todos os códigos DeviceIoControl recebidos para a função específica do driver associada a esse código. Identificar automaticamente essa função torna a busca pelos códigos DeviceIoControl válidos para cada driver muito mais rápida. Além disso, ao investigar possíveis vulnerabilidades em um driver devido a uma falha, saber a localização dessa função ajuda a focar a análise na chamada de função específica associada ao código DeviceIoControl que causou a falha.

Rotulando Structs WDM

Várias estruturas de driver são compartilhadas entre todos os drivers WDM. Ser capaz de identificar automaticamente essas estruturas, como IO_STACK_LOCATION, IRP e DeviceObject, pode ajudar a economizar tempo durante o processo de engenharia reversa. O DriverBuddy tenta localizar e identificar muitas dessas structs.

Rotulando Funções WDF

Assim como nos drivers WDM, existem várias funções e estruturas compartilhadas entre todos os drivers WDF. Identificar automaticamente essas funções e estruturas economizará tempo durante o processo de engenharia reversa e fornecerá contexto para áreas não identificadas do driver onde essas funções estão em uso.

Decodificando Códigos DeviceIoControl

Ao reverter drivers, é comum encontrar códigos IOCTL como parte da análise. Esses códigos, quando decodificados, revelam informações úteis para os engenheiros reversos e podem chamar a atenção para partes específicas do driver onde vulnerabilidades são mais prováveis de existir.

Coisas futuras:

  1. Adicionar verificações de obref e deref de algum tipo para ajudar a encontrar problemas de contagem de referência
  2. Polir a saída, gui?
  3. Reforçar/polir os recursos atuais
    • Melhorar a confiabilidade do localizador de DispatchDeviceControl
    • Escrever breves descrições sobre por que as coisas são sinalizadas
    • Importador de documentação do MSDN

Metas Extras:

  1. Encontrar IOCTLs automaticamente
  2. Análise de taint do IRP, ou seja, seguir o aliasing de sysbuf/inbuf, tamanho
  3. Identificar outras estruturas comuns
  4. Variáveis não inicializadas, etc

Créditos

  • Estamos usando o decodificador de IOCTL de Satoshi Tanda, originalmente encontrado aqui https://github.com/tandasat/WinIoCtlDecoder.
  • A struct de funções WDF é baseada no trabalho de Red Plait (http://redplait.blogspot.ru/2012/12/wdffunctionsidc.html) e foi portada para IDA Python por Nicolas Guigo, depois atualizada por nós.

Licença

Este software é lançado sob a licença MIT, veja LICENSE.

Baixar ferramenta