Ferramentas para modificar variáveis ​​UEFI no Windows / Linux?

12

Eu tenho uma máquina DELL que usa o Phoenix SecureCore Tiano como UEFI / BIOS. No entanto, não é totalmente configurável, pois o shell UEFI e os menus estão ocultos na configuração da BIOS.

Gostaria de saber se havia ferramentas que podem modificar as configurações UEFI (como itens de inicialização) no modo de usuário? como "efibootmgr" no linux.

btw, porque não é configurável, acho que o processo de inicialização está no modo legado, ou seja, os sistemas operacionais não conseguem detectar a UEFI, certo?

então, esse é o paradoxo: preciso inicializar no modo não herdado para permitir que as ferramentas UEFI modifiquem itens de inicialização no modo de usuário? mas devo habilitar as ferramentas UEFI para modificar os itens de inicialização primeiro para ativar a inicialização não herdada?

pedra preciosa
fonte
apenas descobriu que efi vars armazenado na NVRAM, talvez este link ajuda: wikileaks.org/ciav7p1/cms/page_26968084.html
marstone

Respostas:

3

As implementações de EFI devem fornecer uma maneira de controlar o modo de inicialização (EFI x BIOS), exceto, é claro, para implementações somente de EFI sem suporte ao BIOS. Com muita frequência, porém, o firmware dá ao usuário pouco ou nenhum controle explícito sobre o assunto; em vez disso, o firmware tenta inferir o modo de inicialização correto com base no estado do disco rígido - por exemplo, ele pode usar o modo EFI se uma GPT for detectada e o modo BIOS se um MBR for encontrado; ou pode usar o modo EFI se for encontrada uma Partição de Sistema EFI (ESP) e o modo BIOS, se não. Você pode encontrar uma pista sobre o que seu firmware está fazendo lendo o manual. Caso contrário, você apenas terá que experimentar.

Ao inicializar mídia removível, as regras podem ser diferentes, mas muitas vezes você pode dar um chute na direção certa, fornecendo apenas um modo de inicialização. Isso pode exigir a remasterização de um CD ou (mais facilmente) a seleção cuidadosa de um CD. Se você está tentando forçar uma inicialização no modo EFI, meu rEFInd e, em particular, sua versão em CD inicializável, podem ser úteis; ele é inicializado apenas no modo EFI e, conforme configurado, atuará como um gerenciador de inicialização para outras inicializações baseadas em EFI, mas não para inicializações no modo BIOS.

Rod Smith
fonte
obrigado! Quando particiono meu hd no modo MBR, ele funciona conforme o esperado. no entanto, se eu usar o modo GPT, não importa se há um ESP ou não, ele simplesmente não inicializa e gera este erro: "Sistema operacional não encontrado". A mensagem de erro / erro de sintaxe w, certamente é do próprio BIOS após a engenharia reversa da ROM do BIOS (não de qualquer carregador de inicialização ou registro de inicialização), portanto, simplesmente não consigo que o controle de inicialização seja passado no modo GPT.
marstone
Alguns sistemas baseados em EFI serão inicializados apenas no modo BIOS se detectar uma partição MBR com seu conjunto de sinalizadores "boot" (também conhecido como "ativo"). Em um disco GPT, isso requer a configuração desse sinalizador na partição de proteção 0xEE no MBR. Você pode usar uma ferramenta como o fdisk do Linux para fazer isso (use a opção "a"). Você não usar separaram, GParted, ou outras ferramentas libparted baseada em fazer isso; em um disco GPT, eles não dão controle sobre o conteúdo do MBR e o "sinalizador de inicialização" será aplicado a uma partição GPT , com o significado de que ele define o código de tipo para o de uma Partição de Sistema EFI (ESP) .
Rod Smith
2

Acabo de liberar meu utilitário se alguém estiver interessado. Edita a variável UEFI no Windows.

https://gist.github.com/Zibri/19f9838ffd12349bb2c6c3afddc9388f/

Atualizado em 25/02/2020 para a versão 1.2.
Não é necessária conexão à Internet.
O total de vírus registra 6 (falsos positivos) acima de 96 porque o código está ofuscado.

Zibri
fonte
NÃO É. O programa é compactado e protegido e alguns antivírus fornecem um falso positivo. Não é vírus.
Zibri
Para sinalizadores: Este programa obtém uma detecção um tanto alarmante no Virustotal, mas parece ser uma detecção genérica e "programa potencialmente indesejado". É possível que, devido ao que este programa faz, tenha entrado nos pacotes de malware, mas até que alguém possa oferecer evidências diretas de que esse é um malware real, a resposta está boa por enquanto.
Mokubai
Não liberei o código-fonte e dificultou a engenharia reversa apenas para "atrasar" ou "limitar" exatamente a proliferação de malware com base no meu código "simples". Estou pensando em liberar a fonte, não é segredo, só não queria ser a principal causa de futuros malwares baseados em uefi.
Zibri
Edit: atualizado hoje para a versão 1.1.
Zibri 19/01
Atualizado para a versão 1.2
Zibri 25/02
1

Acabei de comprar um Dell XPS 17 (l702x) e estou interessado em inicializar vários sistemas operacionais. Se o que entendi estiver correto, a Dell tem algum tipo de 'BIOS' bloqueado do Phoenix SecureCore Tiano UEFI. Pelo que li, o UEFI não é diretamente utilizável (possivelmente por meio de um menu oculto etc., o que pode exigir um mod do BIOS).

Parece possível usar / acessar um shell EFI compatível com Phoenix, usando os pacotes TianoCore edk2 / ShellPkg (fonte) e edk2 / ShellBinPkg (binário) de código aberto (BSD) ( GIT Repo ).

Eu recomendo o ShellBinPkg mais recente , usando o perfil "shell completo" do UEFI Shell 2.0 (suporta a maioria dos comandos). Você também pode reconstruir um shell personalizado usando o ShellPkg (compilar autônomo ou incluí-lo no pacote OVMF para gerar uma versão x64) - Inclusão do shell UEFI na distribuição Linux do Linux .

O binário do shell [U] EFI é compilado para ser executado independentemente do firmware. Isso pode ser testado colocando o shell em um sistema de arquivos FAT32 (pen drive, partição do disco rígido), renomeado como /efi/boot/bootx64.efie inicializando a partir dele, a partir do BIOS [UEFI].

O texto de ajuda do shell é acessado digitando help utilname. Apenas usar helpproduz uma lista de todos os comandos shell disponíveis.

Nota: Se você não conseguir iniciar o UEFI Shell diretamente do firmware, crie um pen drive USB FAT32 com o Shell.efi copiado como (USB) /efi/boot/bootx64.efi. Este USB deve aparecer no menu de inicialização do firmware. A ativação desta opção iniciará o UEFI Shell para você. - Arch Linux assume a UEFI

Big Rich
fonte
isso é ótimo. eu comprei o mesmo modelo l702x ;-) vou tentar amanhã! o menu oculto ainda pode ser desbloqueado, tanto quanto eu sei. btw, você compilou o bootx64.efi e já testou no seu xps?
22712 marstone
ShellBinPkg é um binário UEFI pré-compilado, você deve renomear e colocar no diretório certo. Eu tentei e não funcionou para mim, mas não acredito que seja o único shell disponível (sou novo nisso também). Esta postagem parece oferecer um download do shell que deve funcionar com o Phoenix SecureCore Tiano (consulte a conversa.ridikulus.rat-> cfr). Deixe-nos saber como você se sai.
Big Rich
Eu tentei colocar o arquivo efi do post acima em /efi/boot/bootx64.efi, no entanto, meu disco USB inicializou no grub normalmente (já é inicializável); então eu formatei meu disco u no modo HDD e recebi o erro "Remover discos ou outras mídias ...". Então eu fiz uma busca hexadecimal por esse setor de strings por setor no meu disco u, ele não existia. a mensagem deve do BIOS Tiano do L702x. algo de errado para minhas operações?
marstone
Marstone @, desculpe cara, mas eu sou um novato quando se trata deste material UEFI (eu só estou bem com o meu Google-fu ;-)). Estive ocupado em outro lugar, assim que tiver algum tempo, eu mesmo tentarei isso e deixarei você saber como eu vou. Saúde, Rich.
Big Rich
Embora a Dell tenha lançado um BIOS habilitado para UEFI ( A19 ), o 'capitankasar' publicado na revisão do notebook postou 2x bioses A18 modificados ( uefi , uefi + nvida gpu ), eles abordam o overclocking de UEFI, o GPU NVidia e a velocidade dos ventiladores etc. (alguns desses recursos também pode existir no lançamento oficial da Dell, eu mesmo não confirmei isso). Como sempre, use por sua própria conta e risco ;-)
Big Rich
0

Nas minhas experiências, concluí da seguinte forma:

Se você deseja usar uma chave USB de inicialização múltipla U / EFI, DEVE:

  1. limpe todas as partições / limpe a unidade completamente;
  2. converta-o para GPT;
  3. crie uma partição primária e formate-a como Fat32;
  4. crie um diretório chamado EFI (não diferencia maiúsculas de minúsculas) na raiz da unidade;
  5. crie um subdiretório no diretório anterior chamado boot (também não diferencia maiúsculas de minúsculas)
  6. coloque o arquivo .efi desejado e renomeie-o para corresponder à arquitetura do sistema: bootx64.efi se x64, bootia32.efi se x86 ou bootaa64.efi se ARM64.

Tentei em uma tela sensível ao toque Dell Inspiron 5437 e funcionou perfeitamente.

Uma última coisa: se o arquivo .efi não for assinado com a assinatura digital da Microsoft, será necessário desativar apenas o modo de inicialização segura nas configurações de fw. Deixe a inicialização UEFI e o modo de inicialização rápida ativados.

Para testes, localize a chave de inicialização múltipla da sua máquina OEM antes de instalá-la permanentemente e selecione uefi: <your usb key>na lista apresentada.

Thiago Postio
fonte