DS12887Más de una vez me ha sucedido tener un PC con la BIOS protegida por contraseña y que nadie tenga la bendita contraseña. El remedio típico es quitar la batería y dejarla un ratito, pero a veces no puede, por ejemplo en un portátil.

A mí personalmente me da mucha pereza abrir el PC :-P

Es mucho más cómodo, si logras arrancar un MS-DOS en la máquina, ejecutar un minúsculo programa que borre la contraseña. Esto puede lograr con algo tan sencillo como borrar la suma de comprobación (checksum) de la memoria CMOS (no volátil) donde se guarda la configuración de la BIOS.

Estudiando Tripas de Computadores me he enterado de la que la BIOS no tiene memoria, sino que guarda sus configuraciones en los 114 bytes de “User RAM” que tiene el reloj de tiempo real (RTC DS12887/MC146818) que mantiene la hora con una batería de litio. Un integrado interesante, por cierto.

La receta que expongo a continuación es muy simple y no estoy seguro de que funcione en los equipos PC modernos, pero hace un par de años la probé y me sacó del apuro. Se trata de crear un fichero biospwd.com mediante únicamente el comando copy del MS-DOS, sin ningún editor, escribiendo el código binario como una secuencia de caracteres ASCII con el teclado numérico y la tecla Alt

C:> copy con biospwd.com
Alt+178
...
Alt+32
Ctrl+Z
Enter
C:> biospwd.com

La secuencia de números es: 178, 112, 50, 246, 176, 46, 238, 66, 50, 192, 238, 205, 32. Cada vez que tecleas Alt+Num aparece en pantalla el caracter ASCII correspondiente, luego al pulsar Ctrl+Z aparece ^Z y al pulsar Enter cierra el fichero. Si lo abres con un disassembler verás el siguiente código ensamblador:


mov dl, 70h
xor dh, dh
mov al, 2Eh
out dx, al
inc dx
xor al, al
out dx, al
int 20h

Por lo que he leído, este código resetea la suma de comprobación de la CMOS, lo que hace que algunas BIOSes reseteen la CMOS (incluyendo la contraseña) a los valores por defecto.