Hack del DWL-900+
Il DWL-900+ si presta ad alcuni hack interessanti, sia hardware che
software.
Dal punto di vista del software ? possibile sostituire il suo
firmware, sia con versioni leggermente modificate e che aggiungono o migliorano
delle funzioni, sia addirittura con fimrware di altri produttori.
Le versioni modificate del firmware sono state prodotte da due ragazzi che
fanno capo a questo sito (i firmware si caricano qui):
http://home.earthlink.net/%7Emlampie/PowerHackDWL-900%2B.html
Fondamentalmene esistono 3 firmware modificati, 2 per il DWL900+ rev B ed uno
per la rev C.
La versione 2.61 (in questo momento l'ultima
diponibile) ? per il DWL-900+ rev B; la modifica consente di
impostare la potenza di uscita massima a 20 dB.
La versione
3.06 (in questo momento l'ultima diponibile) ? per il DWL-900+
rev C; anche qui, ? possibile impostare la potenza di uscita
massima a 20 dB.
La versione denominata 2.61 Antenna
Selection per il DWL900+ rev B ? dedicata a coloro che
hanno riscontrato problemi con la selezione dell'antenna dopo aver installato la
versione 2.61 modificata.
Personalmente ho potuto provare la versione 3.06 per la rev C, mentre le
altre sono state provate con successo da Nabuk e se lui ha mollato la 2.50 per
questa, potete stare sicuri che funziona davvero bene.
Ecco uno screenshoot di Netstumbler nel quale ? evidenziato il
livello di segnale "prima e dopo la cura" :)

L'altro hack che riguarda il firmware ? la sostituzione con quello di un
altro produttore.
In verit? molti Access Point venduti da diversi produttori
non sono altro che la rielaborazione di un progetto della Global Sun
Technologies. Secondo la nostra opinione, la Global Sun
Technologies vende un progetto hardware di base ed il relativo firmware ai
vari produttori. Questi ultimi personalizzano il layout hardware ed il firmware
secondo le proprie esigenze. Nella maggior parte dei casi non ? necessario (e
neppure possibile) stravolgere i progetti originali, e di conseguenza gli
hardware prodotti sono perfettamente compatibili tra loro.
La Global Sun
Technologies ha previsto un sistema di protezione dalle modifiche, che
comprende un sistema che evita di poter caricare il firmware di un produttore
sull'hardware di un altro. La protezione dalle modifiche ? garantita da un
checksum calcolato sul firmware, il cui algoritmo ? attualmente a me sconosciuto
(lo conoscono i ragazzi che hanno realizzato il power hack, ma non lo vogliono
rivelare a nessuno a quanto pare).
Il sistema ? semplice: all'interno del
firmware c'e' un ID che identifica ogni produttore, il quale fa parte del
calcolo chechsum.
Il firmware per effettuare l'upgrade fa due controlli:
calcola il checksum del firmware e controlla che l'ID memorizzato alla fine del
firmware ? pari a quello atteso.
Il vendor ID, che identifica il poduttore, ?
costituito da un solo carattere, che va in genere da '0' a '9'. L'ID di D-Link
ad esempio ? '4' (34 esadecimale) mentre quello di Us Robotics ? '6' (36
esadecimale)
Siccome il checksum del firmware ? pur sempre una sommatoria e
che si sta modificando un solo byte, passando il vendor ID da un vendor ad un
altro il checksum cambia di poco, anzi per fortuna di pochissimo: in pratica se
la differenza tra due vendor ID ? pari a X, basta sommare X al checksum
(considerato come un numero little endian a 32 bit) per ottenere un checksum
valido per la modifica del vendor ID.
Il vendor ID si trova alla fine del
file .bin del firmware, insieme all'ID di versione del firmware; l'ID di
versione ? costituito da 24 caratteri ed ? in genere simile alla stringa che
segue (? quello del DWL900+ rev B):
GL2422AP-00-0M0 T1.0
-04
L'ultimo carattere, '4', ? il vendor ID che ? stato
assegnato a D-Link. Quello di US Robotics ?
'6':
GL2422AP-00-0M0 T1.0 -06
Il
checksum del'ultima versione del firmware US Robotics 2249 ?:
87 AE
29 26
per trasformare il firmware in qualcosa che il D-Link
DWL-900+ rev B accetti come buono si deve cambiare il vendor ID da 6 a 4,
sottraendo due, dunque, al vendor ID di US Robotics. Il checksum va dunque
aggiornato allo stesso modo, basta sottrarvi 2:
87 AE 29
24
Le modifiche vanno fatte con un editor esadecimale ovviamente (ricordate che
il carattere ASCII '4' corisponde a 34 in esadecimale e '6' a 36).
Le
istruzioni che ho riportato sono valide per trasformare un Access Point di
qualsiasi altra marca che sia basato sullo stesso Hardware del DWL-900+.
Tuttavia ? stato appurato che tale sistema funziona solo quando il checksum del
firmware ? "fatto in un certo modo"; in pratica ci sono versioni del firmware
con le quali questo giochetto non funziona. Sfortunatamente non ci ? noto
l'algoritmo per calcolare il checksum.
In ogni caso, ecco dei firmware
gi? modificati, uno per trasfromare il DWL-900+ rev B in USR2249
Firmware
per trasfromare il DWL-900+ rev B in USR2249
Questo firmware
dovrebbe servire per tornare indietro ad un firmware versione 2.2, ?
stata usata con successo da tutti coloro che ci hanno provato
Firmware
per ritrasformare DWL-900+ trasformato in USR2249 di nuovo in un vero DWL-900+
DLink
Dopo essere tornati indietro, non dimenticate di aggiornare il
firmware ad una versione pi? recente.
Ecco il programma standalone per
amministrare l'AP:
Programma
di gestione dell'Access Point per l'USR2249
NOTA: dopo l'update l'Access
Point potrebbe essere configurato per ottenere l'IP tramite
DHCP. Se non avete un server DHCP dovete usare per forza il
programma di gestione di US Robotics. Per default l'AP US Robotics ha Username e
Password non settate, se ve le chiede dovreste lasciarle vuote.
Ecco una foto fatta da Nabuk
che dimostra l'avvenuta trasformazione di un DWL-900+ rev B in USR2249

Le possibilit? hardware che conosco sono due: il Power Over Ethernet e l'
alimentare l'AP a pi? di 5 volt.
La prima ? una vera e propria modifica
proposta da Ralph
Fowler per il DWL900+ rev B. Per la rev C la modifica dovrebbe essere
possibile, ma non mi sono mai applicato a studiarla.
La modifica consiste nel
dissaldare dei componenti e nel fare un paio di saldature. Dopo di che ?
possibile immettere l'alimentazione dell'Access Point direttamente sul cavo
ethernet, senza dover poi separare i dati dall'alimentazione una volta giunti
all'Access Point.
Trovate sul sito di Ralph Fowler tutte le
istruzioni per effettuare la modifica.
NOTA: se non siete
pratici con le microsaldature, lasciate perdere, rischiate solo di danneggiare
l'AP.
La seconda ? pi? che altro una piacevole scoperta, fatta sempre da
Ralph
Fowler.
All'interno del DWL-900+, sia rev B che rev C, c'? infatti un
converitore DC/DC switching. Questo significa che ? possibile alimentare
l'Access Point con tensioni che vanno da 5 a 30 volt senza ne' dannegiarlo ne'
surrriscaldarlo.
Perch? usare una tensione di alimentazione
maggiore? I motivi che conosco io sono tre:
- ? possibile usare un solo alimentatore da pi? di 5 volt per pi?
apparecchiature
- ? possibile usare delle batterie da 6 o 12 volt senza alcun convertitore
aggiuntivo
- si possono usare cavi per il passaggio della tensione in continue anche
mooooolto lunghi e sottili.
Ci sono moltissimi apparecchi alimentati a 12 o 9 volt; spesso tali
apparecchi vengono forniti con alimentatori sovradimensionati (in genere del
doppio o del quadruplo), che sarebbero in grado di alimentare molti pi?
apparati. Sfruttando il fatto che il DWL-900+ pu? essere alimentato con una
tensione variabile da 5 a 30 volt, possiamo alimentarlo insieme ad altri
apparecchi da 9 o 12 volt usando un solo alimentatore. Pensiamo poi al power
over ethernet: possiamo far passare una sola tensione!
Nel caso
dell'alimentazione a batteria, la presenza del convertitore switching integrato
? una manna: si evita infatti di dover convertire esternamente la tensione della
batteria da 12 (o 6) a 5 volt prima di fornirla all'Access Point; cosa che se
non viene fatta appunto con un convertitore switching comporta un enorme spreco
di energia ed una durata ridotta delle batterie.
Infine, nei casi in cui si
devono far percorrere decine di metri alla corrente continua, magari su un
doppino sottilissimo come quello dell'Ethernet, ? facile che all'altro capo la
tensione che arriva ? decisamente inferiore ed insufficiente ad alimentare gli
apparecchi. Se invece di mette un bel alimentatore da 12 V, si possono
percorrere decine o centinaia di metri di cavo prima che la tensione scenda a
meno di 5 V.