EFIGUARD ist ein tragbares X64 -UEFI -Bootkit, das den Windows -Boot -Manager, den Bootloader und den Kernel zur Startzeit enthält, um PatchGuard und Treiber -Signature Enforcement (DSE) zu deaktivieren.
Wenn Sie nur Effiguard ausprobieren möchten, gehen Sie zur Verwendung aus.
Derzeit unterstützt alle EFI-kompatiblen Versionen von Windows X64, die jemals veröffentlicht wurden, von Vista SP1 bis Windows 11.
Einfach zu bedienen: Kann über einen Loader, der automatisch Fenster findet und startet, von einem USB -Stick oder der Windows EFI -Partition gebootet werden. Der Treiber kann auch mit der UEFI -Shell oder dem Lader manuell geladen und manuell konfiguriert werden.
Verwendet die Zydis Disassembler -Bibliothek für schnelle Laufzeitanweisungen ausführlich, um eine robustere Analyse zu unterstützen, als dies bei der Signaturanpassung möglich ist, was häufig Änderungen bei neuen Betriebssystem -Updates erfordert.
Funktioniert passiv: Der Treiber lädt oder startet den Windows -Boot -Manager nicht. Stattdessen wirkt es sich über das Startauswahlmenü oder eine EFI -Anwendung wie den Loader auf eine Last von bootmgfw.efi im Firmware -Boot -Manager ein. Wenn ein OS von Nicht-Windows gebootet ist, entladen sich der Treiber automatisch.
Unterstützt das vierstufige Patching, wenn bootmgfw.efi bootmgr.efi anstelle von winload.efi startet. Dies ist der Fall, wenn eine WIM -Datei in WinPE, Windows Setup oder Windows Recovery -Modus geladen wird.
Anmutige Wiederherstellung: Im Falle eines Patch -Fehlers zeigt der Treiber Fehlerinformationen an und fordert auf, weiter zu booten oder durch Drücken von ESC neu zu starten. Dies gilt auch bis zur endgültigen Kernel -Patch -Stufe, da die letzte Patch -Stufe vor dem Aufrufen ExitBootServices stattfindet. Viele UEFI Windows Bootkits Hook OslArchTransferToKernel , die zwar leicht durch Musteranpassung zu finden ist, ist jedoch eine Funktion, die nach ExitBootServices im geschützten Modus ausgeführt wird. Dies bedeutet, dass keine Bootsdienste verfügbar sind, um dem Benutzer mitzuteilen, dass etwas schief gelaufen ist. Während Effiguard ein UEFI -Bootkit ist, begann es nicht als einer. Effiguard war ursprünglich ein auf NT auf NT (ähnlicher UPGDSED) laufendem On-Scheiben-Patcher, der die Lebensfähigkeit eines auf Disassembler basierenden Acroach testen sollte, anstatt PDB-Symbole und versionsspezifische Unterschriften zu verwenden. Patchntoskrnl.c sieht diesem Original -Design immer noch sehr ähnlich. Erst nachdem sich dieser Ansatz als erfolgreich als erfolgreich erwies, ohne dass in einem Jahr nach Windows -Updates die Code erforderlich war, wurde UEFI ins Bild gekommen, um die Fähigkeiten und die Benutzerfreundlichkeit weiter zu verbessern.
Einige der Vorteile eines Bootkit -Ansatzes umfassen:
bcdedit nicht ändern.ImgpValidateImageHash zu patchen (obwohl dies noch optional erledigt ist).db -Store hinzufügen. Die anfängliche Inkarnation von Efiguard als Bootkit war ein Versuch, Dude719s Uefi-Bootkit dazu zu bringen, mit den neuesten Versionen von Windows 10 zu arbeiten, da sie datiert und nicht mehr auf den neuesten Versionen funktioniert (wie UPGDSED, oft durch Versionsen-sensitive Muster-Scans verursacht). Während ich dies irgendwann zum Laufen gebracht habe, war ich mit dem Ergebnis vor allem aufgrund der Wahl, OslArchTransferToKernel zu hacken, nicht zufrieden, was, wie oben erwähnt wurde, im geschützten Modus und nach der Aufforderung ExitBootServices ausgeführt wurde. Abgesehen davon war ich nicht zufrieden damit, nur einige Versionen von Windows 10 zu patchen. Ich wollte, dass der Bootkit an jeder EFI-kompatiblen Version von Windows X64 funktioniert. Aus diesem Grund habe ich das Bootkit mit den folgenden Zielen von Grund auf neu geschrieben:
Ein großer Überblick über den endgültigen Efiguard -Startfluss ist im obigen Diagramm gezeigt. In den Quelldateien siehe EfiGuardDxe/PatchXxx.c für die einzelnen Komponenten-spezifischen Hooks und Patches. Für die Treiberinitialisierung/Entladen sowie die EFI -Start- und Laufzeit -Dienste finden Sie in EFIGUARDDXE.C.
Effiguard ist unter dem GPLV3 lizenziert. Dateien in der EfiGuardDxe/Zydis -Submodule sind unter der MIT -Lizenz lizenziert.