
DriverBuddy is an IDA Python script to assist with the reverse engineering of Windows kernel drivers.
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:
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.
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.
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.
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.
Metas Extras:
Este software é lançado sob a licença MIT, veja LICENSE.