07 febbraio 2007

Skype legge il vostro BIOS ed il seriale della scheda madre

Ci si puo' fidare di un software a sorgente chiuso?

La risposta è no ovviamente, e Skype ne è l'ennesima dimostrazione vivente.

Di cosa se ne fa questo utilizzatissimo programma di telefonia VOIP delle informazioni che sono scritte nel mio BIOS? E' quello che si è chiesto anche questo blogger (dal quale ho tratto la notizia).

Come ci si è accorti di questa cosa? Eseguendo Skype su Windows 64 bit si otteneva un errore molto simile a questo:

The program or feature “\??\C:\Documents and Settings\Myria\Local Settings\Temp\12\1.com” cannot start or run due to incompatibility with 64-bit versions of Windows. Please contact the software vendor to ask if a 64-bit Windows compatible version is available.

Disassemblando l'eseguibile 1.com si è potuto risalire a cosa facesse quel codice. In sintesi si occupa di leggere le informazioni del BIOS (compreso il seriale della scheda madre) e di inviare le informazioni a Skype.

Grazie ad una disattenzione dei programmatori di Skype questa cosa è stata scoperta. Se fossero stati piu' esperti ed avessero saputo che NTVDM (un layer che permette ai programmi DOS/16bit di girare su Windows a 32bit in maniera trasparente) non è stato implementato su Windows 64bit, probabilmente questa cosa non sarebbe mai emersa (o per lo meno non così facilmente).
Inizialmente alcuni hanno obbiettato che potrebbe trattarsi di un metodo per rilevare il tipo di processore e decidere quindi se un PC è in grado o in meno di eseguire una certa istruzione (per evitare errori di esecuzione). Peccato però che ci siano metodi molto piu' portabili per svolgere questo compito e che il sistema operativo offra tutte le informazioni necessarie, senza bisogno di andare a leggere direttamente i dati dal BIOS.

A cosa serviranno allora questi dati? Staremo a vedere se nei prossimi giorni l'azienda vorrà chiarire la propria posizione su questa scoperta.