**************************************************************************
* 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:[email protected]?Subject=RE/PPM
(c)2002 [ExiTuS], NokiaPort.de, NokiaPort.de/Softtune, NokiaPort.de/RE