[HowTo] Arcadyan/o2 IAD 4421, IAD 6431 Konfiguration aus Flash auslesen

hph

Mitglied
Mitglied seit
18 Nov 2012
Beiträge
253
Punkte für Reaktionen
0
Punkte
16
Hallo,

wer eine o2Box 6431 mit der Firmware 1.01.23b (oder neuer) besitzt, der kann seine PPPoE- und VoIP Daten nicht mehr über das Webinterface auslesen. Man kann zwar eine Konfigurationsdatei herunterladen und diese auch entschlüsseln, allerdings sind die PPPoE-/VoIP-Daten nicht enthalten.
Möchte man trotzdem seine Zugangsdaten bekommen, dann muss man die Konfigurationsdatei direkt und unzensiert aus dem Flash auslesen. Anschließend kann man meinen Arcadyan IAD Decrypter benutzen, um diese Datei wie gewohnt zu entschlüsseln.

Ein paar Warnhinweise
1. Die Box muss geöffnet werden. Sie ist in aller Regel Leihhardware von o2 und sollte deshalb möglichst vorsichtig geöffnet werden.

Update: Mit ein wenig Kreativität und Fingerspitzengefühl, muss die Box nicht mehr geöffnet werden! Eine gute Anleitung wurde von robert.b geposted: Daten aus der o2Box 6431 mit Firmware 1.01.23b auslesen OHNE diese öffnen zu müssen. Der User cefar hat diese Methode erfolgreich zusammen mit einem Raspberry Pi angewandt: Link.

2. Ein herkömmlicher USB-Seriell-Adapter ("COM-Port") arbeitet mit 12 V-Signalen und funktioniert hier NICHT. Er würde höchstwahrscheinlich die mit 3.3 V arbeitende Box zerstören.
3. Keinesfalls bin ich verantwortlich, falls ihr eure Box zerstört.

Anleitung
1. Schließt eure flammneue Box an den o2 Anschluss an und wartet, bis sie provisioniert ist. Sobald Telefon und Internet funktionieren, kann davon ausgegangen werden, dass die Provisionierung abgeschlossen ist ("die Box hat die Zugangsdaten von o2 heruntergeladen").
2. Besorgt euch einen USB-TTL Adapter. Ein solcher Adapter ist oft in alten Handykabeln verbaut. Ich habe zum Beispiel diesen hier verwendet. Der User KunterBunter verkauft ebenfalls welche.

EDIT: Mittlerweile würde ich zu folgendem Adapter mit CP2102 Chip raten.
Grund: Die Chips in den zuvor von mir verwendeten Handykabeln scheinen häufig zu wechseln. Ich hatte in meinem Kabel bspw. einen "echten" Prolific Chip. In einer zweiten Bestellung des gleichen Kabels habe ich dann einen "nachgemachten"/gefälschten Prolific Chip erhalten. Dieser wird von den originalen Treibern nicht unterstützt, und man erhält den Fehler "Code 10, Gerät konnte nicht gestartet werden" im Gerätemanager. Zudem liefen die Kabel aus meiner zweiten Bestellung sehr instabil und produzierten viele Fehler. Weiterer netter Nebeneffekt: Mit dem CP2102 Adapter muss man nicht löten/basteln, sondern kann direkt alles durch "Stecken" anschließen.

So sieht mein Kabel aus:
Kabel original_klein.jpg
3. Schneidet den Handystecker ab und bringt stattdessen Buchsen an. Diese habe ich unter dem Begriff "1P Dupont Jumper Wire Cable Housing Female Pin Connector" auf eBay gefunden. Alternativ könnt ihr auch irgendwelche alten Kabel/Stecker benutzen (z. B. Audiokabel von CD-ROM Laufwerken, falls sowas jemand noch hat^^).
Buchsen dran:
kabel fertig_klein.jpg
4. Schaltet eure Box aus und öffnet sie so vorsichtig wie möglich. Leider habe ich vom Öffnen der 6431 keine Bilder. Vielleicht kann ja jemand welche posten, wo die Klipppositionen zu erkennen sind?

Vielen Dank an thomas2084 für die Bilder:
Anhang anzeigen 73215
Anhang anzeigen 73216

Hier noch eine Anleitung mit Bildern vom User chuba2.
5. Bringt den Stecker auf der Stiftleiste an. Das Pinout der 6431 und der 4421 ist identisch:
Code:
Pin 4: Masse
Pin 3: RX vom Router zum TX des Kabels
Pin 2: TX vom Router zum RX des Kabels
Pin 1: nicht verbunden (Pin ist mit einem weißen Dreieck auf der Leiterplatte markiert)
Hier ein Foto der Pins einer 6431:
6431 pinout.jpg
Und ein Foto einer 4421 mit verbundenem Kabel:
Kabel angeschlossen_klein.jpg
6. Steckt das USB-Kabel nun in den Rechner. Schaut im Gerätemanager ("Ports (COM & LPT)") nach, ob der Adapter richtig erkannt wird und merkt euch den zugewiesenen COM-Port. Falls der Adapter nicht richtig erkannt wird, dann sucht auf der mitgelieferten CD oder beim Hersteller nach Treibern und installiert diese.

Möglichkeit A:
7.-12. Ladet euch das Auslese-Tool von chuba2 herunter und startet es gemäß seiner Anweisung.

Möglichkeit B (veraltet):
7. Ladet euch Python 2.6 herunter und installiert es.
8. Ladet euch PySerial (pyserial-2.7.win32.exe) herunter und installiert es.
9. Ladet euch das brntool (brntool.py) herunter. Benutzt am besten diesen Direktlink zum .zip-Archiv (Danke an bananenmann).
10. Öffnet ein Kommandozeilenfenster und geht in den Ordner, wo das brntool liegt.
11. Startet das brntool mit folgendem Befehl und ersetzt das COMx durch den vorher gemerkten COM-Port:
Code:
Für die o2Box 6431 benutzt ihr:
brntool.py --serial COMx --read=o2box6431.bin --addr=0xB0040000 --verbose --size=0x40000
 
Für die o2Box 4421 benutzt ihr:
brntool.py --serial COMx --read=o2box4421.bin --addr=0xB0020000 --verbose --size=0x40000
12. Schaltet den Router ein. Den Rest erledigt das brntool.

13. Nach 1-2 Minuten sollte das brntool fertig sein und ihr habt eine Datei mit exakt 256 KB (262144 Byte) erhalten.
brntool-output.png
dumped_filesize.png
14. Diese Datei ist eure vom Flash gedumpte Konfigurationsdatei. Lest hier weiter und benutzt den Arcadyan IAD Decrypter, um sie zu entschlüsseln.

Viel Erfolg! :)

Fragen zum Auslesen des Flashs
Eine Liste von häufigen Fehlern samt Lösungsvorschläge von verschiedenen Usern werde ich hier anhängen. Das ist mehr oder minder eine Zusammenfassung dieses Threads und der PNs und E-Mails, die ich erhalten habe. Kein Anspruch auf Vollständigkeit.

1. brntool Syntax Error <!DOCTYPE html>
Problem: Beim Starten des brntool erhaltet ihr die Fehlermeldung "Syntax Error <!DOCTYPE html>" oder Ähnliches.
Lösung: Ihr habt vermutlich die Datei brntool.py als HTML-Datei heruntergeladen. Bitte benutzt den Direktlink zum .zip-Archiv.

2. brntool "Waiting for command prompt" / "Ok", aber keine Punkte
Problem: Beim Starten des brntool bleibt brntool mit der Meldung "Waiting for command prompt" stehen. Manchmal zeigt es auch "ok" an, aber es erscheinen keine Punkte.
Lösung: Möglicherweise ist eure Verkabelung das Problem. Sie sollte so kurz wie möglich gehalten werden. Ferner ist eine gute Kontaktierung der Pins wichtig. Die Adern des Kabels um die Pins zu wickeln, reicht leider nicht aus. Ggf. mit isolierten Krokodilklemmen arbeiten. Zur Sicherheit solltet ihr die auch noch einmal prüfen, ob ihr das Kabel richtig angeschlossen habt: Insbesondere Ground/Masse liegt auf Pin 4 und nicht auf Pin 1.
Weiterhin solltet ihr bspw. mit PuTTY testen, ob ihr eine Ausgabe bekommt. Dazu stellt ihr es auf 115200/8-N-1 und kein Flow Control ein. Wenn ihr dort fehlerfreien Output beim Booten der o2Box bekommt, dann versucht einmal manuell den Bootloader anzuhalten. Dazu schaltet ihr die o2Box aus, öffnet den COM-Port des Adapters in PuTTY, (links)klickt zur Sicherheit nochmal in das PuTTY-Fenster, drückt schnell hintereinander die Leertaste und schaltet die Box ein. Sobald ihr den Danube Prompt seht, könnt ihr mit dem Drücken aufhören. Nun schließt ihr PuTTY und startet das brntool erneut.
Bekommt ihr keinen (lesbaren) Output mit PuTTY, so könnte auch euer Adapter defekt sein. Brückt dazu die RX und die TX Leitung des Adapters und öffnet den COM-Port in PuTTY. Tippt ein paar Zeichen auf der Tastatur. Falls diese Zeichen in PuTTY erscheinen, dann funktioniert der Adapter.
 
Zuletzt bearbeitet:
Hallo hph,
vielen Dank für die Anleitung. Ein paar kleine Fragen habe ich dann noch: Ich habe mir gleich das von dir empfohlene USB-Kabel bestellt. Ist es (mithilfe der Treiber) auch zu Win7 64Bit kompatibel? Im Internet steht nämlich, dass es das nicht ist (wenn es sich wirklich um das gleiche kabel handelt). Hast Du es denn mit exakt diesem ausprobiert? Und eine noch viel wichtigere Frage: Woher weiß ich, welche Ader RX, TX und Masse an dem Kabel ist? Kann man das nur mit einem Multimeter Messen? Und wenn ja, wie? Reicht dazu dieses Gerät? http://www.ebay.de/itm/310637986720?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1438.l2649. Und wenn ja, wie gehe ich dann vor? Sorry, falls das alles zu banal für dich ist, bin aber absoluter Laie. Vielen Dank im Voraus!!!
 
Hi,

ich habe genau das eBay Kabel benutzt, was ich auch empfohlen habe. Es hat einen (echten) Prolific Chipsatz und funktioniert direkt nach Einstecken unter Win 7 64 Bit.
prolific 64 bit.png
Wenn du genau das gleiche Kabel benutzt, dann könnte es gut sein, dass die Farben identisch sind. Bei mir war Pin 2: weiß, Pin 3: rot, Pin 4: schwarz.

Ich habe es so gemacht: Man nimmt eine Drahtbrücke und verbindet auf gut Glück 2 Adern des Kabels. Dann öffnet man den COM-Port in Putty mit beliebiger Baud Rate. Wenn man dann ein paar Zeichen tippt, und sie lesen kann, dann weiß man, dass der Dritte (unverbunde) Masse ist. Ansonsten setzt man die Brücke um, bis man sein Getipptes lesen kann.
Von den zwei verbundenen Adern weiß man, dass sie RX und TX sind - aber nicht, welche davon was ist. Diese steckt man entsprechend des Pinouts mit einer 50:50 Chance richtig ein. Bei mir ist nie etwas passiert, auch wenn ich RX und TX vertauscht hatte. Aber ich übernehme keine Gewährleistung.
Der korrekte Weg wäre wohl ein Oszi anzuschließen und damit TX und Masse zu identifizieren.

Falls jemand für seinen Adapter keine 64 Bit Treiber findet, dann muss man wohl ein 32 Bit System auf einer Virtual Machine (VMware, VirtualBox, etc.) installieren und den USB Adapter dorthin weiterleiten.
 
Zuletzt bearbeitet:
Super! Dann werde ich es so machen, sobald das Kabel da ist und berichten. Ein schönes Wochenende noch!!!
 
Achja - und wie muss der COM-Port für den Flash-Dump mit dem USB-Kabel eigentlich optimalerweise eingestellt werden? Also Baud-Rate etc?

Edit:
Ich glaub ich habs gefunden: 115200 bps, 8 Datenbits, 1 Stoppbit, Parität und Flusssteuerung auf "Keine", beide FIFO-Puffer auf der höchsten Einstellung belassen - richtig?
 
Zuletzt bearbeitet:
Eingestellt habe ich im Gerätemanager/Prolific-Treiber nichts. Die Standardeinstellungen bei mir lauten:
Use FIFO buffers: an
Receive Buffer: High (14)
Transmit Buffer: High (16)

Den Rest macht brntool automatisch. Aber ja, es verwendet 115200/8-N-1 und kein Flow Control.
 
Komisch komisch... nen USB CA 42 Nokia Adapter hab ich mir organisiert. Im Putty bekomme ich wenn ich RX/TX zusammenschalte ne Ausgabe. Also brntool.py angeworfen mit den genannten Einstellungen. Ein "Waiting for a Prompt... OK" bekomme ich. Also er empfängt ja irgendwas. Ne Datei mit 0Byte Größe wird auch angelegt.
Doch dann kommen bei mir keine Punkte mehr, wie in dem Screenshot angegeben. Verkabelung sollte soweit stimmen. Kommt es bei der Datenrate auf Schirmung des Kabels an? Meine Konstruktion sieht doch sehr abenteuerlich aus (Handykabel abgeschnitten und lose Enden an ein CD-Rom Kabel rangeknüppert (verdrillt)).
Wenn ich im Putty das starten des Routers tracke bekomme ich reichlich Ausgaben ins Fenster... aber nur kryptische Zeichen.
Hat jemand ne Idee? Was noch sein könnte? Ich will diese doofe Büchse endlich loswerden.
 
Hi,

hast du Putty auf 115200/8-N-1, kein Flow Control eingestellt? Hast du die Masse ganz sicher richtig verbunden (auf Pin 4)? Der Pin mit der Pfeilmarkierung muss frei bleiben.
Hast du den Adapter zum Testen direkt gebrückt oder hast du es hinter deiner abenteuerlichen Konstruktion gebrückt? Falls Ersteres: Brücke mal hinter deiner Konstruktion und schau, ob es noch funktioniert.
Die Schirmung sollte keine Rolle spielen, wenn du nicht gerade 5 m Kabel hast.
Solange du in Putty mit o. g. Einstellungen keinen vernünftigen (lesbaren) Output bekommst, brauchst du mit dem brntool eigentlich nicht zu experimentieren. Das wird dann auch nicht funktionieren.

Grüße
hph
 
Zuletzt bearbeitet:
Bei mir auch. TuTTY funktioniert (nachdem ich es auf 115200 eingestellt habe!). brntool.py funktioniert nicht. Ich hab den Eindruck, dass das nicht die richtige Geschwindigkeit einstellt, da das OK nach Waiting for a Prompt unterschiedlich lang braucht. Ähnlich, wenn bei TuTTY auf 9600 stelle bekomme ich viel wirre Zeichen, die zufällig nach einiger Zeit mal "]:" (den Prompt) enthalten.
Leider bin ich in Python nur so bewandert, dass ich ungefähr sehe, was das Skript macht, aber es nicht selbst debuggen kann.
Das ist sicher kein Hardwareproblem, sondern muss eigentlich am Skript liegen.
 
Zuletzt bearbeitet:
Soll ihc mal per teamViewer schauen?
 
So... eben alles nochmal schön gemacht und ordentlich zusammen gelötet. Wenn ich im Putty den Startvorgang bei 115200 mit tracke kriege ich ne Menge Statusmeldungen in Klarschrift. Mit brntool.py komme ich über das "OK" und den blinkenden Cursor darunter nicht hinaus. Bin für jede Hilfe dankbar...
Die richtigen Einstellungen im Geräte-Managr für die serielle Schnittstelle habe ich auch...
Muß der Internetanschluß beim booten angeschlossen sein oder nicht?
 
Sooo, eben nochmal alles was an Log Output kommt mit nem Putty getrackt und als File weggeschrieben. Insgesamt sind dies leider nur 69KB. Also nicht die angedachten 256KB. Sehr ärgerlich...
 
Ob die Box an der Telefonleitung hängt oder nicht ist für das Auslesen egal.
Was du in Putty siehst, ist auch nicht gleich das, was in die Datei geschrieben wird. brntool liest den Speicher in kleinen Blöcken aus, sodass es regelmäßig neue Blocke per Befehl anfordern muss. Du hast also a) nur einen Block erwischt. b) Gibt der Bootloader den Speicher als Hexadezimalnotation im ASCII Format aus. 69 KB empfangene ASCII Daten enthalten also nur einen Bruchteil an "Nutzdaten" für die Datei.
Wieso es nun bei dir Hängen bleibt, weiß ich nicht. Wie lange wartest du denn? Kommen bei die keine Punkte oder Ausrufezeichen mit der ZeiT?
 
erstmal vielen Dank an hph für den Einsatz!
Ich habe aber folgendes Problem: beim starten des tools kommt ein Syntax Error:
syntaxerror.JPG
 
Sooo kurzes Feedback nach einer Teamviewer Session mit "hph".
Eeendlich frei surfen... man fühlt sich gleich viel besser. :) Keine täglichen Abstürze mehr hoffentlich und endlich DynDns... Super.
Der Mann versteht sein Handwerk wirklich!!!

Spende per Paypal ist unterwegs!!
Großes Lob von meiner Seite für die schnelle unkomplizierte Hilfe!!
 
vielen Dank auch von meiner Seite! Gerade eben alles geklappt
 
Vielen Dank für eure Spenden :)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.