**************************************************************************
* Reverse Engineering                                                    *
* PPM Informationen (deutsch/german)                                     *
* (c)2002 [ExiTuS], NokiaPort.de, NokiaPort.de/Softtune, NokiaPort.de/RE *
**************************************************************************

 

-> 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) [Download]

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).

Die rot markierten Bytes sind durch das Modell und die Version unterschiedlich. Die restlichen Bytes sind sonst 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
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.

Anfangsschema des LPCS-Blocks. 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 (dez) 56 33 30 30 35 30 30(hex) Versionsnummer des LPCS.
[leer] 00 Markierung des Ende von LPCS-Version.

 

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)

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.

PPM- und MCU-Checksumme.

Die letzten 6 Bytes sind Checksummen: ... MM MM PP PP PP

MM MM = MCU-Checksumme
PP PP PP = PPM Checksumme

 

...weitere Informationen folgen!

 

Bei Fragen
mailto:RipPETW@gmx.de?Subject=RE/PPM

(c)2002 [ExiTuS], NokiaPort.de, NokiaPort.de/Softtune, NokiaPort.de/RE