
Kit de ferramentas para decodificar, inspecionar e modificar volumes de firmware UEFI e repositórios de variáveis. Suporta registro de certificados de secure boot, análise de assinatura de binários PE e gerenciamento de variáveis EFI para ambientes virtualizados.
Esta é uma pequena coleção de ferramentas para imagens de firmware edk2. Elas suportam a decodificação e impressão do conteúdo de volumes de firmware. Stores de variáveis (OVMF_VARS.fd) podem ser modificados, por exemplo, para registrar certificados de secure boot.
Decodifica e imprime o conteúdo de volumes de firmware.
Uso: virt-fw-dump -i <arquivo>.
Experimente virt-fw-dump --help para mais informações; existem algumas opções para
filtrar a saída.
Imprime e edita stores de volume de variáveis. Atualmente focado em registrar certificados e ativar o secure boot.
Imprimir variáveis: virt-fw-vars -i <arquivo> --print.
Registrar certificados:
virt-fw-vars \
--input <template> \
--output <vars> \
--enroll-redhat \
--secure-boot
Experimente virt-fw-vars --help para mais informações de uso.
O virt-fw-vars pode lidar com stores de variáveis edk2 (que são volumes de firmware flash) e stores de variáveis uefi da AWS. O formato de entrada é detectado automaticamente e o mesmo formato é usado para a saída.
Trabalhar com stores de variáveis edk2 requer um volume de firmware como entrada. Normalmente, o arquivo OVMF_VARS.fd criado ao compilar o OVMF é usado para isso (é um store de variáveis vazio).
Stores de variáveis da AWS também podem ser criados do zero e gravados em um
arquivo usando a opção --output-aws.
Imprime e edita arquivos de banco de dados de assinaturas efi, exemplo:
virt-fw-sigdb -i /etc/pki/ca-trust/extracted/edk2/cacerts.bin --print
Experimente virt-fw-sigdb --help para mais informações de uso.
Lê variáveis efi do efivarfs do linux e as decodifica/imprime.
Gerencia a configuração de boot efi para UKIs (imagens de kernel unificadas) ao usar boot direto (sem carregador de boot como grub ou systemd-boot).
Despejo de informações para binários pe (o formato usado por efi).
Lista assinaturas e cadeia de certificados para binários pe. Também pode extrair certificados e assinaturas.
Ainda não há muita documentação, desculpe. As melhores leituras de código para
começar são provavelmente os casos de teste (veja tests/tests.py) e o
código do utilitário virt-fw-vars (veja virt/firmware/vars.py).
Lançamento: pip3 install virt-firmware
Snapshot: pip3 install git+https://gitlab.com/kraxel/virt-firmware.git
Aceito MRs.
Há um bot de revisão por IA ativo no repositório que comentará nos MRs. Ele é bom em verificação ortográfica. Às vezes oferece sugestões úteis ou detecta inconsistências nos patches. Às vezes pede coisas desnecessárias, como verificação cuidadosa de erros em casos de teste. Às vezes sugere verificar condições de erro que não podem acontecer, mas o bot aparentemente não é inteligente o suficiente para perceber isso. Às vezes sugere reorganizações de código onde é mais uma questão de gosto ou preferência pessoal, dependendo do caminho que você escolher.
Portanto, não leve o bot muito a sério.