EFiguard est un bootkit UEFI X64 portable qui patch sur Windows Boot Manager, Boot Loader et Kernel au démarrage afin de désactiver PatchGuard et Driver Signature Enforcement (DSE).
Si vous cherchez juste à essayer EFiguard, passez à l'utilisation.
Prend en charge toutes les versions compatibles EFI de Windows X64 jamais publiées, de Vista SP1 à Windows 11.
Facile à utiliser: peut être démarré à partir d'un bâton USB ou de la partition Windows EFI via un chargeur qui trouve et bottise automatiquement Windows. Le pilote peut également être chargé et configuré manuellement à l'aide du shell UEFI ou du chargeur.
Pratique une utilisation approfondie de la bibliothèque de désassembleur Zydis pour un décodage d'instructions d'exécution rapide pour prendre en charge une analyse plus robuste que ce qui est possible avec la correspondance de signature, ce qui nécessite souvent des modifications avec les nouvelles mises à jour du système d'exploitation.
Fonctionne passivement: le pilote ne charge pas ou ne démarre pas le gestionnaire de démarrage Windows. Au lieu de cela, il agit sur un tas de bootmgfw.efi par le Firmware Boot Manager via le menu de sélection de démarrage ou une application EFI telle que le chargeur. Si un système d'exploitation non Windows est démarré, le pilote se déchargera automatiquement.
Prend en charge le correctif en quatre étapes pour lorsque bootmgfw.efi démarre bootmgr.efi plutôt que winload.efi . C'est le cas lorsqu'un fichier WIM est chargé pour démarrer WinPE, Windows Configuration ou Windows Recovery Mode.
Récupération gracieuse: En cas de défaillance du patch, le pilote affichera les informations d'erreur et invite à continuer de démarrer ou à redémarrer en appuyant sur ESC. Cela est vrai même jusqu'à l'étape du patch du noyau final, car la dernière étape du patch se produit avant l'appel d' ExitBootServices . De nombreux bottines Windows UEFI HOCK OslArchTransferToKernel qui, bien que facile à trouver par correspondance de motifs, est une fonction qui s'exécute en mode protégé après ExitBootServices . Cela signifie qu'aucun service de démarrage n'est disponible pour dire à l'utilisateur que quelque chose s'est mal passé. Bien qu'EFiguard soit un Bootkit UEFI, il n'a pas commencé comme un. EFiguard était à l'origine un patcher sur le disque fonctionnant sur NT (similaire à UpGDSED), destiné à tester la viabilité d'un aperçu basé sur le désassembleur, par opposition à l'utilisation de symboles PDB et de signatures spécifiques à la version. Patchntoskrnl.c ressemble toujours beaucoup à cette conception originale. Ce n'est qu'après que cette approche s'est avérée réussie, sans modification du code nécessaire en plus d'un an de mises à jour Windows, UEFI est-il entré dans l'image afin d'améliorer davantage les capacités et la facilité d'utilisation.
Certains des avantages fournis par une approche de bootkit comprennent:
bcdedit .ImgpValidateImageHash (bien que cela soit encore éventuellement fait).db . L'incarnation initiale d'EFiguard en tant que bootkit a été une tentative de faire fonctionner UEFI-Bootkit de DUDE719 avec les versions récentes de Windows 10, car elle était devenue datée et ne fonctionne plus sur les dernières versions (comme Upgdsed, souvent causée par des scans de modèle sensible à la version). Bien que j'ai finalement fait fonctionner cela, je n'étais pas satisfait du résultat principalement en raison du choix d'accrocher OslArchTransferToKernel , qui, comme indiqué ci-dessus, s'exécute en mode protégé et après l'appel ExitBootServices . En dehors de cela, je n'étais pas satisfait de ne pouvoir corriger certaines versions de Windows 10; Je voulais que le bootkit fonctionne sur chaque version compatible EFI de Windows X64 publiée à ce jour. Pour cette raison, j'ai réécrit le bootkit à partir de zéro avec les objectifs suivants:
Une vue d'ensemble de l'image du flux de démarrage final EFiguard est affichée dans le diagramme ci-dessus. Pour les crochets et correctifs spécifiques aux composants individuels, voir EfiGuardDxe/PatchXxx.c dans les fichiers source. Pour l'initialisation / le déchargement du pilote et les crochets EFI Boot and Runtime Services, voir efiguarddxe.c.
EFiguard est autorisé sous le GPLV3. Les fichiers du sous-module EfiGuardDxe/Zydis sont concédés sous licence MIT.