Quelli che mi seguono dagli inizi si ricorderanno sicuramente che ho già trattato l’argomento. Per fare un sunto, sappiate che vi sono attualmente 3 strade per togliere la password al Bios in base alla possibilità e necessità dell’utente.
Vorrei ricordare a tutti che tale possibilità non è da considerarsi un tentativo hacker, ma solamente un’operazione di manutenzione, se ne avete il diritto ovviamente. Vorrei citare esempi come il dimenticarsi la password, comprare un computer usato con una password sconosciuta, fare assistenza tecnica e dover modificare il bios, etc.
Esiste un modo parallelo che ho avuto modo di provare solo sull’Award Bios e non richiede ne programmi o il dover smontare il computer e rischiare di far fondere tutto. Praticamente si fa a mano quello che fanno programmi come CmosPwd e amici.
Apriamo il prompt dei comandi e digitiamo
“debug” (senza le apici ovviamente)
o 70 10
o 71 20
quit
Riavviate il computer e buona fortuna, la password non c’è più!
Riguardo a quella operazione con il “debug.exe” - spero veramente che windows non sia così stupido da permettere ad un utente una operazione simile, e comunque, nel caso lo lasciasse fare, credo sia meglio sottolineare il fatto che è una _pessima_ idea, in quanto si tratta di un’operazione molto delicata.
Per chi non lo sapesse, quelle istruzioni vanno a scrivere su due porte (0×70 e 0×71) che sono (per standard industriale, quindi anche se molto probabile non sicuro) collegate ai controlli RAM/RTC del CMOS. Oltre al fatto non secondario che scrivere sulla porta 0×70 influisce sullo stato degli NMI, le due operazioni (ogni scrittura deve essere seguita da un’operazione sulla 0×71 altrimenti lo RTC rimane in uno stato non predicibile) portano alla sovrascrittura di dati nella RAM del CMOS. In soldoni, per capirci, dove ci sono informazioni sullo stato della macchina, come stato degli interrupt, dei dischi, dell’orologio e altro ancora.
Oltretutto, scrivere nella locazione 0×10 come scritto sopra secondo le mie tabellone CMOS va a sovrascrivere i dati del floppy, mentre la password (crittata) dovrebbe essere più facile trovarla a 0×38-0×3D, anche se probabilmente sarebbe più facile eliminare i controlli alla locazione 0×34, bit 6 - sempre che non fosse una pessima idea a prescindere, visto che l’unico modo di essere sicuri è controllare il datasheet del cmos montato sulla propria scheda madre.
E comunque… visto che ci siamo, se la stabilità della sistema non è un problema, a questo punto conviene cancellare _tutto_ quello che c’è nel CMOS, ma occorre un loop (benchè semplice lo riporto, in assembler - ovviamente non lo provo ma dovrebbe funzionare - da far correre in ring0, a int staccati):
cli
xor %ax, %ax
f1: mov %cx, %ax
out %ax, $0×70
nop
nop
nop
xor %ax, %ax
out %al, $0×71
inc %cx
cmp $0×100, %cx
jb f1
sti
Scusatemi se sono prolisso ma non accetto l’idea di persone che “smanettano” senza avere la minima idea di quello che fanno, e vorrei anche far capire che la “stabilità” di una macchina dipende anche da quanto un utente è informato.
p.s. Far mangiare a questo sistema automatico un commento è difficilissimo - non so se ci riuscirò mai!
13 Settembre, 2008 23:43
Se il tuo intento è quello di far capire che lo “smanettone” fa danni perchè non sa quello che fa perchè copia istruzioni e codici da ogni dove…. perchè allora hai postato del codice senza testarlo? eh eh eh =)
Che problemi hai avuto nel postare il commento? puoi mandarmi maggiori info tramite mail? Comunque erano arrivate tutte e 3 le volte al centro di moderazione!
14 Settembre, 2008 07:38
Sul provare il codice hai ragione
Il fatto è che non ho attualmente a disposizione un computer “da battaglia” dove fare queste prove, potrei provarlo in una macchina virtuale ma il risultato non sarebbe attendibile. Appena ho la possibilità in ogni caso provo a far correre quel codice e ti dico il risultato. Comunque combatto spesso con questa robetta e spero di non fare errori in dieci righe di codice, altrimenti mi tocca proprio cambiare lavoro 
P.S. Per i commenti - se sono arrivati tutti e tre ok, si vede che mi sono lasciato trarre in inganno dal fatto che non mi ha dato alcun feedback: di solito scrive qualcosa del tipo “il commento è stato messo in moderazione”, cosa che non ha fatto questa volta.
14 Settembre, 2008 11:34
Di nuovo io - il codice non l’ho ancora potuto provare, ma in compenso, visto che ero troppo curioso di sapere se “potesse” funzionare, invece di scrivere ho scritto il codice necessario a leggere (ovvero ho semplicemente messo un “in” al posto di un “out”) e devo dire che funziona. Con queste poche righe è possibile avere la mappa completa del CMOS.
Ho schiaffato tutto sul mio blog, se ci vuoi dare un’occhiata (magari compilarlo e provarlo) sei il benvenuto. L’indirizzo è il seguente
Ovviamente c’è anche un backlink a questa pagina
15 Settembre, 2008 16:49