net17.de
Firmware
Die folgenden Ausfuehrungen beziehen sich auf die Firmware Version 20007.00.07
Zerlegen des Firmware Images
Das in dem .zip File enthaltene Image besteht aus 3 Teilen:
1. Einigen vorbelegten Variablen im Klartext
2. Einem gzip gepackten Linux Kernel
3. Einer RAM-Disk im cramfs Format
Am einfachsten man geht mit einem Editor in die Datei und erstellt ich die drei Teile. Der erste Teil geht bis zu einer Zeichen kette die "HDR0" heisst,
einfach danach suchen. Inklusive des letzten Bytes vor dem "HDR0" gehoert zum ersten, sprich Konfigurationsteil.
Dann sucht man nach der Zeichenkette "Compressed". Circa 15 Bytes davor steht "E=". Damit faengt der dritte Teil an, d.h. das cramfs Filesystem.
Hat man diese drei Teile nun in einzelne Dateien abgespeichert, so muss man vom zweiten Teil, sprich dem Kernel noch die ersten 28 Bytes abschneiden, da dort nur Kennung, Laenge und Checksumme abgespeichert sind.
Das geht unter Linux am einfachsten mit: dd if=kernel-dateiname of=kernel.gz ibs=1 skip=28
dann kann man mit gunzip kernel.gz das Kernel Image entpacken.
Um an die RAM-Disk zu gelangen kann man diese jetzt mit mount -t cramfs -o loop cramfs.dateiname /mnt/mountpunkt. Dazu muss der Kernel jedoch cramfs unterstuetzen, ansonsten Kernel kompiliieren ;-)
Der Kernel ist Version 2.4.20 mit GCC 3.0 20010422 umgewandelt.
Der Prozessor des SX550i scheint ein MIPS R3000 zu sein, zumindest sind die Kernel Module dafuer umgewandelt. (Ich muss die Kiste mal aufmachen)
Programme in /usr/sbin
Programm | Aufgabe |
---|---|
brctl | Programm um eine Netzwerk Bridge aufzubauen, bindet die Bridge an Netzwerkinterfaces etc. |
dnsmaq | DNS Daemon/Proxy |
epi_ttcp | |
exlog | |
httpd | |
iptables | Paketfilter/Firewall |
led_mon | |
mac_2_ip | |
nas | |
netfilter_log | |
ntpclient | |
nvram | |
pppd | |
pppoecd | |
pptp | |
route_check | |
set_dyndns | |
udhcpd | |
upnp | |
url_filter | |
vconfig | |
wan_test | |
wl | Konfigurationsprogramm fuer WLAN Karten |
wlconf | Herauf-/Herunterfahren von WLAN Karten |