Hack del DWL-900+

Hack del DWL-900+

Giuseppe Amato 27/11/2003
 www.napoliwireless.net

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.





Questo Articolo proviene da AIRGATE.IT
http://www.airgate.it

L'URL per questa storia è:
http://www.airgate.it/modules.php?name=Sections&op=viewarticle&artid=36