PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HURRA: Eigenes WSW-Update / RSA überlistet!



Lemmi
08.01.2005, 19:29:54
Ich habs geschafft, die Box fährt mein erstes eigenes Update! :)

Zwar ist das Update noch Code-gleich zu 1.18, aber die RSA-Prüfsumme habe ich ausgetrickst.

1.)
Zuerst habe ich die Original FW 1.18 (1.18small.wsw) genommen und den RSA-Code gepatched, damit dieser ungültig wird. Mit dieser modifizierten Version habe ich ein Update versucht, welches mit einem Prüfsummenfehler zurückgewiesen wurde -- wie erwartet.

2.)
Mit den beiden folgenden Dateien habe ich die Box überlistet:

Datei install

#!/bin/sh
mkdir -p /var/tmp/usr-bin
tar cf - -C /usr/bin . | tar xf - -C /var/tmp/usr-bin
cp rsadecode /var/tmp/usr-bin
chmod 755 /var/tmp/usr-bin/rsadecode
mount -r --bind /var/tmp/usr-bin /usr/bin


Datei rsadecode

#!/bin/sh
cat /var/tmp/verify.txt


Dann habe ich nochmals das veränderte Update eingespielt --> es klapp!!!!!

Mein eigenes 'rsadecode' gaukelt dem System dann die korrekte Prüfsumme vor.

Jetzt kann ich jegliche Software in der Box verändern, die in einem cramfs-Archiv vorliegt, d.h. das kompeltte root-System ohne /data. /data liegt in jffs2 vor, das ist auch ein offenes System und sollte auch zu lösen sein -- dass überlasse ich (vorerst) anderen.

Und mit gambler's Tool-Chain sind wir an der anderen Front auch schon wider weiter.

Bei Verständnisproblemen zu WSW bitte Thread Flash-RAM == /dev/mtd* (http://www.m740.de/forum/showthread.php?t=229) nachlesen.

------

Wie geht's weiter:
Ein modifiziertes Update erstellen mit:

telnet Freigabe (inetd, passwd, shadow)
Modifiziertes rsadecode.
Da möchte ich aus Sicherheitsgründen nicht ganz auf Prüfsummen verzichten.
beliebige Veränderungen und Ergänzungen direkt im Kern-Datei-System (solange der Speicher reicht)


Ich geh jetzt erstmal feiern ..... :D

P.S.:
Nachahmern empfehle ich, ersteinmal 1.18small als Grundlage zu verwenden, da 1.18 in Gegensatz zu 1.12.1 den Boot-Sector und das Rescue-System nicht anfaßt.

Natürlich alles auf eigene Gefahr

hagalulu
08.01.2005, 19:47:47
hallo,

dann erstmal einen HERZLICHEN GLÜCKWUNSCH!

Ich bin jetzt schon gespannt was daraus wird ;-) vielleicht schafft man es ja auch ftp und ähnliches einzubinden. zumindest dürfte der erste schritt dafür jetzt getan sein.

hagalulu

bebibaer
08.01.2005, 20:07:17
Auch von mir Glückwünsche,
da haben sich die vielen Nachtschichten gelohnt.

Gruß
bebibaer

qwertzy0815
08.01.2005, 20:18:49
Wusst ichs doch :D

Lemmi, ich trink ein Pils auf dich :rolleyes:

gambler
08.01.2005, 20:22:31
sehr goil, nice, nice.... saubere arbeit.
bin nu auch wieder im lande, und hab grad das erste relarive toolchain fertig. http://www.uclibc.org bietet alles was wir brauchen. die ersten codes laufen auch aber komplexere sachen liefern noch nen coredump.

gcc, egc, uclibc, alle header files, alle vmlinux kernel files findet iher da, also das komplette sdk welches auch siemens benutzt haben wird. vergesst die anleitungen hier im forum, die beziehen sich meist auf die glibc *glibberc*.
es ist auch ein einfaches config frontend vorhanden und holt sich alle nötigen dateien direck aus dem inet.


keep on hackin`
gruss und frohes neues
gambler

Doctah
08.01.2005, 20:49:15
Sehr geil, Lemmi!! Weiter so! :D

haraldrt
09.01.2005, 14:26:56
@gambler
auf was für einem Host hast Du die toolchain erstellt ?

cu Harald

gambler
09.01.2005, 14:32:04
i686 debian woody/unstable.
aber die toolchains sind noch etwas buggy. per hand fixen is da öfter angesagt.

haraldrt
10.01.2005, 06:09:59
@gambler
Welche uClibc Version hast Du denn jetzt in deiner toolchain ?
Vielleicht liegen die Coredumps ja an einem Versionskonflikt ?

cu Harald

gambler
10.01.2005, 09:43:00
0.9.19 > 0.9.26
so ein paar hab ich getestet....

soweit läuft ja alles, jetzt beginnt halt das grosse fixen und porten. bzip2 hab ich gestern schon problemlos zum laufen gebracht. so als kleinen test. samba macht noch grosse probleme bei der parameter übergabe und parsen der smb.conf. hier scheinen edliche header files eine überarbeitung zu brauchen.

Manos
10.01.2005, 10:20:22
"solange der Speicher reicht"...
(Quote will bei mir grade nicht :confused: )

Hat eigentlich schon mal jemand geschafft einen USB-Stick anzuschließen oder wäre sowas überhaupt möglich? Vielleicht könnte man ja dann im fortgeschrittenen Zustand einer Funktionserweiterung die Zusatzprogramme dort ablegen wenn der interne Flash-Speicher knapp wird.

Ich meine - wofür soll der 2. USB sonst gut sein :D

pencoe
10.01.2005, 13:25:57
Noch schöner wäre es, wenn die Box aus dem Flash-RAM nur einen Bootloader holen und dann von einer angeschlossenen Platte booten könnte... Damit wären dann jegliche Platzprobleme (außer internem RAM) beseitigt ;)

[träum] Man könnte dann an den zweiten USB einen DVD-Brenner anschließen, einen DVD-Player integrieren, DivX, direktes Brennen von DVDs, ... [/träum]

Tschüs, Peter

hase
13.01.2005, 19:12:55
gcc, egc, uclibc, alle header files, alle vmlinux kernel files findet iher da, also das komplette sdk welches auch siemens benutzt haben wird.

Glaube ich nicht wirklich.
Für mich deutet der String "Embedix User" in der /etc/passwd eher auf Lineo/Metrowerks Embedix hin.

Kennt hier jemand dsa Paket von Metrowerks?
Hat schonmal jemand aus den Quellen was neu üersetzt und mit der Siemens-Version verglichen?

lunzet
14.01.2005, 00:20:35
grossen respekt @ LEMMI

und natürlich alle anderen die mich täglich hier im forum mit ihren weiteren erforschungen ein stück glücklicher machen...

weiter so.....

macki
14.01.2005, 07:25:03
Hat eigentlich schon mal jemand geschafft einen USB-Stick anzuschließen oder wäre sowas überhaupt möglich?
Ja mein 128 MB USB-Stick (Formatierung FAT32) wurde erkannt (ist ja quasi auch eine Festplatte).
Beim Einsatz von 2 USB-Festplatten gab es Probleme, da hat die M740 keine der beiden Platten aktivieren können.



...
Ich meine - wofür soll der 2. USB sonst gut sein :D
Hier gab es schon mal die eine oder andere Idee:
http://www.m740.de/forum/showthread.php?t=224

8-) mACKi

Lemmi
14.01.2005, 14:49:16
Suche jemand mit Firmware 1.12:
Für ein Versionskontrolle-Script benötige ich die Ausgabe von
# ls -l /data/wavebox

hagalulu
14.01.2005, 14:51:00
Suche jemand mit Firmware 1.12:
Für ein Versionskontrolle-Script benötige ich die Ausgabe von
# ls -l /data/wavebox

kann ich dir heute abend liefern, wenn ich vor der box sitze, schcike dir dann 'ne pn.

hagalulu

Lemmi
14.01.2005, 19:32:09
Hab für mein Update ein kleines Script geschrieben, welches die Firmware-Version erkennt. Es hat zwar eine Anpassung an mein zukünftiges Update, funktioniert aber auch ohen.

Einfach mal testen:


#!/bin/sh

FIRMWARE_VERSION='?'
LEMMI_VERSION=''
LEMMI_DATE=''

if [ -x /usr/bin/lemmi-version ] ; then
source /usr/bin/lemmi-version set-var
fi

info=(`ls -l /data/wavebox`)
#echo ${info[4]}

if [ "${info[4]}" == "4209491" ] ; then
FIRMWARE_VERSION="1.12.1"
elif [ "${info[4]}" == "4047308" ] ; then
FIRMWARE_VERSION="1.18"
fi

if [ "$1" != "set-var" ] ; then
echo "Firmware Version: $FIRMWARE_VERSION"
[ "$LEMMI_VERSION" == "" ] || echo "Lemmis Patch-Version: $LEMMI_VERSION"
[ "$LEMMI_DATE" == "" ] || echo "Lemmis Patch-Date: $LEMMI_DATE"
fi

Lemmi
14.01.2005, 19:33:28
Nochmals Hurraaaaaaa:

Meine eigene Firmware (basierend auf 1.18) läuft seit >10 Minuten stabil auf der Box.

Demnächst mehr auf diesem Sender ;)