
DriverBuddy is an IDA Python script to assist with the reverse engineering of Windows kernel drivers.
DriverBuddy — это плагин IDAPython, который помогает автоматизировать часть рутинной работы, связанной с реверс-инжинирингом драйверов ядра Windows. Он имеет ряд полезных функций, таких как:
Возможность автоматически находить и идентифицировать функцию DispatchDeviceControl экономит время при реверс-инжиниринге драйверов. Эта функция используется для маршрутизации всех входящих кодов DeviceIoControl к конкретной функции драйвера, связанной с этим кодом. Автоматическая идентификация этой функции значительно ускоряет поиск допустимых кодов DeviceIoControl для каждого драйвера. Кроме того, при исследовании возможных уязвимостей в драйвере из-за сбоя знание местоположения этой функции помогает сузить фокус до конкретного вызова функции, связанного с кодом DeviceIoControl, вызвавшим сбой.
Некоторые структуры драйвера являются общими для всех драйверов WDM. Возможность автоматически идентифицировать такие структуры, как IO_STACK_LOCATION, IRP и DeviceObject, помогает сэкономить время в процессе реверс-инжиниринга. DriverBuddy пытается найти и идентифицировать многие из этих структур.
Как и в случае с драйверами WDM, существует несколько функций и структур, общих для всех драйверов WDF. Автоматическая идентификация этих функций и структур сэкономит время в процессе реверс-инжиниринга и предоставит контекст для неидентифицированных областей драйвера, где эти функции используются.
В ходе реверс-инжиниринга драйверов часто встречаются коды IOCTL как часть анализа. При декодировании эти коды раскрывают полезную информацию для специалистов по реверс-инжинирингу и могут привлечь внимание к конкретным частям драйвера, где с большей вероятностью существуют уязвимости.
Дополнительные цели:
Это программное обеспечение выпущено под лицензией MIT, см. LICENSE.