
DriverBuddy is an IDA Python script to assist with the reverse engineering of Windows kernel drivers.
DriverBuddy는 Windows 커널 드라이버의 리버스 엔지니어링과 관련된 일부 지루한 작업을 자동화하는 데 도움이 되는 IDAPython 플러그인입니다. 다음과 같은 여러 유용한 기능이 있습니다:
DispatchDeviceControl 함수를 자동으로 찾아 식별하는 것은 드라이버 리버스 엔지니어링 중 시간을 절약해 주는 작업입니다. 이 함수는 들어오는 모든 DeviceIoControl 코드를 해당 코드와 연결된 특정 드라이버 함수로 라우팅하는 데 사용됩니다. 이 함수를 자동으로 식별하면 각 드라이버에 대한 유효한 DeviceIoControl 코드를 훨씬 더 빨리 찾을 수 있습니다. 또한 충돌로 인해 드라이버의 잠재적 취약점을 조사할 때 이 함수의 위치를 알면 충돌을 일으키는 DeviceIoControl 코드와 연결된 특정 함수 호출로 초점을 좁히는 데 도움이 됩니다.
여러 드라이버 구조체가 모든 WDM 드라이버 간에 공유됩니다. IO_STACK_LOCATION, IRP 및 DeviceObject 구조체와 같은 이러한 구조체를 자동으로 식별할 수 있으면 리버스 엔지니어링 프로세스 중 시간을 절약하는 데 도움이 됩니다. DriverBuddy는 이러한 구조체 중 다수를 찾아 식별하려고 시도합니다.
WDM 드라이버와 마찬가지로 모든 WDF 드라이버 간에 공유되는 여러 함수와 구조체가 있습니다. 이러한 함수와 구조체를 자동으로 식별하면 리버스 엔지니어링 프로세스 중 시간을 절약하고 이러한 함수가 사용되는 드라이버의 식별되지 않은 영역에 컨텍스트를 제공합니다.
드라이버를 리버스 엔지니어링하는 동안 분석의 일부로 IOCTL 코드를 접하는 것은 흔한 일입니다. 이러한 코드는 디코딩되면 리버스 엔지니어에게 유용한 정보를 제공하며 취약점이 존재할 가능성이 더 높은 드라이버의 특정 부분에 주의를 끌 수 있습니다.
확장 목표:
이 소프트웨어는 MIT 라이선스 하에 배포됩니다. LICENSE를 참조하십시오.