Hallo,
ich habe von der Telekom einen Router (Speedport W502V) zugeschickt bekommen,
der von Arcadyan hergestellt wird, aber nur als OEM-Produkt vermarktet wird. Der
Router besitzt einen ACORN-Prozessor und arbeitet mit Linux.
Da die Möglichkeiten mit der Original-Firmware sehr beschränkt sind, überlege
ich mir, ein Firmware-Image so zu bearbeiten, daß zunächst ein Telnet-Login
möglich ist und anschließend das System grundsätzlich zu verändern. Mir ist es
allerdings nicht gelungen, ein Firmware-Image (in diesem Falle:
W502Va_FW_V1.19.000.bin) zu mounten. Mit einem Windows-Tool zum Hacken eines
anderen Routers des selben Herstellers konnte ich das Image zerlegen, sodaß
dabei 3 neue .bin-Dateien und 2 lzma-Dateien entstanden. Die lzma-Dateien ließen
sich wiederrum zu .bin-Dateien entpacken. Letzendlich konnte das Programm mit
den daraus resultierenden Dateien nichts mehr anfangen. Der Mount-Befehl unter
Linux erkennt das Dateisystem nicht. Das häufig verwendete JFFS2 ist es nicht.
Hallo,
Ich weiß nicht ob du es getan hast, aber Images müssen immer über das
loop-Device gemountet werden, d.h. beim mounten muss die Option loop angegeben
werden.
Weiterhin wäre es durchaus möglich, dass am Anfang des Images nicht sofort die
Partition/das Dateissystem beginnt, sondern der Bootloader des Routers steht.
Diesen kannst du mit zusätzlich zu loop mit der Option offset= übergehen. Dazu mußt du allerdings die Größe des Bootloaders
kennen.
mfg
Rico
Daß man die Images mit der Option loop mounten muß weiss ich… Allerdings weiss ich ja noch nicht einmal, welches Dateisystem es ist und ob es sich um ein Dateisystem handelt. Der strings-Befehl findet keine Klartext-Begriffe in der Datei. Ich habe in einem Artikel zu einem ähnlichen Gerät des gleichen Herstellers gelesen, daß es sich bei dem Firmware-Image genau genommen um eine LZMA-Datei handelt, in der wiederrum fünf weitere Dateien vorhanden sind, wobei es sich um fünf Partitionen handeln soll, wobei es eine extra Boot-Partition gibt. Den Dateisystemtyp nennt der Auto Pseudo File System/ PSF). Zu einem solchen Dateisystem konnte ich aber keine weiteren Informationen finden. Er bietet ein Windows-Tool an, das es ermöglichen soll, ein Firmware- Image des verwandten Routers zu manipulieren. Dieses Tool (mit WINE auf eine Firmware des Routers angewendet) entpackt ebenfalls die fünf Partitionen, ist aber dann der Meinung, daß diese ungültig sind.
Zur Korrektur: Der Router verwendet keine ARM- sondern eine MIPS-Architektur.
Kannst Du bitte posten, wo man das (windows) Tool bekommt, um die Dateien zu entpacken / anzuschauen.
Das Programm nennt sich SP700EX und läuft auch unter WINE.
[1] http://www.kessler-design.com/speedport-w700v/download.html
Ein kurzer Blick auf die Firmware des W502V (nach SP700EX) zeigt, dass die als .bin bezeichneten Teile möglicherweise auch direkt lzma-gepackt sind, jedoch mit einem weiteren “Algo” zerwürfelt und mit einem Header versehen wurden.
Ein Denkanstoss und Begründung wie der Gedanke entstand im angehängten Bild.
Bisher aus zeitlichen Gründen allerdings ohne Versuch, das Zerwürfeln rückgängig zu machen bzw. weiter zu hinterfragen. Bitte hier um tatkräftige und gedankliche Unterstützung.
PS. Habe SP700EX geschrieben.
[1] http://img441.imageshack.us/img441/8103/w502vbinpartsencodingol9.png
Den Header mit 0x13579abc Marker mal völlig aussen vor gelassen, sprich abgeschnitten, ergibt sich bei der 4321 8765 Lesereihenfolge für die zweite .bin Datei “ent”würfelt:
5d 00 00 80 | 00 af de 19 | 00 00 00 00 | …
Das ist ein gültiger lzma-header und die lzma unpacked data size wäre folglich:
0x 00 19 de af = 1.695.407 dezimal
Was sowohl gepackt als auch ungepackt für ein PFS/0.9 Image absolut plausibel ist.
Fehlt nur noch eine nicht-per-Hand “ent”würfel-Routine damit man an die Daten rankommt und dann als zweiter Schritt eine Analyse des 0x13579abc Headers, damit man alles wieder korrekt zusammenbauen kann, ggf. sind da Checksummen drin o.ä.
Hm, wenn man den vermeintlichen lzma-Teil abtrennt und “ent”würfelt dann sieht er theoretisch auch sehr gut aus, lässt sich aber nicht mit lzma.exe entpacken, “Decoder error”.
Also spielt nocht mehr eine Rolle, der 0x13579abc Header oder sonstiges.
Bitte forschen und posten, Danke!
Interessanterweise kann lzma.exe die ersten paar Bytes richtig entpacken, so dass ein PFS/0.9 image Header sichtbar wird, siehe Anhang!
Also war meine erste grundsätzliche Vermutung der Verwürfelung absolut richtig.
Soviel vorerst dazu, hier endet der Forscherdrang für heute.
[1] http://img252.imageshack.us/img252/4855/w502vbinpartsdecodedparhq2.png
Danke schon mal für die ersten Analysen…
Ich habe nun versucht, eine serielle Verbindung aufzubauen, jedoch nicht so
ganz herausbekommen, wie das Terminal-Programm zu konfigurieren ist. Es werden
ASCII-Daten sichtbar, jedoch habe ich es nicht hinbekommen, daß diese auch im
Klartext zu lesen sind.
Wenn ich 115.200 Baud, 8 Bit, 1 Stop-Bit, keine Parität, keine Flußkontrolle
einstelle, so gibt es ein Ausgabeverhalten, das analog mit dem, was bei
ähnlichen Routern beschrieben ist übereinstimmt, jedoch kann ich nur wahrlos
ASCII-Zeichen sehen statt dem eigentlichen Ausgabetext.
Bei Baud-Rate 9.600 und 19.200 sieht man nur einzelne ASCII-Zeichen. Andere
Baud-Raten sowie eine andere Parität geben garnichts aus. Auch mit der
Emulation eines anderen Terminal-Typs war ich wenig erfolgreich.
Hast Du ein Kabel mit MAX 3232 Chip o.ä. verwendet? Details hier:
[1] http://www.kessler-design.com/speedport-w700v/hardware.html
Nein… so etwas habe ich nicht. Da die Pins auf dem Board aussehen, wie ein
gewöhnlicher Anschluß auf einem Motherboard zur Verlegung einer seriellen
Schnittstelle an das Außengehäuse, habe ich so ein Breitbandkabel dort
hineingesteckt und die 9-polige serielle Schnittstelle am anderen Ende mit
einem Nullmodemkabel mit dem Rechner verbunden (auf dem Board ist sogar GND
gekennzeichnet).
Letzendlich passt ja das Ausgabe-Verhalten, nur daß die Daten eine Sprache
sprechen, die das Terminal falsch interpretiert. Was macht der Chip eigentlich?
Ich hab ein Sinus 154 DSL Basic und mit sp700ex die Benutzeroberfläche aus der Firmware extrahiert. Das hat alles Prima geklappt.
Wollte die Oberfläche so modifizieren, dass man nicht mehr die kastrierte subnetzmaske hat. Dazu wollte ich nach reset->einschalten die Benutzeroberfläche einspielen. Allerdings bekomme ich beim Einspielen der psf.img immer die Fehlermeldung “file verification failed”. Sogar bei der unmodifizierten.
Hat jemand eine Idee, wie ich das psf.img wieder einspielen kann?
Hallo erstmal ich beschäftige mich auch schon ein paar stunden mit der Thematik und ich stimme euch erstmal zu das es eindeutig ein LZMA-Header ist .. bzw 2 stück sind …. das problem warum es sich nicht entpacken lässt ist meiner meinung nach das dassss image sozusagen in mehreren blöcken zerlegt gespeichert ist … ich zB bekomme es nichtmal hin den PFS/0.9 teil entpackt zu bekommen … wenn du mir verraten könntest wie du das angestellt hast könnte ich den resten programmataisch bruteforcen lassen. (meiner einer ist programmierknecht .. seufz)
aufjedenfall würde uns das ein stück weiterbringen ….
zu den pins … das ist laut meinung dritter keine Serielle-Schnittstelle und schon garkeine mit MAX-Chipsatz (in der W502v ist kein MAX-Chip) einer meinte es wäre ein sogenannter JTAG welcher das direkte Debuggen/Aus-/Einlesen des Images und Bootsektors erlaubt.
Gruß Dorty
[1] http://www.ip-phone-forum.de/showthread.php?t=158614&goto=newpost
Wg. 20 Bytes entpacken, hast Dir alle meine (nunja, etas wirren) Postings und Screenshots mal ganz genau angeschaut? Hier ist nochmal eine Art Zusammenfassung: [1]
Kann ggf. eine spezielle Version von SP700EX zur Verfügung stellen, die das so entwürfelt, dass lzma.exe etwas damit anfangen kann, aber eben leider nur mit den ersten 20 Bytes, Kontakt via SP700EX Homepage: [3] Wohlgemerkt klappt das normale Zerlegen der W502V-Firmware mit SP700EX hervorragend. Nur das lzma-Entpacken (noch) nicht.
Wenn die Pins so aussehen wie beim W700V, dann ist es sehr wohl ein serieller Port, allerdings nur 3 bzw. 4 Pins davon. Der MAX-Chip ist im Handykabel eingebaut, nicht im Gerät. Daher zweckentfremdet man ja so ein Handykabel, mehr dazu hier: [2]
[1] http://sourceforge.net/forum/forum.php?thread_id=1954031&forum_id=45797
[2] http://www.kessler-design.com/speedport-w700v/hardware.html
[3] http://www.kessler-design.com/speedport-w700v/firmware.html
Jup hab inzwischen auch gut geforscht ich kann nur mit diesem 13579abc – Header noch nichts so richtig anfangen .. auch wenn ich die vertauschung in allen varianten ausprobiert habe .. (inkl. byte-skipping) .. es kommt einfach nichts vernünftiges dabei raus … sehr schräge
Kannst inzwischen die ersten 20 Bytes der lzma-Daten nach dem Header entpacken?
jap .. ich hab zwar eine weile gebraucht bis ich das alles verstanden hab …
(inzwischen hab ich auch den firmware-aufbau verstanden)
ich hab mir ein proggy gebaut das die byte-order-vertauschung vornimmt …
danach hab ich es so umgebaut das es ich verschiedene varianten ausprobiene kann
und jede durch lzma-jagen kann (shellexecute) .. aber egal was ich auch versuche nach dem PFS-Header kommt scheinbar nur noch schrott … sehr seltsam.
Der Header spielt wohl eine Rolle und wird in die Verwürfelung (nich ganz zu Beginn, dann aber schon, also nach der Stelle die entpackt “www\” ergibt) irgendwie mit reingerechnet. Für Dich evtl. interessant, mit an Sicherheit grenzender Wahrscheinlichkeit geht es (richtig entpackt) so weiter: “www\cgi-bin\”
oder so: “www\ivr\1k.711”
oder ggf. auch: “www\doc\” oder “www\images\” oder “www\cpe\”
Okay okay … also ich hab mein ein nokia 3100 pku-5 datenkabel gekauft und angeschlossen .. hab zwar ne weile gebraucht bis ich die richtigen settings hatte (128kbit) aber ich kann tippesln und zugucken :-)
(leider kein shell-zugang seufz)
Kleiner Auszug:
ROM VER: 1.0.3
CFG 01
Read
ROM VER: 1.0.3
CFG 01
Read EEPROMX
X
=======================================================================
Wireless ADSL Gateway DANUBE Loader V0.01.01 build Jun 15 2007 11:43:19
Arcadyan Technology Corporation
=======================================================================
EON EN29LV320B bottom boot 16-bit mode found
Copying boot params…..DONE
Press Space Bar 3 times to enter command mode …
Flash Checking Passed.
Unzipping firmware at 0x80002000 … with AREA[2][ZIP 3] [ZIP 1] done
Ready to run firmware
In c_entry() function …
install_exception
Co config = 80008483
[INIT] Interrupt …
[GPIO FLOW] SetGpio() Begin ..
[GPIO FLOW] SetGpio() End.
##### _ftext = 0x80002000
##### _fdata = 0x804D5490
##### __bss_start = 0x805ADB38
##### end = 0x81B1164C
##### Backup Data from 0x804D5490 to 0x81B1964C~0x81BF1CF4 len 886440
##### Backup Data completed
##### Backup Data verified
[INIT] System Log Pool startup …
[INIT] MTinitialize ..
[INIT] usrclk
CPU Clock 333333334 Hz
mips_counter_frequency:166666667
r4k_offset: 00028b0a(166666)
init_US_counter : time1 = 45 , time2 = 32000070, diff 32000025
US_counter = 84
cnt1 32667278 cnt2 32669010, diff 1732
Runtime code version: 1.17.000
System startup…
[INIT] Memory COLOR 0, 2548576 bytes ..
[INIT] Memory COLOR 1, 2097152 bytes ..
[INIT] Memory COLOR 2, 5546928 bytes ..
InitCommSys: RESOURCE_BASE = 62, NUMRES = 640
InitCommSys: EVENT_BASE = 123, NUMEVT = 818
InitCommSys: MAILBOX_BASE = 6, NUMMBX = 64
rzMemory start: 0x80DCBF00, end 0x811B0010, size 4079888Build Day = Sep 13 2007
>>>>set_MP_pass_Magic to 4
EON EN29LV320B bottom boot 16-bit mode found
Set flash memory layout to Boot Parameters found !!!
Bootcode version: V0.01.01
…
und vieles mehr … aber *ich weis ist eine dumme frage*
was bringt mir das jetzt denk
okay ich kann firmware direkt hochladen … aber ich kann die aktuelle nicht runterladen zum backup’n denk
ich recherchier mal bissel …
Kannst mit einem ! (Ausrufezeichen) den vom W700V bekannten “Administrator Mode” aufrufen nachdem Du direkt zu Beginn 3x Leertaste gedrückt hast?
Da gibt es nämlich “[R] Read from Memory”
[1] http://www.kessler-design.com/speedport-w700v/hardware.html
Jawohl der Admin-Modus läuft .. und das [R] geht auch
die Pinbelegung ist 1:1 wie beim 700’er
Aber sagmal wenn man sich das ansieht sind w700v, sx541 und sx551 eigentlich fast identisch oder ? die verwenden alle diesen RTOS zeugs…
mit linux ist da ja nu nicht viel los g
Hier mal bissel mehr:
ROM VER: 1.0.3
CFG 01
Read
ROM VER: 1.0.3
CFG 01
Read EEPROMX
X
=======================================================================
Wireless ADSL Gateway DANUBE Loader V0.01.01 build Jun 15 2007 11:43:19
Arcadyan Technology Corporation
=======================================================================
EON EN29LV320B bottom boot 16-bit mode found
Copying boot params…..DONE
Press Space Bar 3 times to enter command mode …
Flash Checking Passed.
Unzipping firmware at 0x80002000 … with AREA[2][ZIP 3] [ZIP 1] done
Ready to run firmware
In c_entry() function …
install_exception
Co config = 80008483
[INIT] Interrupt …
[GPIO FLOW] SetGpio() Begin ..
[GPIO FLOW] SetGpio() End.
##### _ftext = 0x80002000
##### _fdata = 0x804D5490
##### __bss_start = 0x805ADB38
##### end = 0x81B1164C
##### Backup Data from 0x804D5490 to 0x81B1964C~0x81BF1CF4 len 886440
##### Backup Data completed
##### Backup Data verified
[INIT] System Log Pool startup …
[INIT] MTinitialize ..
[INIT] usrclk
CPU Clock 333333334 Hz
mips_counter_frequency:166666667
r4k_offset: 00028b0a(166666)
init_US_counter : time1 = 45 , time2 = 32000070, diff 32000025
US_counter = 84
cnt1 32667278 cnt2 32669010, diff 1732
Runtime code version: 1.17.000
System startup…
[INIT] Memory COLOR 0, 2548576 bytes ..
[INIT] Memory COLOR 1, 2097152 bytes ..
[INIT] Memory COLOR 2, 5546928 bytes ..
InitCommSys: RESOURCE_BASE = 62, NUMRES = 640
InitCommSys: EVENT_BASE = 123, NUMEVT = 818
InitCommSys: MAILBOX_BASE = 6, NUMMBX = 64
rzMemory start: 0x80DCBF00, end 0x811B0010, size 4079888Build Day = Sep 13 2007
>>>>set_MP_pass_Magic to 4
EON EN29LV320B bottom boot 16-bit mode found
Set flash memory layout to Boot Parameters found !!!
Bootcode version: V0.01.01
Serial number: J7364XXXXXX
Hardware version: 01B
fread_config_b> sizeof(struct III_Config_t) is 243284
EON EN29LV320B bottom boot 16-bit mode found
fread_config_b> 32506 bytes read from flash
fread_config_b> 334167 bytes decompressed successfully.
———————–> Checking SysLog in Flash OK
———————–> Restore SysLog from Flash 78082 bytes from 3b65a
———————–> Restore Call Log from Flash 12795 bytes from 4e763
DS_Tail ~ DS_Tail2 OK!
DS_Tail2 ~ DS_Tail3 OK!
!!! Invalid wireless channel range 0 ~ 255
!!! Use default value 1 ~ 13
====xxx==============================–>425@-230;*(.4/.4/1,.4/3/1)
–>425@-230;30(.1/.25/1,.1/3/1)
–>600(.9/4.8)
–>600(.3/.5,.3/3)
–>600(.9/3.9)
gTemp.provider_name[0] () 720
gTemp.provider_name[1] () 720
gTemp.provider_name[2] () 720
gTemp.provider_name[3] () 720
gTemp.provider_name[4] () 720
gTemp.provider_name[5] () 720
gTemp.provider_name[6] () 720
gTemp.provider_name[7] () 720
gTemp.provider_name[8] () 720
gTemp.provider_name[9] () 720
gTemp.provider_name[10] () 720
gTemp.provider_name[11] () 720
gTemp.provider_name[12] () 720
gTemp.provider_name[13] () 720
gTemp.provider_name[14] () 720
gTemp.provider_name[15] () 720
gTemp.provider_name[16] () 720
gTemp.provider_name[17] () 720
gTemp.provider_name[18] () 720
gTemp.provider_name[19] () 720
check_WAN_switch returns 0
default route: 0.0.0.0
BufferInit:
BUF_HDR_SZ=128 BUF_ALIGN_SZ=4 BUFFER_OFFSET=192
BUF_BUFSZ0=384 BUF_BUFSZ1=3264
NUM_OF_B0=0 NUM_OF_B1=1000
BUF_POOL0_SZ=0 BUF_POOL1_SZ=3392000
sizeof(BUFFER0)=512,sizeof(BUFFER1)=3392
*BUF0=0x81549b0c *BUF1=0x8120d8ec
Altgn *BUF0=0x81549b20 *BUF1=0x8120d900
End at BUF0:0x81549b20, BUF1:0x81549b00
BUF0[0]=0x81549b20 BUF1[0]=0x8120d900
buffer0 pointer init OK!
buffer1 pointer init OK!
[qm_lnk_init] CLOCKHZ=1000 …
[qm_lnk_init] add if 3 into QM link 0
[qm_cbq_enable] no QM attached
[qm_cbq_detach] no QM is attached at link 0
f=3492148201/100000, ns_per_byte=1090005888/100000
New cls: id=0, bw=8080 ns/byte, maxd=0 ms,
maxb=32, minb=2, avgpktsz=250, maxpktsz=1802,
offtime=40, parent=0, borrow=0
pri=0, maxidle=31, minidle=-29123,
maxq=96, clsfg=17
f=2002645667/100000, ns_per_byte=1083109375/100000
New cls: id=1, bw=808080 ns/byte, maxd=0 ms,
maxb=16, minb=1, avgpktsz=1802, maxpktsz=1802,
offtime=1441745, parent=81b0e900, borrow=81b0e900
pri=7, maxidle=384166, minidle=-2912323,
maxq=48, clsfg=21
qm_cbq_attach(): cbqp->cbq_res=56
f=90439747/100000, ns_per_byte=1089990048/100000
New cls: id=2, bw=8162 ns/byte, maxd=0 ms,
maxb=32, minb=4, avgpktsz=250, maxpktsz=1802,
offtime=166, parent=81b0e900, borrow=81b0e900
pri=0, maxidle=31, minidle=-29417,
maxq=96, clsfg=21
f=3846176767/100000, ns_per_byte=1072693248/100000
[qm_cbq_newcls] warning: bandwidth of the class may be low enough to cause INT overflow
New cls: id=3, bw=1191722 ns/byte, maxd=0 ms,
maxb=16, minb=4, avgpktsz=250, maxpktsz=1802,
offtime=1212204, parent=81b0d300, borrow=81b0d300
pri=0, maxidle=0, minidle=-4294966,
maxq=96, clsfg=21
f=3846176767/100000, ns_per_byte=1072693248/100000
[qm_cbq_newcls] warning: bandwidth of the class may be low enough to cause INT overflow
New cls: id=4, bw=1191722 ns/byte, maxd=0 ms,
maxb=16, minb=4, avgpktsz=250, maxpktsz=1802,
offtime=1212204, parent=81b0d300, borrow=81b0d300
pri=2, maxidle=0, minidle=-4294966,
maxq=48, clsfg=23
f=3846176767/100000, ns_per_byte=1072693248/100000
[qm_cbq_newcls] warning: bandwidth of the class may be low enough to cause INT overflow
New cls: id=5, bw=1191722 ns/byte, maxd=0 ms,
maxb=16, minb=4, avgpktsz=250, maxpktsz=1802,
offtime=1212204, parent=81b0d300, borrow=81b0d300
pri=3, maxidle=0, minidle=-4294966,
maxq=48, clsfg=23
f=3846176767/100000, ns_per_byte=1072693248/100000
[qm_cbq_newcls] warning: bandwidth of the class may be low enough to cause INT overflow
New cls: id=6, bw=1191722 ns/byte, maxd=0 ms,
maxb=16, minb=4, avgpktsz=250, maxpktsz=1802,
offtime=1212204, parent=81b0d300, borrow=81b0d300
pri=4, maxidle=0, minidle=-4294966,
maxq=48, clsfg=23
f=3846176767/100000, ns_per_byte=1072693248/100000
[qm_cbq_newcls] warning: bandwidth of the class may be low enough to cause INT overflow
New cls: id=7, bw=1191722 ns/byte, maxd=0 ms,
maxb=16, minb=4, avgpktsz=250, maxpktsz=1802,
offtime=1212204, parent=81b0d300, borrow=81b0d300
pri=5, maxidle=0, minidle=-4294966,
maxq=48, clsfg=23
f=90439747/100000, ns_per_byte=1089990048/100000
New cls: id=8, bw=8162 ns/byte, maxd=0 ms,
maxb=16, minb=4, avgpktsz=250, maxpktsz=1802,
offtime=166, parent=81b0d300, borrow=81b0d300
pri=7, maxidle=31, minidle=-29417,
maxq=48, clsfg=20
CLOCKHZ=1000
gConfig.Interface[0].IP_Addr = 127.0.0.1
gConfig.Interface[0].Subnet_Mask = 255.255.255.255
time = 08/01/2003, 00:00:00
TRAP(linkUp) : send ok!
Interface 0 ip = 127.0.0.1
gConfig.Interface[1].IP_Addr = 192.168.0.1
gConfig.Interface[1].Subnet_Mask = 255.255.255.0
vlan=0, vid=1, port_mask=0xf
DMA g_desc_list=0x80C62A80
MAC Address: 00:1d:19:XX:YY:xx
time = 08/01/2003, 00:00:00
TRAP(linkUp) : send ok!
Interface 1 ip = 192.168.0.1
gConfig.Interface[2].IP_Addr = 0.0.0.0
gConfig.Interface[2].Subnet_Mask = 0.0.0.0
PCI: Probing PCI hardware on host bus 0.
PCI clock 33.3MHz
DANUBE_GPIO_P1_ALTSEL0=547
DANUBE_GPIO_P1_ALTSEL1=0
DANUBE_GPIO_P1_DIR=91f6
Autoconfig PCI channel 0x80588DFC
Scanning bus 00, I/O 0x1ae00000:0x1b000001, Mem 0x18000000:0x1a000001
00:0e.0 Class 0200: 168c:ff1a (rev 01)
Mem at 0x18000000 [size=0x10000]
Scanning bus 00
Found 00:70 [168c/ff1a] 000200 00
Fixups for bus 00
Bus scan for 00 returning with max=00
ff1a168c 2900006 2000001 8000 18000000 0 0 0
0 0 0 0 0 44 0 100
0 25a40001 8100 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
[HWLAN] ifno=2 irno=7 port=0x00000000
KERN_INFO: wlan: 0.8.4.2 (Atheros/multi-bss)
KERN_INFO: ath_hal: 0.9.17.1 (AR5212, RF5111, RF5112, RF2413, DEBUG, REGOPS_FUNC)
KERN_INFO: ath_rate_atheros: Version 2.0.1
Copyright (c) 2001-2004 Atheros Communications, Inc, All Rights Reserved
KERN_INFO: ath_pci: 0.9.4.5 (Atheros/multi-bss)
[PCI] devtag=00000070 probe=80064454
pci_find_slot bus 0 devfn 70
dev->bus->number 0 dev->devfn 70
[HWLAN] PCI_AH_probe() Begin ..
pci_find_slot bus 0 devfn 70
dev->bus->number 0 dev->devfn 70
##### We detect Griffin-Lite(2413) without EEPROM #####
pci_find_slot bus 0 devfn 70
dev->bus->number 0 dev->devfn 70
pci_find_slot bus 0 devfn 70
dev->bus->number 0 dev->devfn 70
pci_find_slot bus 0 devfn 70
dev->bus->number 0 dev->devfn 70
[HWLAN] devtag = 00000070
[HWLAN] Vendor ID 0x168c
[HWLAN] Device ID 0x1d
[HWLAN] Base Addr 0xb8000000
[HWLAN] SVendor ID 0x0
[HWLAN] SDevice ID 0x0
[HWLAN] Revision ID 0x1
[HWLAN] interrupt vector 0x1
übrigens auch ganz lustig … ich hab nun den flash ausgelesen … und er ist in genau dem selben zustand wie die ausgelieferte firmware … G
keine änderung das echt schräg die haben vermute ich mal, einfach in LZMA ein paar bits umgesetzt …
Für alle Mitleser, die lzma-Verwürfelung ist “geknackt”, Details dazu hier:
http://www.ip-phone-forum.de/showthread.php?p=1246019
Hallo!
Ich bin Anfänger was das Analysieren von Firmwares angeht und befasse mich gerade mit einer Arcor EasyBox A800. Zufälligerweise wird die auch von Arcadyan hergestellt. Eingebaut ist ein Prozessor, der sich an der Seriellen Konsole mit AMAZON meldet. Der Bootloader als auch die Statusmeldungen auf der Konsole entsprechen zu 90% denen die hier schon gepostet wurden. Es scheint also Paralellen zu geben.
Die hier angestellten Vermutungen zu der zerstückelten Firmware treffen auch meine Vermutungen in der EasyBox. Ich glaube, daß die “Gesamtfirmware” nur dazu dienst, die einzelnen Subsysteme – wie WLAN, DSL, whatever – mit ihrer eigenen Firmware zu bestücken und anzustossen. Diese laufen dann vermutlich autonom.
Eine Shell oder ähnliches scheint es auf der Firmware nicht zu geben. Evtl. kann man über die Netzwerkschnittstelle hier etwas drehen. Port 8085 TCP und 10000 TCP sind offen. Auf der Konsole spuckt mir der Router bem booten eine Zeile mit http:///cpe/cpe.cgi?Id= aus. Ein Versuch per Browser auf diesen Port zuzugreifen, bringt auf der Konsole nur eine Zeile ” hat keinen Zugriff!!” Interessanterweise auf Deutsch. Also vermute ich wurde diese “IP-Sperre” von dem Deutschen Distributor (entweder SMC, oder direkt von Arcor) eingebaut, bzw. konfiguriert.
Was sich hinter dieser URL verbirgt, habe ich also noch nicht herausgefunden.
Mein nächster Schritt wäre das Spoofen der IP um so herauszifinden welche IP denn zum Zugriff erlaubt ist. Ich tippe mal ganz frech auf irgendeine Arcor-IP.
Warum wird dieser Port eigentlich nach aussen hin geöffnet? Sollte das zur Wartung seitens Arcor sein? Eine Hintertür? Hatte der Speedport sowas nicht auch und hat man da schon herausgefunden wie man zugreifen kann?
ich bring mal diesen link ins spiel der gehört zum vorgänger des 502 dem 500
und es sind auch diverse telekom html-seiten in dem zip enthalten sowie
host-tools zum lzma packen linux kernel crosstools usw.
die telnetausgaben erinnern mich etwas an vxworks?
vielleicht wurde linux durch ein speichersparenderes os ersetzt um kosten zu sparen
[1] http://www.targa.de/bilder/TARGA.0.13v1L.300L01.V27_consumer_release_v2.zip
Zusammenfassung nach aktuellen Erkenntnissen:
Die ersten beiden .bin Dateien in der genannten Firmware sind “verwürfelte” lzma-Dateien, die Kernel und PFS (Filesystem) beinhalten.
Diese lzma-Verwürfelung ist inzwischen “geknackt”, Details dazu (wie schon tief in diesem Thread genannt) hier:
http://www.ip-phone-forum.de/showthread.php?p=1246019
Der Bootloader des W502V kann .zip, .lzma und das verwürfelte .lzma verarbeiten, wenn man also den Teil mit dem PFS “entwürfelt” und entpackt, dann sollte man das Image auch mounten können:
W502Va_FW_V1.19.000-2_unscrambled_unpacked.bin
Wenn man dann Dateien darin ändert, und das Image als normales .lzma oder .zip gepackt wieder korrekt in die restliche Firmware einbaut, müsste der W502V damit zurechtkommen.
“Entwürfeln” geht mit der aktuellen Version von SP700EX.
Standardhinweis: Vorsicht, Garantieverlust, “Brick”-Gefahr…
File sagt einfach nur DATA.
Ich habe nun den Router einmal aufgeschraubt und gesehen, daß es auf der Platine Pins für eine serielle Verbindung gibt. Bei Gelegenheit werde ich mich nach einem geeigneten Kabel umschauen und testen, ob man auf diese Weise auch ein Login bekommt. Voraussetzung ist allerdings, daß geeignete Kommandos vorhanden sind, um es auf eine Weise zu ermöglichen, zusätzliche Tools und Dienste aus dem Netz zu ziehen. Optimal wäre es, wenn ein SSH-Daemon installiert aber nicht gestartet ist. Daß der Aufwand in irgendeiner Weise etwas bringt ist aber nur Spekulation.