[HowTo] Arcadyan/o2 IAD 4421, IAD 6431 VoIP Daten aus Webinterface auslesen

Das wär super wenn Du so ein Tool programmieren könntest, vor allem das packen aller .bin parts statt nur (vermutlich) der ersten 5 wäre weiterführend.
 
Habe mal versucht, die extrahierte firmware unmodifiziert über die recoveryfunktion zu flashen. leider schlägt dies auch schon fehl mit dem "File verification failed" fehler. auf der seriellen schnittstelle steht dabei dann folgendes:
Code:
upgrade CGI > process content-type...
boundary=-----------------------------12745441583074688571099308260
endbound=-----------------------------12745441583074688571099308260--
content-length: 7864675
parse file upload
[CGI] endp: [; filename="o2-code-2a.bin"] 
value: o2-code-2a.bin
[CGI] enter receive loop...
################[viele viele hashes]#####
count=7864320
[upgrade_CGI] FwUI , Firmware + UI
***** [CGI-Signature Check] buf:[BRNDA6431], sigInFlash:[\0x8c]...Fail!
[CGI] File verification failed !!

ich denke, man sollte zuerste versuchen rauszufinden, wie die hochzuladene Firmware "signiert" werden muss (glaube nicht, dass es sich dabei um eine "echte" signatur à la gpg o.ä. handelt).
 
ok man muss einfach den String BRNDA6431 und ein Nullbyte an die firmware anhängen, dann funktioniert das flashen
 
So, hab mal folgendes gemacht. Nach dem Split habe ich ja 7 Parts, wieviele hast Du eigentlich?. Ich hab mal Part 5 und 6 weggelassen, Part 7 (mit der BRNDA6431 + Nullbyte) Bezeichnung in Part 5 umbenannte, FW gebaut und geflasht.

Das funktioniert, das flashen, ohne Probleme

Code:
upgrade CGI > process content-type...
boundary=-----------------------------1121828991375
endbound=-----------------------------1121828991375--
content-length: 2757945
parse file upload
[CGI] endp: [; filename="fw-new.bin"] 
value: fw-new.bin
[CGI] enter receive loop...
########## GANZ viele HASHES ###########count=2757642
[upgrade_CGI] FwUI , Firmware + UI
***** [CGI-Signature Check] buf:[BRNDA6431], sigInFlash:[BRNDA6431]...OK!
[CGI] write to flash task...

update UI and FW to area 6, length=2757632...
EON EN29LV640L top boot 16-bit mode found
erase from location b0860000 done
erase from location b0880000 done
erase from location b08a0000 done
erase from location b08c0000 done
erase from location b08e0000 done
erase from location b0900000 done
erase from location b0920000 done
erase from location b0940000 done
erase from location b0960000 done
erase from location b0980000 done
erase from location b09a0000 done
erase from location b09c0000 done
erase from location b09e0000 done
erase from location b0a00000 done
erase from location b0a20000 done
erase from location b0a40000 done
erase from location b0a60000 done
erase from location b0a80000 done
erase from location b0aa0000 done
erase from location b0ac0000 done
erase from location b0ae0000 done
erase from location b0b00000 done
erase from location b0b20000 done
erase from location b0b40000 done
erase from location b0b60000 done
erase from location b0b80000 done
erase from location b0ba0000 done
erase from location b0fdfff4 done
write length 0x2a1400
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ..............................................................

.............................................
Set Primary to 1.....PASS

Write complete !
period_task running 960
period_task running 1020

Warm_Reboot()




!!!!!!!!!!!!!!

dann aber bootfehler -> Es wird ZIP3 (im Gegensatz zum normalen Boot) nicht zuerst gefunden
sondern direkt ZIP1 -> dann reboot

!!!!!!!!!!!!!!




ROM VER: 1®
ROM VER: 1.0.5
CFG 01
Tuning DDR begin
DDR Access auto data-eye tuning Rev 0.3a
DDR size from 0xa0000000 - 0xa3ffffff
DDR check ok... start booting...




=======================================================================
Wireless ADSL Gateway DANUBE Loader V1.07.07 build Jan 11 2011 16:08:20
                    Arcadyan Technology Corporation
=======================================================================
EON EN29LV640L top boot 16-bit mode found

Copying boot params.....DONE


Press Space Bar 3 times to enter command mode ...
Flash Checking [1] Passed.
Image[1] at 0xb0860000, len:2086407, type:255
Image[2] at 0xb0a5d800, len:176376, type:255
Image[3] at 0xb0a88c00, len:259081, type:255
Image[4] at 0xb0ac8400, len:232961, type:255
Firmware image at -1, ART image at -1

Run-up ART Firmware... Fail
Back to run-up Normal Firmware...

Unzipping firmware [1(6)] at 0x80002000 ... [ZIP 1]  done
Run-time code running ...

ROM VER: 1.0.5
CFG 01



=======================================================================
Wireless ADSL Gateway DANUBE Loader V1.07.07 build Jan 11 2011 16:08:20
                    Arcadyan Technology Corporation
=======================================================================
EON EN29LV640L top boot 16-bit mode found

Copying boot params.....DONE


Press Space Bar 3 times to enter command mode ...
Flash Checking [1] Passed.
Image[1] at 0xb0860000, len:2086407, type:255
Image[2] at 0xb0a5d800, len:176376, type:255
Image[3] at 0xb0a88c00, len:259081, type:255
Image[4] at 0xb0ac8400, len:232961, type:255
Firmware image at -1, ART image at -1

Run-up ART Firmware... Fail
Back to run-up Normal Firmware...

Unzipping firmware [1(6)] at 0x80002000 ... [ZIP 1]  done
Run-time code running ...

ROM VER: 1.0.5
CFG 01



=======================================================================
Wireless ADSL Gateway DANUBE Loader V1.07.07 build Jan 11 2011 16:08:20
                    Arcadyan Technology Corporation
=======================================================================
EON EN29LV640L top boot 16-bit mode found

Copying boot params.....DONE


Press Space Bar 3 times to enter command mode ...
Flash Checking [1] Passed.
Image[1] at 0xb0860000, len:2086407, type:255
Image[2] at 0xb0a5d800, len:176376, type:255
Image[3] at 0xb0a88c00, len:259081, type:255
Image[4] at 0xb0ac8400, len:232961, type:255
Firmware image at -1, ART image at -1

Run-up ART Firmware... Fail
Back to run-up Normal Firmware...

Unzipping firmware [1(6)] at 0x80002000 ... [ZIP 1]  done
Run-time code running ...

ROM VER: 1.0.5
CFG 01

Allerdings bekomme ich dann einen Bootfehler. Also müssen die beiden rein. Wie hast du das eigentlich hinbekommen, das, solltest du auch 7 Parts nach dem Splitten haben, alle 7 wieder zu einem Image zusammengefügt werden?
 
Das gleiche passiert auch, wenn ich in sp700ex nur "Split" auswähle, dann nichts ändere (also keine deobfuscation der einzelnen .bin Parts) und dann "join" und am Ende des Bin Files via Hex Editor "BRNDA6431 + Nullbyte" anfüge.

Flash geht, Boot nein, Reboot Schleife

Wenn ich "Split+Unpack" nutze, ist meine Dateigröße auch gleich um 500 KB größer nach dem "join" irgendwas scheint er nicht mehr zu komprimieren und ich bekomme schon beim Flash CRC Fehler

Code:
##################################count=3584066
[upgrade_CGI] FwUI , Firmware + UI
[CGI] CRC32 TAG found, checking CRC32 ...ERROR
Assume CRC32 0x2F3336FC, Current CRC32 0x9FBA535

Wenn ich dich richtig verstanden habe, dann bist du an der gleichen Stelle? Sprich Flash ok, boot des geflashten Images aber nicht ok?

Gruß
 
Zuletzt bearbeitet:
Wenn mir jemand die beiden Images zuschicken mag, dann schaue ich mal, ob ich was zur Entschlüsselung der config-Dateien beitragen kann.
[5] Code Image 0 0xB00E0000 7680K
[6] Code Image 1 0xB0860000 7680K
 
Zuletzt bearbeitet:
"Entschlüsselung" ist nicht das Problem denke ich, das gabs ja als C-Datei (also zumindest das lesbar machen der gesplitten Parts). Interessant wird es eher das Image auseinander und wieder zusammen zu bauen, bzw. nachzuvollziehen, wie die Checksumme berechnet werden, damit es kein Reboot Cycle während des Boots gibt.
 
Zuletzt bearbeitet:
"Entschlüsselung" ist nicht das Problem denke ich, das gabs ja als C-Datei (also zumindest das lesbar machen der gesplitten Parts). Interessant wird es eher das Image auseinander und wieder zusammen zu bauen, bzw. nachzuvollziehen, wie die Checksumme berechnet werden, damit es kein Reboot Cycle während des Boots gibt.

Also mein Ziel wäre es, die Config übers Webinterface runterzuladen und dann dazu ein Decryption Tool zu schreiben. Der Code, der die Config versclhüsselt, steckt mit Sicherheit irgendwo in Part5 oder Part6. Dieses Ziel halte ich zum Auslesen der VoIP Daten nämlich für sinnvoller: Zum Neubauen eines gesamten Firmware Images muss man unter Umständen viel mehr Code reversen, bis man genug Verständnis davon hat, wie ein "gültiges" FW Image aussieht. Und wenn man Pech hat, dann ist es mit RSA oder ECDSA signiert und man steht von einem (praktisch) unlösbaren Faktorisierungsproblem bzw. vor der (praktisch) unmöglichen Berechnung diskreter Logarithmen auf elliptischen Kurven. In dem Fall müsste man schon die BigInteger Routinen reversen und die Struktur des Public Keys verstehen, um den eigenen Public Key einzupflanzen und so eigene Images signieren zu können.

Der Code, der folgende Ausgabe produziert, gehört vermutlich ebenfalls zu Part5 oder Part6. Also steht vermutlich auch die Antwort auf die CRC-Frage in diesen Parts. Wenn ich den Output aber richtig deute, dann ist der Soll-CRC=0x2F3336FC und der Ist-CRC=0x9FBA535. Also würde ich nach 0x2F3336FC im Image suchen und es durch 0x9FBA535 ersetzen. Ggf. auch andere Byteorder probieren. Wenn du Glück hast, findest du was und dir ist schon geholfen.
Code:
##################################count=3584066
[upgrade_CGI] FwUI , Firmware + UI
[CGI] CRC32 TAG found, checking CRC32 ...ERROR
Assume CRC32 0x2F3336FC, Current CRC32 0x9FBA535
 
Von der Seite hab ichs noch nicht betrachtet, aber wenn sich Arcadyan treu geblieben ist, sind solche Spirenzchen , glaube ich, nicht eingebaut (Thema Signierung). Aber dafür bin ich in solchen Sachen nicht bewandert genug. Ich werd morgen, falls dxm Dir seins noch nicht gesendet hat, ein Dump erstellen und Dir den zusenden. Per Sharehoster oder Mail?

Zu meinem Problem, ich hab mal die erstellte FW durch Notepad++ gejagt, Hex-Mode an, aber ich finde in dem gesamten Hex Code kein 0x2F3336FC oder 0x9FBA535 (oder "2f 33 36 FC" / "9f ba 54 5"). Ich muss dazu sagen, mit Hexcode und Hexcode Editoren kenn ich mich auch nicht aus, vielleicht denke ich nur falsch. Kannst Du das ggf. noch genauer erläutern?

Was allgemein, mehr oder minder, interessant ist, SP700EX entpackt meine FW in 7 Teile. Teil 1-4 als .bin (noch obfuscated), Teil 5 und 6 als .lzma und den 7. Teil (wo dann nur noch BRNDA6431 + Nullbyte) wird als .bin. Allerdings beim Zusammensetzen, werden anscheinend nicht alle 7 Teile genutzt und damit fehlt die hälfte (500 Bytes). Ich gehe mal davon aus, das liegt daran, das für den W700V nur 5 Parts gesplittet werden und das Tool beim "Join" auch nur 5 Parts joint. Ziel ist erstmal (für mich), die Teile nur einmal zu trennen und zusammen zu setzen und dann zu erfolgreich flashen. Ich bin mir allerding sicher, das SP700EX die 7 Parts korrekt anhand der Größe teilt (splittet). Wenn man die normale FW booten lässt und die serielle Konsole abgreift, werden zumindest die Teile 1-6 in exakt der Größe, in die sie auch das Tools splittet, im Flash gefunden.

Wie gesagt, ich werd morgen nochmal nen neuen Dump ziehen und Du sagtst mir am besten, wie ichs Dir zukommen lasse.
 
Hab gerade ein paar Probleme beim dumpen, bekomme nur botched bytes und keine erfolgreichen gedumpten bytes mehr. muss das aussortieren und melde mich dann erneut.
 
Per Sharehoster oder Mail?
Am besten schickst du alles per Sharehoster oder Dropbox Link in einer Mail. Links werden in privaten Nachrichten nämlich maskiert.

Zu meinem Problem, ich hab mal die erstellte FW durch Notepad++ gejagt, Hex-Mode an, aber ich finde in dem gesamten Hex Code kein 0x2F3336FC oder 0x9FBA535 (oder "2f 33 36 FC" / "9f ba 54 5"). Ich muss dazu sagen, mit Hexcode und Hexcode Editoren kenn ich mich auch nicht aus, vielleicht denke ich nur falsch. Kannst Du das ggf. noch genauer erläutern?
Ich meinte du sollst einmal nach den Bytefolgen "2f 33 36 fc", "fc 36 33 2f", "09 fb a5 35" und "35 a5 fb 09" suchen. Irgendwo muss der Soll-Wert für den CRC32 ja im Image hinterlegt sein. Mit etwas Glück kannst du den direkt so anpassen und auf den berechnete Wert einstellen. In dem Fall ist ja dann auch egal über welche Bereiche genau der CRC berechnet wurde, da du ja schon weißt, wie der Wert aussehen müsste.

Was allgemein, mehr oder minder, interessant ist, SP700EX entpackt meine FW in 7 Teile. Teil 1-4 als .bin (noch obfuscated), Teil 5 und 6 als .lzma und den 7. Teil (wo dann nur noch BRNDA6431 + Nullbyte) wird als .bin. Allerdings beim Zusammensetzen, werden anscheinend nicht alle 7 Teile genutzt und damit fehlt die hälfte (500 Bytes).

Schick mir am besten alles (den Dump, dein neuzusammengebautes Image und das SP700EX Tool) und dann schaue ich mal ob ich weiterkomme.
 
Ich häng mich hier mal rein!

Ich selber habe Vodafone DSL zuhause max 16k.
Laut Alice/o2 ist VDSL bei mir möglich.
deswegen würde ich gerne wechseln wollen.

Da ich o2/Alice bei mir im Shop vertreibe habe ich mal die Technik bei uns angerufen.

Laut dem Techniker ist es möglich diese O2-Box 6431 vor einer 7390 zu schalten.
und man dan ganz normal alles über die 7390 machen kann. (Lösung solange man keine Daten aus der 6431 auslesen kann)

Im Prinzip schleift dann 6431 alles zu 7390 weiter und man kann über die Surfen mit Eingabe der Daten in die 7390 und auch telefonieren da drüber!

Kann das jemand bestätigen?

Desweitern bekommt man bei O2/Alice Weiterhin eine IPv4 zugewiesen? (auch wenn die alle 24 stunden wechselt ist mir egal)
Weil eigentlich wollte ich zu UM(unitymedia) und dort werden nur noch IPv6 vergeben womit ich aktuell noch nix anfangen kann.
da ich einen homeserver habe und der aktuell noch über IPv4 funkt

ps: hoffe es ist nicht schlimm das ich hier mich drangehongen habe.

LG
 
Laut Alice/o2 ist VDSL bei mir möglich.
Alice VDSL basiert entweder auf Telefonica-VDSL, oder neuerdings auch wieder auf Telekom-VDSL. Von letzterem würde ich die Finger lassen, weil es Resale-DSL ist, d. h. O2 ist nicht direkt zuständig für die Technik. Telefonica VDSL kommt dagegen "aus der Familie", d. h. du bist damit direkt beim Anschlussbetreiber Kunde. Ob dein Anschluss auf VDSL von Telefonica oder von der Telekom basieren wird, lässt sich am besten über einen Verfügbarkeitstest von Easybell VDSL herausfinden. Easybell nutzt (im Gegensatz zu O2) ausschließlich Telefonica als (V)DSL-Vorleister. Wenn dir Easybell kein VDSL anbieten kann, dann ist Telefonica VDSL an deiner Adresse nicht verfügbar. Das wiederum würde bedeuten, dass O2 sein VDSL von der Telekom beziehen muss, was ich wie bereits erwähnt für weniger empfehlenswert halte. In diesem Fall würde ich direkt zur Telekom gehen. Das hätte gleich mehrere Vorteile: zum einen bist du dann direkt beim Anschlussbetreiber Kunde und zum anderen musst du dich nicht mit Zwangshardware herumschlagen. An Telekom-VDSL-Anschlüssen funktioniert jede kompatible Hardware, also auch die von Fremdherstellern. Das gleiche gilt übrigens auch für Easybell. Auch da gibt es den Bohei mit verrammelter und kastrierter Zwangshardware nicht.

Da ich o2/Alice bei mir im Shop vertreibe habe ich mal die Technik bei uns angerufen.

Laut dem Techniker ist es möglich diese O2-Box 6431 vor einer 7390 zu schalten.
und man dan ganz normal alles über die 7390 machen kann. (Lösung solange man keine Daten aus der 6431 auslesen kann)

Im Prinzip schleift dann 6431 alles zu 7390 weiter und man kann über die Surfen mit Eingabe der Daten in die 7390 und auch telefonieren da drüber!

Kann das jemand bestätigen?
Ja, das ist korrekt. Eigentlich hättest du als Vertriebler das wissen müssen ;)

Desweitern bekommt man bei O2/Alice Weiterhin eine IPv4 zugewiesen?
Ja, auch das ist korrekt.

Grüßle

Der Mikrogigant
 
Hallo,

mit der 7390 hinter einer O2 6431 Box "so alles machen" ist leider nicht möglich. Ich habe die Fritz Box 7390 gestern bekommen und in Betrieb genommen.

Habe der Fritz die Lan IP 192.168.1.10 verpasst und sie dann an die O2 Box angeschlossen. Kurze Zeit später schien sie sich wie von geisterhand darauf einzustellen und ich kam direkt per Wlan ins Internet.

Das war´s dann auch eigentlich schon. Funktionen wie dnydns, Nat, Fernwartung etc. bleiben im Verborgenen, da diese erst mit der Eingabe von DSL Zugangsdaten aktiv werden. Die komplette Einwahl geschieht ja weiterhin noch über die beknackte O2 Box.
Telefonieren ist somit auch erst möglich wenn Viop Daten eines anderen Anbieters eingegeben werden. (glaube ich zumindest)!?

Den einzigen Nutzen der Box sehe ich in den deutlich besseren Übertragungsraten zwischen Laptop und meinen QNAP Nas. Durch n Wlan und Gigabit Lan komme ich statt vorher 5 MB/s auf 11-12 MB/s. Dafür 200€ ausgegeben zu haben ist jedoch echt heftig.

Die Bundesnetzargentur hat die Meinung von O2 und co. vor wenigen Tage für okay befunden:-( Bleibt nur zu hoffen, dass die Tüftler einen Weg finden der Box die Voip Daten zu entlocken :)

Grüße
 
Die letzten 3 Posts haben mit dem Thema des Threads leider nichts zu tun und sind an dieser Stelle deplatziert. Bitte macht einen eigenen Thread dafür auf oder kann ein Mod das verschieben?
 
Hallo Leute,

habe gespannt alles bis hier hin verfolgt und warte noch immer auf einen Lösungsweg der 6431 ihre Geheimnisse (VOIP) zu entlocken.
Leider bin ich nicht so bewandert und verstehe die hälfte nicht wirklich aber die Richtung von "hph" gefällt mir.

Wenn ich etwas testen kann oder soll sag bescheid "hph".
 
Danke hph,

hab jetzt die Textdatei mit VOIP daten! :)
 
Zuletzt bearbeitet:
Ein Auslesen der o2 Box 6431 ist mittlerweile möglich, siehe hier ;)
 
Ich kann die Telefonie nicht einrichten!

Gegenstelle meldetet ursache 403
 
Ich sage schonmal Danke!

Und werde berichten wenn nächsten monat mein anschluss bei Alice geschaltet wurde. (wechsel von Vodafone)

LG
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,367
Beiträge
2,250,917
Mitglieder
374,023
Neuestes Mitglied
jeifeioioj
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.