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 PPM

Hier findest du einige nützliche Infos zu dem, was sich in einem Flash-File befindet! 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 Abb. Anfang des PPM-Teils. Alle hier genannten Offset-Adressen beziehen sich nur auf dem PPM-Teil. Also fängt dieser Teil (nicht wie auf dem Bild zu sehen mit 00130000 sondern) mit 00000000 an! 1. Anfang des PPM-Teil "PPM" Offset-Adresse: 00000000 (laut Bild 00130000) Länge: 4 Bytes Hier: "50 50 4D 00" / "PPM" 50 50 4D Anfangs-String (Jedes Sprachpaket fängt mit "PPM " an). [leer] 00 Markierung des Ende vom PPM-Anfang. 2. Informationen über Modell und Version (PPM) Offset-Adresse: 00000004 (laut Bild 00130004) Länge: 20 Bytes V 05.13x 56 20 30 35 2E 31 33 0A PPM-Firmware-Version (Version 05.13). 11-01-02x 31 31 2D 30 31 2D 30 32 0A PPM-Firmware-Release (Firmware herausgebracht am 11.Januar 2002). NHM-5x 4E 48 4D 2D 35 0A PPM-Modell-Bezeichnung (NHM-5 = 3310). (c) NMP. 28 63 29 20 4E 4D 50 2E 00 Nokia Copyright. [leer] 00 Markierung des Ende von den Modell/Version-Informationen. x = Platzhalter für 0A(hex). Alle Bytes bis auf die für Modell und Version sind immer in diesem Schema und dieser Reihenfolge gleich! 3. Trennbytes "FF FF ..." Offset-Adresse: 00000024 (laut Bild 00130024) Länge: 4 Hier: "FF FF FF 00" 4. Sprachpaket-Wahl "J" Offset-Adresse: 00000028 Länge: 4 Bytes Hier: "A4 00" / "J" 4A Sprachpaket-Wahl (Sprach-Pack J vorhanden). [leer] 00 Markierung des Ende vom Sprachoaket-Block. 5. Trennbytes "FF FF ..." Offset-Adresse: 00000024 (laut Bild 00130024) Länge: 4 Bytes Hier: "FF FF FF 00"

PPM-Blöcke

Das Sprachpaket (PPM) ist unterteilt in mehrer Blöcke (auch Chunks genannt). In ihnen befinden sich Daten, die das Handy benötigt und umsetzten muss, wie z.B. den Zeichensatz, Provider-Codes, sowie Klingeltöne und Menütexte! Jeder einzelne Block hat das selbe Anfangs-Schema und dieselbe Reihenfolge!

1. LPCS-Block (Productiondate Soft)

Der LPCS-Block ist für die Umsetzung des Zeichensatz erforderlich. Abb. Anfangsschema des LPCS-Blocks. Abb. Anfangsschema des GSMC-Blocks. 1.1 LPCS-Checksumme Offset-Adresse: 00000000 (laut Bild 0013002C) Länge: 4 Bytes 1.2 Länge des LPCS-Chunks Offset-Adresse: 00000004 (laut Bild 00130030) Länge: 4 Bytes Hier: "00 00 02 34" 564(dez) 00 00 02 34(hex) 1.3 Name des Chunks "LPCS" Offset-Adresse: 00000008 (laut Bild 00130034) Länge: 4 Bytes Hier: "4C 50 43 53" / "LPCS" 4C 50 43 53(hex) 1.4 LPCS-Version "V300500" Offset-Adresse: 0000000C (laut Bild 00130038) Länge: 8 Bytes Hier: "56 33 30 30 35 30 30 00" / "V300500" 56 33 30 30 35 30 30(hex) Versionsnummer des LPCS. [leer] 00 Markierung des Ende von LPCS-Version. Abb. Weitere Infos des LPCS-Blocks. 1.5 ID Offset-Adresse: 00000000 (laut Bild 00130040) Länge: 4 Bytes Hier: "00 00 00 01" 1(dez) 00 00 00 01(hex) Die Identifikationsnummer (ID). 1.6 Länge des Unterblocks (Subchunk) Offset-Adresse: 00000004 (laut Bild 00130044) Länge: 4 Bytes Hier: "00 00 02 10" 528(dez) 00 00 02 10(hex) Die Länge des nächsten Subchunks. 1.7 Kurzbezeichnung des Subchunks "BEET" (PPM Info) Offset-Adresse: 00000008 (laut Bild 00130048) Länge: 4 Bytes Hier: "42 45 45 54" / "BEET" 42 45 45 54(hex) Der kurze Name des Subchunks (4-stellig). 1.8 Trennzeichen(?) Offset-Adresse: 0000000C (laut Bild 0013004C) Länge: 4 Bytes Hier: "00 00 00 00" 1.9 Übersetzungstabelle von Einzelbyte zu Doppelbyte-Strings Offset-Adresse: 00000010 (laut Bild 00130050) Länge: 200-xxx Bytes(?) In einem 51xx scheint die Länge 200 zu sein, in diesem Beispiel von einem 3310 ist sie viel länger! Übersetzungstabelle von 256 Zeichen!

2. GSMC-Block (GSM-Code)

Abb. Anfangsschema des GSMC-Blocks. Dieser Block hat das selbe Schema wie auch der LPCS-, und alle anderen Blöcke!!! 2.1 GSMC-Checksumme 2.2 Länge des GSMC-Chunks "GSMC" 2.3 Name des GSMC-Chunks 2.4 GSMC-Version 2.5 ID 2.6 Länge des Unterblocks (Subchunk) 2.7 Kurzbezeichnung des Chunks "GSMC" 2.8 Trennzeichen(?) 2.9 der eigentliche Inhalt des Chunks

PPM-Checksumme

Am Ende des Flashs befindet sich die MCU und PPM Checksumme. Abb. PPM- und MCU-Checksummen. Die letzten 6 Bytes sind Checksummen: ... MM MM PP PP PP MM MM MCU-Checksumme PP PP PP PPM Checksumme

©2002 [ExiTuS], NokiaPort.de