Zerando (resetando) a BIOS pela Linha de comando

Hoje precisei remover a senha da BIOS de um computador onde trabalho, porém o computador só tem Linux. Eu sei que no Windows(DOS) basta entrar no programa debug e executar:

o 70 2E
o 71 FF

(Este código funciona na maioria das BIOS, mas algumas placas Intel podem usar outros códigos)

A questão que começou a me desafiar era exatamente como fazer isso no Linux, ora eu poderia escrever um programa em C com 2 linhas de código que enviasse os valores 0x2E e 0xFF para as portas 0x70 e 0x71, mas seria um pouco fora de lógica fazer isso.

Procurei na Internet como fazer isso no Linux, encontrei uma thread muito interessante sobre o assunto [1]. Uma das sugestões era instalar um programa chamado “cmostool” que poderia ler o conteúdo da CMOS e até mesmo recuperar a senha.

Interessante, mas e se o computador não tem acesso à Internet?

Foi então que lembrei da técnica usada para controlar os bits da porta paralela pelo terminal do Linux.
Batata!, funcionou. Então resolvi procurar na Internet para descobrir se alguém já tinha documentado a idéia, mas não encontrei nada a respeito.

O comando fica assim:

# printf “\x2E” | dd bs=1 seek=112 of=/dev/port
# printf “\xFF” | dd bs=1 seek=113 of=/dev/port

O “printf” converte o texto em hexadecimal no byte correspondente e repassa este byte para o comando dd que por sua vez escreve este byte na porta 0x70 (112) e 0x71(113).

[1] – http://lists.samba.org/archive/linux/2001-September/000643.html

Advertisements

17 thoughts on “Zerando (resetando) a BIOS pela Linha de comando

  1. Muito legal sua dica. Nunca precisei disso antes mas se tivesse, provavelmente teria usado disquinho de dos, aquela velha história de matar uma barata com um 38. Sua ideia de fazer um pipe com printf foi simples e eficiente!

    Vou “linkar” no meu blog se não se importa!

  2. Poderia me ajudar com uma questão parecida com sua postagem?
    Usando essa mesma idéia e o programa DD poderia eu escrever a BIOS de uma placa de video AGP novamente que está “zerada”? Eu fiz uma atualização mal sucedida a algum tempo e agora ela nem é mais reconhecida, tão logo nenhum programa aceita escrever a BIOS, pois não a encontra. Alguma maneira de forçar esse procedimento? Agradeço desde já.

  3. Oi Douglas,

    Infelizmente você não conseguiria reprogramar facilmente a BIOS acessando diretamente o /dev/mem, pois o processo não é tão simples como apenas escrever o binário na posição da memória. Lembre-se a BIOS é na verdade uma memória Flash, então você precisa usar as mesmas rotinas usadas para se reprogramar memórias Flash.

    Você já tentou usar outro software para reprogramar sua BIOS?
    Tente usar o UniFlash ou o flashrom (http://www.coreboot.org/Flashrom).

    Se eles não funcionarem, então você terá que pegar sua BIOS e colocar em outra máquina para reprogramar. Fazendo isto é muito arriscado, pois você terá que iniciar o outro computador com a BIOS original deste e depois que ele tiver iniciado você tira a BIOS e coloca a sua BIOS no socket da placa mãe. Para tornar isto menos arriscado você pode comprar um BIOS-Savior que você coloca no socket da placa-mãe com ela desligada e depois que o computador ligar você só move uma chave para que ativar a programação da sua BIOS.

  4. Hola!
    Não consegui executar a linha, pois tive permissão negada ao abrir /dev/port.. dei o comando como root, sim.

    dd: abrindo “/dev/port”: Permissão negada

    Algo?
    Valeu!

  5. Ola Matias,

    Estes comandos funcionavam bem no Ubuntu em 2006, pode ser que tenham mudado alguma definição recentemente.

  6. Olá, Alan! Fica a dica para quem futuramente visitar, hoje recebi um notebook para formatar da positivo que estava com ubuntu, realizei o procedimento acima e funcionou perfeitamente. Precisei porque a positivo colocou ubunto e dirou o boot pelo CD para evitar a formatação. Valeu!

  7. Oi Rodnei,
    que bom que a dica serviu para você desbloquear a sua BIOS.
    Espero que você continue usando Linux nele, mesmo que não seja a versão que a Positivo instalou. []’s

  8. Caralhoooo Linux é o poder!
    vou explicar minha situação.
    Eu tenho Linux em dualboot com win e o Rwindows pegou a (M) de um vírus não sei como, mas acho que por atualização, que não me fazia entrar no sistema porque eu sempre uso senha de ADMIN, sendo que essa máquina eu só lia emails e sempre bloqueava o OS WIN sempre que me afastava da Maquina.
    então resolvi segui esses dois comando e resolveu.
    Obrigado.

  9. Como faço para reverter essa permissão, utilizei o comando e ele boqueou o Debian,
    agora to tentendo achar um jeito de reverter!

  10. Alan, boa tarde!
    Você teria alguma dica para habilitar a virtualização via linux da BIOS que vem sem as opções de faze-o no menu da BIOS (CCE-X745)
    Grato
    Martins

    1. Olá Martins,
      Infelizmente não sei como ativar. Se seu processador e chipset suportar o coreboot (antigo LinuxBIOS) você poderia tentar por ele.
      Um abraço,
      Alan

  11. Irmão, to com um probleminha, tenho um Lenovo com Satux, bom fui atualiza-lo para Deban 8 até aí tudo ok, só que quando reiniciei ele, vai para chave de sessão, certo, aí coloco usuário e senha mas ao invés de entrar normalmente ele sempre volta pra mesma tela, início de sessão, já até criei outro usuário e senha mas não resolve. Se puder me ajudar agradeço.

    1. Oi Jhony,
      não sei o que pode estar acontecendo, talvez algum programa importante que precisa ser executado após o login está falhando ou mesmo ausente. Após tentar logar no modo gráfico, tente ir para o modo texto: Ctrl + Alt + F2, digite seu usuário e senha, e veja se vê alguma mensagem de erro através do commando:

      cat /var/log/syslog

      Quando você instalou o Debian você selecionou as opções p/ instalar Gnome ou KDE? Pode ser algo relacionado a isso. Abraços!

  12. tenho um notebook philco ph24 o mesmo esta pedindo senha no setup
    no inicio aparede pricione f1 ou f2 para setup aparece uma tela toda preta ENTER PASSWORD:
    quando ditigo qualquer senha depois de 3 tentativas
    opcao f2 para continuar e tenta abrir o windows porem nao abre nada
    tenta restaurar o windows e volta para tela inicial e tudo denovo.. e a tela do notebook nao aparece mais
    somente na tela externa
    me ajudem

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s