
DriverBuddy is an IDA Python script to assist with the reverse engineering of Windows kernel drivers.
DriverBuddy ist ein IDAPython-Plugin, das hilft, einen Teil der Mühsal rund um das Reverse Engineering von Windows-Kernel-Treibern zu automatisieren. Es verfügt über eine Reihe praktischer Funktionen, wie zum Beispiel:
Die Möglichkeit, die DispatchDeviceControl-Funktion automatisch zu lokalisieren und zu identifizieren, spart Zeit beim Reverse Engineering von Treibern. Diese Funktion wird verwendet, um alle eingehenden DeviceIoControl-Codes an die jeweilige Treiberfunktion weiterzuleiten, die diesem Code zugeordnet ist. Die automatische Identifizierung dieser Funktion macht das Auffinden der gültigen DeviceIoControl-Codes für jeden Treiber erheblich schneller. Darüber hinaus hilft die Kenntnis des Speicherorts dieser Funktion bei der Untersuchung möglicher Schwachstellen in einem Treiber nach einem Absturz, den Fokus auf den spezifischen Funktionsaufruf zu lenken, der mit dem abstürzenden DeviceIoControl-Code verbunden ist.
Mehrere Treiberstrukturen werden von allen WDM-Treibern gemeinsam genutzt. Die Möglichkeit, diese Strukturen wie IO_STACK_LOCATION, IRP und DeviceObject automatisch zu identifizieren, kann während des Reverse-Engineering-Prozesses Zeit sparen. DriverBuddy versucht, viele dieser Strukturen zu lokalisieren und zu identifizieren.
Wie bei WDM-Treibern gibt es auch bei allen WDF-Treibern mehrere gemeinsame Funktionen und Strukturen. Die automatische Identifizierung dieser Funktionen und Strukturen spart Zeit beim Reverse-Engineering-Prozess und liefert Kontext für nicht identifizierte Bereiche des Treibers, in denen diese Funktionen verwendet werden.
Beim Reverse Engineering von Treibern ist es üblich, im Rahmen der Analyse auf IOCTL-Codes zu stoßen. Diese Codes liefern nach der Dekodierung nützliche Informationen für Reverse Engineers und können den Fokus auf bestimmte Teile des Treibers lenken, in denen Schwachstellen wahrscheinlicher bestehen.
Zusatzziele:
Diese Software wird unter der MIT-Lizenz veröffentlicht, siehe LICENSE.