
Boîte à outils pour décoder, inspecter et modifier les volumes de firmware UEFI et les magasins de variables. Prend en charge l'enrôlement de certificats Secure Boot, l'analyse des signatures de binaires PE et la gestion des variables EFI pour les environnements virtualisés.
Ceci est une petite collection d'outils pour les images de firmware edk2. Ils permettent de décoder et d'afficher le contenu des volumes de firmware. Les magasins de variables (OVMF_VARS.fd) peuvent être modifiés, par exemple pour inscrire des certificats de démarrage sécurisé.
Décode et affiche le contenu des volumes de firmware.
Utilisation : virt-fw-dump -i <fichier>.
Essayez virt-fw-dump --help pour plus d'informations, il y a quelques options pour filtrer la sortie.
Affiche et modifie les volumes de magasin de variables. Actuellement axé sur l'inscription de certificats et l'activation du démarrage sécurisé.
Afficher les variables : virt-fw-vars -i <fichier> --print.
Inscrire des certificats :
virt-fw-vars \
--input <modèle> \
--output <vars> \
--enroll-redhat \
--secure-boot
Essayez virt-fw-vars --help pour plus d'informations d'utilisation.
virt-fw-vars peut gérer les magasins de variables edk2 (qui sont des volumes de firmware flash) et les magasins de variables uefi AWS. Le format d'entrée est détecté automatiquement et le même format est utilisé pour la sortie.
Travailler avec des magasins de variables edk2 nécessite un volume de firmware en entrée. Typiquement, le fichier OVMF_VARS.fd créé lors de la compilation d'OVMF est utilisé pour cela (c'est un magasin de variables vide).
Les magasins de variables AWS peuvent également être créés de toutes pièces et écrits dans un fichier en utilisant l'option --output-aws.
Affiche et modifie les fichiers de base de données de signatures efi, exemple :
virt-fw-sigdb -i /etc/pki/ca-trust/extracted/edk2/cacerts.bin --print
Essayez virt-fw-sigdb --help pour plus d'informations d'utilisation.
Lit les variables efi du système de fichiers efivarfs de Linux et les décode/affiche.
Gère la configuration de démarrage efi pour les UKI (images de noyau unifié) lors de l'utilisation du démarrage direct (sans chargeur de démarrage comme grub ou systemd-boot).
Affichage d'informations pour les binaires pe (le format utilisé par efi).
Liste les signatures et la chaîne de certificats pour les binaires pe. Peut également extraire les certificats et signatures.
Il n'y a pas encore beaucoup de documentation, désolé. Les meilleures lectures de code pour commencer sont probablement les cas de test (voir tests/tests.py) et le code de l'utilitaire virt-fw-vars (voir virt/firmware/vars.py).
Release : pip3 install virt-firmware
Snapshot : pip3 install git+https://gitlab.com/kraxel/virt-firmware.git
Je prends les MR.
Il y a un bot de révision IA actif sur le dépôt qui commentera les MR. Il est bon pour la vérification orthographique. Parfois, il offre des suggestions utiles ou détecte des incohérences dans les correctifs. Parfois, il demande des choses stupides comme une vérification minutieuse des erreurs dans les cas de test. Parfois, il suggère de vérifier des conditions d'erreur qui ne peuvent pas se produire, mais le bot n'est apparemment pas assez intelligent pour le voir. Parfois, il suggère des réorganisations de code où c'est plus une question de goût ou de préférence personnelle que de prendre l'un ou l'autre chemin.
Donc, ne prenez pas le bot trop au sérieux.