Ich habe mir auch mal die Sagem-Firmware v1.11 angesehen und kann nur bestätigen, was hier schon gesagt wurde (ich fasse nur noch einmal zusammen):
Die Firmware ist verbuchtelt worden um ein entpacken zu verhindern.
Dabei sind wahrscheinlich verschiedene (relativ simple) Varianten zum Einsatz gekommen
- Vertauschen von Blöcken
- Einfügen von dummy bytes
- XOR Verknüpfung
hier eine schöne ASCII Table mit dummy Bytes 0xFF 0x7F usw und fehlendem Block (ab 0x40 fehlt ein Block bis 0x60)
Code:
0005DC80: __ __ __ __-__ __ __ __-__ __ __ __-00 01 02 03 GESòíu•}░dµá ☺☻♥
0005DC90: 04 FF 05 06-07 08 09 0A-0B 0C FF 0D-0E 0F 10 11 ♦ ♣♠•◘○◙♂♀ ♪♫☼►◄
0005DCA0: 12 13 14 FF-15 16 17 18-19 1A 1B 1C-FF 1D 1E 1F ↕‼¶ §▬↨↑↓→←∟ ↔▲▼
0005DCB0: 20 21 22 23-24 FF 25 26-27 28 29 2A-2B 2C FF 2D !"#$ %&'()*+, -
0005DCC0: 2E 2F 30 31-32 33 34 FF-35 36 37 38-39 3A 3B 3C ./01234 56789:;<
0005DCD0: 7F 3D 3E 3F-40 61 62 63-BC A0 FF 67-68 69 6A 6B ⌂=>?@abc╝á ghijk
0005DCE0: 6C 6D 6E FF-6F 70 71 72-73 74 75 76-FF 77 78 79 lmn opqrstuv wxy
0005DCF0: 7A 5B 5C 5D-5E F3 5F 60-01 BF 13 B5-7B 7C 7D 7E z[\]^¾_`☺┐‼Á{|}~
0005DD00: FF 7F 80 81-82 83 84 85-86 FF 87 88-89 8A 8B 8C ⌂Çüéâäàå çêëèïî
0005DD10: 8D 8E FF 8F-90 91 92 93-94 95 96 FF-97 98 99 9A ìÄ ÅÉæÆôöòû ùÿÖÜ
0005DD20: 9B 9C 9D 9E-FF 9F A0 A1-A2 A3 A4 A5-A6 FF A7 A8 ø£Ø× ƒáíóúñѪ º¿
0005DD30: A9 AA AB AC-AD AE FF AF-B0 B1 B2 B3-B4 B5 B6 FF ®¬½¼¡« »░▒▓│┤ÁÂ
0005DD40: B7 B8 B9 BA-BB BC BD BE-FF BF C0 C1-C2 C3 C4 C5 À©╣║╗╝¢¥ ┐└┴┬├─┼
0005DD50: C6 FF C7 C8-C9 CA CB CC-CD CE FF CF-D0 D1 D2 D3 ã Ã╚╔╩╦╠═╬ ¤ðÐÊË
0005DD60: D4 D5 D6 FF-D7 D8 D9 DA-DB DC DD DE-FF DF E0 E1 ÈıÍ ÎÏ┘┌█▄¦Ì ▀Óß
0005DD70: E2 E3 E4 E5-E6 FF E7 E8-E9 EA EB EC-ED EE FF EF ÔÒõÕµ þÞÚÛÙýݯ ´
0005DD80: F0 F1 F2 F3-F4 F5 F6 FF-F7 F8 F9 FA-FB FC FD FE *±‗¾¶§÷ ¸°¨•¹³²■
0005DD90: E1 FF
weitere Beispiele für eingefügte Bytes
Code:
comma�nd failz
comman©d
UNSUÿPPORTED ÿCOMMAND
beim Vergleich mir der Firmware vom MGB111, Wap-0007 fällt auf, dass die mehrfach genannten Trennblöcke zwar beim Sagem ebenfalls vorhanden sind, die "Strings" aber nicht aus dem üblichen Zeichensatz bestehen.
Das sieht verdammt nach XOR Verknüpfung aus.
Beispiel die Startmarke:
Anstatt MGB111 oder auch noch akzeptablen @m!tr&d (Wap-0007) steht bei uns in Hex: "AC 5C EC D9 FC FE".
Dieser Blockanfang-String wiederholt sich wunderbar an der Adresse:
Code:
0x00000000
0x00004020
0x00008040
0x0000C060
0x00010080
auch die 34 Byte lange Ende Markierung "
SGM7021 ▲ $ ☺ ■ ♦ ☻ Â.Li" mit dem bekannten "
.Li"
Code:
53 47 4D 37 30 32 31 00 1E 00 00 00 00 00 24 00 01 00 00 00 FE 21 FF 04 00 02 00 00 00 00 20 B6 2E 4C 69
taucht regelmäßig (unzerhackt) auf folgenden Adressen auf:
Code:
5de4b
7bf9f
80f51
87e24
8d3c6
9a658
Fazit: Die Firmware ist in sauber erkennbare Blöcke eingeteilt. Ein Zerlegen macht aber kein Sinn, da die Bytes in den Blöcken/Segmenten verbuchtelt sein.
Ironischerweise ist das Datensegment nicht verwürfelt worden. Hier steht alles im Klartext:
Code:
<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
<friendlyName>My Web Tuner 500</friendlyName>
<manufacturer>Sagem</manufacturer>
<manufacturerURL>http://www.sagem.com</manufacturerURL>
<modelDescription>Internet Radio</modelDescription>
<modelName>My Web Tuner</modelName>
<modelNumber>500</modelNumber>
<modelURL>http://www.sagem-online.com</modelURL>
Da wollte jemand den Linux Code verstecken...
PS: In der Firmware stecken noch einige nette Strings
GET /sbin/shoutcast-playlist.pls%s...
---------
Nachtrag: Seltsamerweise sieht die Firmware WAP-0007(R4.00b5)_2006-01-13.BIN die hier erfolgreich entpackt wird
http://tintuc.no-ip.com/linux/tipps/mgb100/index.html.de
ebenso verbuchtelt aus:
Code:
BODY BGÿCOLOR
TOPMAÿRGIN=0
CßENTER TAÿBLE WIDTÿH=95
...vielleicht lohnt es sich doch noch, etwas tiefer in
splitamitbin einzusteigen