ARCHIV
NokiaPort.de
ARCHIV/2002 - NokiaPort.de/RE

[ExiTuS], NokiaPort.deNokia DCT-3 Flash Reverse Engineering

Hier findest du Informationen über das Flash-File. Erklärung von einzelnen Bytes, Strings, usw..


Einführung Indikatoren

Hier findest du einige nützliche Infos zu den Indikatoren (oder auch Netz-, bzw. Akkubalken) In diesem Beispiel erkläre ich die Infos an einem Flash-File eines Nokia 3330 v4.16. Hatte es grade zur Hand ;-) Wie immer, alle Beispiele auf den Snapshots von HIEW(Hackers View)

Netz-Symbol:

Byte-String zum Netz-Symbol. 03 05 3F 05 03 Byte-String zum Netz-Symbol. (Aus den Pixeln des Symbols ergibt sich dieser String). C0 46 C0 NOP (no operation). 00 C0 46 C0 NOP (no operation). 00 2A 49 20 Offset-Adresse zum Netz-Symbol. 00 2A 49 28 Offset-Adresse zu einer Stelle nach dem Netz-Symbol. An dieser Stelle befindet sich ein 00(hex), eine Art Ende-Zeichen. 05 5(dez) Breite des Netz-Symbols. 06 6(dez) Höhe des Netz-Symbols. 00 00 Eine Art Trennzeichen (gibt das Ende des Strings an).

Akku-Symbol:

Byte-String zum Akku-Symbol. 3E 23 23 3E 00 Byte-String zum Akku-Symbol. C0 46 C0 NOP (no operation). 00 2A 49 38 Offset-Adresse zum Akku-Symbol. 00 2A 49 3C Offset-Adresse zum Ende des Akku-Symbols. 04 4(dez) Breite des Batterie-Symbols. 06 6(dez) Höhe des Batterie-Symbols. 00 00 Eine Art Trennzeichen (gibt das Ende des Strings an).

Positionierung der Netz-/Akku-Balken (Indikatoren):

Positionierungs-String zum Akku-Symbol. 00 2A 49 40 Offset-Adresse für das Ende des Akku-Symbol-Strings. (00(hex)) 50 80(dez) Horizontal-Position des Akku-Symbols (gesehen von der ersten Pixelreihe oben). 80 Pixel nach rechts. Insgesamte Breite des Displays=84 also bleiben 4 Pixel für die Breite des Symbols. 1F 31(dez) Vertikal-Position des Akku-Symbols (gesehen von der ersten Pixelreihe links). 31 Pixel nach unten. Insgesamte Höhe des Displays=48 also bleiben 17 Pixel für die Höhe des Symbols (Akku-Symbol ist jedoch nur 6 Pixel hoch). 00 00 00 00 01 00 Eine Art Trennzeichen (kommt zwischen jedem Positions-String) (?). 00 2A 49 40 Offset-Adresse für das Ende des Akku-Symbol-Strings. (00(hex)) 50 80(dez) Horizontal-Position vom Ende des ersten (kleinen) Akkubalken. 1D 29(dez) Vertikal-Position vom Ende des ersten (kleinen) Akkubalken. 00 00 00 00 01 00 Eine Art Trennzeichen (kommt zwischen jedem Positions-String) (?). 00 2A 49 2C Offset-Adresse für das Ende des Akku-Symbol-Strings. (00(hex)) 00 0(dez) Horizontal-Position des Netz-Symbols (gesehen von der ersten Pixelreihe links). 0 Pixel nach rechts. also beginnt das Symbol genau am linken Rand des Displays. 1F 31(dez) Vertikal-Position des Netz-Symbols (gesehen von der ersten Pixelreihe oben). 31 Pixel nach unten. Insgesamte Höhe des Displays=48 also bleiben 17 Pixel für die Höhe des Symbols (Netz-Symbol ist jedoch nur 6 Pixel hoch). 00 00 00 00 01 00 Eine Art Trennzeichen (kommt zwischen jedem Positions-String) (?). 00 2A 49 2C Offset-Adresse für das Ende des Akku-Symbol-Strings. (00(hex)) 00 0(dez) Horizontal-Position vom Ende des ersten (kleinen) Netzbalken. 1D 29(dez) Vertikal-Position vom Ende des ersten (kleinen) Netzbalken. 00 00 00 00 01 00 Eine Art Trennzeichen (kommt zwischen jedem Positions-String) (?).

Netz-/Akku-Balken (Indikatoren):

Links neben dem Snapshot wird der zu dem Byte-String gehörende Balken in rot markiert! String des ersten (großen) Balken(Indikator). FF FF FF FF Byte-String zum ersten (großen) Balken(Indikator). 00 2A 49 7C Offset-Adresse zum ersten (großen) Balken(Indikator): 00 0(dez) Horizontal-Position des ersten (großen) Balken(Inidikator) (gesehen von der ersten Pixelreihe links) (?). 29 41(dez) Vertikal-Position des ersten (großen( Balken(Indikator) (gesehen von der ersten Pixelreihe oben) (?). 6A F8 (?) 04 4(dez) Breite des ersten (großen) Balken(Indikator). 07 7(dez) Höhe des ersten (großen) Balken(Indikator). 00 00 Eine Art Ende-Zeichen des ersten (großen) Balkens(Indikator).

Netz-/Akku-Balken (Indikatoren):

String des zweiten Balken(Indikator). FF FF FF Byte-String zum zweiten Balken(Indikator). C0 Platzhalter. Es ist beim zweiten Balken Platz für 1 Byte. Da jedoch nur 3 Bytes benötigt werden, weil der Balken nur 3 Pixel breit ist, wird das letzte Byte durch den Platzhalter C0 ersetzt. Wenn mehr als 1 Byte durch Platzhalter ersetzt werden, folgt nach den "C0" ein "46" usw. Also bei 3 Bytes Platzhalter "C0 46 C0 46" usw. 00 2A 49 8C Offset-Adresse zum zweiten Balken(Indikator): 00 0(dez) Horizontal-Position des zweiten Balken(Inidikator) (gesehen von der ersten Pixelreihe links) (?). 29 41(dez) Vertikal-Position des zweiten Balken(Indikator) (gesehen von der ersten Pixelreihe oben) (?). 6A F8 (?) 03 3(dez) Breite des zweiten Balken(Indikator). 07 7(dez) Höhe des zweiten Balken(Indikator). 00 00 Eine Art Ende-Zeichen des zweiten Balkens(Indikator).

Netz-/Akku-Balken (Indikatoren):

String des dritten Balken(Indikator). FF FF Byte-String zum dritten Balken(Indikator). 46 C0 NOP (no operation). 00 2A 49 A8 Offset-Adresse zum dritten Balken(Indikator): 00 0(dez) Horizontal-Position des dritten Balken(Inidikator) (gesehen von der ersten Pixelreihe links) (?). 49 73(dez) Vertikal-Position des dritten Balken(Indikator) (gesehen von der ersten Pixelreihe oben) (?). 6A F8 (?) 02 2(dez) Breite des dritten Balken(Indikator). 07 7(dez) Höhe des dritten Balken(Indikator). 00 00 Eine Art Ende-Zeichen des dritten Balkens(Indikator).

Netz-/Akku-Balken (Indikatoren):

String des vierten Balken(Indikator). 3F 3F Byte-String zum vierten Balken(Indikator). 46 C0 NOP (no operation). 00 2A 49 B8 Offset-Adresse zum dritten Balken(Indikator): 00 0(dez) Horizontal-Position des dritten Balken(Inidikator) (gesehen von der ersten Pixelreihe links) (?). 49 73(dez) Vertikal-Position des dritten Balken(Indikator) (gesehen von der ersten Pixelreihe oben) (?). 6A F8 (?) 02 2(dez) Breite des dritten Balken(Indikator). 07 7(dez) Höhe des dritten Balken(Indikator). 00 00 Eine Art Ende-Zeichen des dritten Balkens(Indikator). Positionierungen und Größen: Strings zu Positionen und Größen. Die in der Tabelle rot markierten Werte sind die Angaben der Positionierung! 00 2A 49 C8 Offset-Adresse für ein leeres Symbol im Flash nach den Indikatoren-Strings. (dieses leere Symbol wird wohl genutzt, um den Platz an dieser Stelle des Displays freizuhalten. (?) 00 0(dez) Horizontal-Position des leeren Symbols (gesehen von der ersten Pixelreihe links). 29 41(dez) Vertikal-Position des leeren Symbols (gesehen von der ersten Pixelreihe oben). also 41 Pixel nach unten. Insgesamte Höhe des Displays=48 6A F8 (?) Diese Bytes stehen in jedem String an dieser selben Stelle. 05 5(dez) Breite des (leeren) Symbols. 06 6(dez) Höhe des (leeren) Symbols. 00 00 Eine Art Trennzeichen (kommt zwischen jedem String) (?). 00 2A 49 C8 Offset-Adresse für ein leeres Symbol im Flash nach den Indikatoren-Strings. (dieses leere Symbol wird wohl genutzt, um den Platz an dieser Stelle des Displays freizuhalten. (?) 00 0(dez) Horizontal-Position des leeren Symbols (gesehen von der ersten Pixelreihe links). 29 41(dez) Vertikal-Position des leeren Symbols (gesehen von der ersten Pixelreihe oben). also 41 Pixel nach unten. Insgesamte Höhe des Displays=48 6A F8 (?) Diese Bytes stehen in jedem String an dieser selben Stelle. 05 5(dez) Breite der leeren) Symbols. 07 7(dez) Höhe des (leeren) Symbols. 00 00 Eine Art Trennzeichen (kommt zwischen jedem String) (?). 00 2A 49 BC Offset-Adresse für das Ende der Bytefolge des vierten (kleinen) Indikators(Balken). (00(hex)). 00 0(dez) Horizontal-Position der leeren Pixelreihe zwischen dem ersten (kleinsten) und zweiten (mittleren) Netz-Balken. (gesehen von der ersten Pixelreihe links). 18 24(dez) Vertikal-Position der leeren Pixelreihe zwischen dem ersten (kleinsten) und zweiten (mittleren) Netzbalken. (gesehen von der ersten Pixelreihe oben). also 24 Pixel nach unten. Insgesamte Höhe des Displays=48 00 00 00 00 01 00 Eine Art Trennzeichen (kommt zwischen jedem *String) (?). 00 2A 49 AC Offset-Adresse für das Ende der Bytefolge des dritten (mittleren) Indikators(Balken). (00(hex)). 00 0(dez) Horizontal-Position vom Ende des dritten Indikators(Balkken). (An dieser Stelle befindet sich die leere Pixelreihe zwischen zweiten und dritten Indikator(Balken). 10 16(dez) Vertikal-Position vom Ende des ersten (kleinen) Indikators(Balken). (An dieser Stelle befindet sich die leere Pixelreihe zwischen zweiten und dritten Indikator(Balken). 00 Eine Art Anfangszeichen der Offset-Adresse. 00 00 00 00 01 00 Eine Art Trennzeichen (kommt zwischen jedem *String) (?). 00 2A 49 90 Offset-Adresse für das Ende der Bytefolge des zweiten (größeren) Indikators(Balken). (00(hex)). 00 0(dez) Horizontal-Position vom Ende des zweiten (größeren) Indikators(Balken). (An dieser Stelle befindet sich die leere Pixelreihe zwischen ersten und zweiten Indikator(Balken). 08 8(dez) Vertikal-Position vom Ende des zweiten (größeren) Indikators(Balken). (An dieser Stelle befindet sich die leere Pixelreihe zwischen ersten und zweiten Indikator(Balken). 00 Eine Art Anfangszeichen der Offset-Adresse. 00 00 00 00 01 00 Eine Art Trennzeichen (kommt zwischen jedem *String) (?). 00 2A 49 80 Offset-Adresse für das Ende der Bytefolge des vierten (großen) Indikators(Balken). (00(hex)). 00 0(dez) Horizontal-Position. 00 0(dez) Vertikal-Position. 00 Eine Art Anfangszeichen der Offset-Adresse. 00 00 00 00 01 00 Eine Art Trennzeichen (kommt zwischen jedem *String) (?). 00 2A 49 D0 Offset-Adresse für das Ende der Bytefolge des leeren Symbols im Flash nach dem Indikatoren-String. (00(hex)). 00 0(dez) Horizontal-Position des leeren Symbols. 18 24(dez) Vertikal-Position des leeren Symbols. 00 Eine Art Anfangszeichen der Offset-Adresse. 00 Eine Art Anfangszeichen der Offset-Adresse. 00 00 00 00 01 00 Eine Art Trennzeichen (kommt zwischen jedem *String) (?). 00 2A 49 DC Offset-Adresse für das Ende der Bytefolge des leeren Symbols im Flash nach dem Indikatoren-String. (00(hex)). 00 0(dez) Horizontal-Position des . 10 16(dez) Vertikal-Position des . ... ...

©2002 [ExiTuS], NokiaPort.de