Preciso implementar um programa executado fora do sistema operacional no mesmo nível do BIOS, que lerá todos os dados do firmware UEFI do chip do BIOS, quais endereços de memória precisam ser lidos (existe algum tipo de API para obter todos os dados do firmware UEFI?) e onde exatamente está o firmware UEFI?
relate perguntas
-
A entrada efibootmgr Ubuntu 0000 reaparece após a reinicialização
-
Como fazer um backup incremental e pesquisável completo de todo o disco rígido e tabela de partições?
-
Inicialização de rede (PXE) do BIOS/EFI
-
Red Hat 7.4: Como injetar o arquivo kickstart na mídia USB para o sistema somente UEFI?
-
entradas de variável efi em /sys/firmware/efi/efivars/
Nesta questão, tudo é realmente explicado. Sem hardware especializado, não é possível ler todos os dados de firmware UEFI diretamente do chip. Como ler dados de firmware UEFI do kernel LINUX?
Embora os dados do firmware UEFI sejam armazenados na memória flash SPI na placa-mãe, lê-los em um nível baixo fora do sistema operacional requer hardware especializado (como um programador SPI) ou acesso por meio de uma interface apropriada na placa-mãe.
Dentro do sistema operacional, as ferramentas de firmware podem recuperar certas informações, mas um despejo completo do firmware normalmente requer acesso físico ou interfaces específicas de depuração de firmware.
Normalmente, não é possível acessar os dados completos do firmware UEFI no chip apenas com software, pois esses dados são armazenados em uma memória flash especial na placa-mãe. O acesso a essa memória geralmente requer interfaces especiais ou ferramentas de firmware privilegiadas.
Alguns dados UEFI podem ser acessados por meio de APIs de software específicas e utilitários de sistema (como efivar ou fwupd no Linux) dentro do sistema operacional.
Eles geralmente fornecem apenas variáveis de ambiente e dados de configuração para UEFI, não os dados completos do firmware.
Um despejo completo do firmware geralmente requer acesso à memória flash SPI, para a qual é necessário hardware especializado.
Como ler/escrever todas as configurações do BIOS a partir do Linux CLI?
Geralmente não é possível acessar todos os dados do firmware UEFI no chip diretamente com software sozinho, pois esses dados são armazenados em uma memória flash especial na placa-mãe. O acesso a essa memória geralmente requer interfaces especiais ou ferramentas de firmware privilegiadas.
Alguns dados UEFI podem ser lidos por meio de APIs de software específicas e utilitários de sistema (como efivar, fwupd ou outras ferramentas no Linux) dentro do sistema operacional em execução.
Eles geralmente fornecem apenas variáveis de ambiente e dados de configuração para UEFI, não os dados completos do firmware. Uma imagem completa do firmware geralmente requer acesso à memória flash SPI, o que necessita de hardware especializado.
Você precisa das especificações exatas do hardware e dos chips de cada fabricante.
Com dispositivos mais novos, isso seria uma vulnerabilidade significativa, como hackear a senha do BIOS ou ter software malicioso se instalando automaticamente, se isso fosse possível.
Pelos seus comentários, sei que você quer extrair o dump inteiro para gerar um hash para que o sistema possa verificar mais tarde se há malware ou se seu BIOS/UEFI foi alterado. Há muita teoria misturada com prática aqui!
Inicialização do núcleo
Coreboot é um firmware de código aberto que serve como um substituto para BIOS/UEFI proprietário em sistemas x86 e ARM. Ele inicializa o hardware, inicia o kernel do sistema operacional e pode ser combinado com vários payloads (Linuxboot, SeaBIOS ou Tianocore) devido ao seu design modular para fornecer funções que são tipicamente integradas ao BIOS/UEFI.
O Coreboot permite controle de baixo nível e modificação de firmware, tornando-o útil para desenvolvedores que precisam de mais controle sobre o sistema. Ele pode ser mais seguro e rápido, pois executa apenas as funções necessárias para o processo de inicialização.
O suporte para diferentes placas-mãe é limitado, pois o Coreboot requer personalização para cada configuração de hardware específica.
Essa é uma possibilidade de fazer algo, mas você deve sempre manter a segurança em mente, pois abrir uma porta apenas com software também pode permitir que malware tire vantagem!