**************************************************************************
* Reverse
Engineering
*
* MCU Informationen (deutsch/german)
*
* (c)2002 [ExiTuS], NokiaPort.de, NokiaPort.de/Softtune, NokiaPort.de/RE *
**************************************************************************
-> Einführung MCU
Hier findest du einige nützliche Infos zu
dem, was sich im MCU-Bereich eines 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 FlashFile:
| Anfang des MCU-Teils im FlashFile. |
| 20 | Eine Art Anfangsbyte für das Flash-File (Jedes File fängt mit dem Byte "20" an). |
| 0F | (?) (Bei jedem Modell ist das dritte byte "0F(hex)".) |
| FD D4 | MCU Checksumme. (Informationen über Checksummen gibt es hier). |
| 20 00 24 | Offset-Adresse, von wo an
die Checksummen berechnet wird. Ab dieser Stelle werden immer 2 Bytes zusammen addiert. Die Checksumme sind die letzen beiden Bytes des Ergebnisses. Beispiel: 20 00 + 24 32 + FF FF + ... = AB CD FD D4 |
Ich habe keine Ahnung, wofür die
restlichen Bytes am Anfang des Flashs stehen!
Infos her damit ;-) Mail
Ende des Flash-Files:
| Ende des Flash-Files. |
MCU Checksumme:
Am Ende des Flashs befindet sich die MCU und PPM Checksumme
Die letzten 6 Bytes sind Checksummen: ... MM MM PP PP PP
MM MM =
MCU-Checksumme
PP PP PP = PPM Checksumme
**************************************************************************
Byte-Strings für die Zuordnung der
Menü/Symbol-Grafiken
Hier findest du Infos über die einzelnen Strings, die in der Menüführung auf
die einzelnen Menügrafiken und Symbole verweisen!
Außerdem über die Größe, welche manipulierbar ist, um größere Grafiken
anzeigen zu lassen!
Anleitungen für größere Grafiken und Symbole hier: Softtune/Menügrafiken
und Softtune/Symbole.
| MCU-Bereich mit Verweisungen auf Symbole/Grafiken. |
Hier siehst du nun den Ausschnitt aus dem MCU-Bereich, welche der Zuweisung der einzelnen Menügrafiken zu den entsprechenden Menüs gilt!
In diesem Beispiel habe ich den String von der Menügrafik "Verzeichnis" genommen.
Die Adresse dieser Strings spielt keine
Rolle, da sie in jedem Handy und jedem Modell verschieden ist!
Finden kann man diese Stelle in dem man nach der Offset-Adresse der
entsprechenden Menügrafik oder des Symbols als HEX-Wert sucht sucht, wie z.B.
"2E 6F 44" (Offset-Adresse im 3310 v5.13,
Grafik: Verzeichnis).
Für jede Menügrafik und jedes Symbol (ich
glaube nicht die kleinen Symbole) findet man hier die entsprechende Zuweisung,
und den entsprechenden String.
Jeder String ist für jede Grafik nach dem selben Prinzip aufgebaut und hat
die...
Länge: 12 Bytes.
Hier: "2E 6F 44 00 2E 47 44 40 0E 00 00 00"
Der String ist folgendermaßen aufgebaut:
| 00 2E 6F 44 | Die eigentlich Offset-Adresse der Menügrafik. | |
| 00 2E 47 44 | Offset-Adresse zu einer bestimmten Funktion (?) | |
| 40 | 64dez | Die Größe der Grafik
(Breite). In diesem Beispiel ist die Menügrafik (Verzeichnis) 64 Pixel breit. |
| 0E | 14dez | Die Größe der Grafik
(Höhe). In diesem Beispiel ist die Menügrafik (Verzeichnis) 14 Pixel hoch. |
| 00 00 | Trennzeichen(?). Diese drei 0-Bytes stehen in jedem String. Ob diese vor oder nach dem String kommen kann außer Acht gelassen werden! |
|
Mit diesem String kann man jedem Menü oder
Aktionen eine andere Grafik oder anderes Symbol zuweisen.
Als Beispiel kann man dem Menü "Mitteilungen" das Symbol der
Tastensperre zuordnen ;-)
Außerdem hat man die Möglichkeit, durch die Änderung der Bytes für die
Größe, die Maße der jeweiligen Grafik zu manipulieren und kann z.B. größere
Menügrafiken einbauen
**************************************************************************
Offset-Adressen für die Menüeinträge:
| Offset-Adressen zu den Zuweisungen der Menüeinträge (hier: 5130 v5.71). |
| 00 00 ... 00 00 | (?) |
| 00 29 57 04 | Offset-Adresse (?). |
| 00 DC | (?) |
| ... | ... |
| 00 00 ... 00 00 | (?) |
| 00 2A 79 7F | Offset-Adresse zur
Zuweisung der einzelnen Menüeinträge (Siehe weiter unten). hier: 02 81(hex) = 641(dez) = "Weiter" |
| 00 DC | (?) |
| 00 00 ... 00 00 | (?) |
| 00 2A 7B 47 | Offset-Adresse zur
Zuweisung der einzelnen Menüeinträge (Siehe weiter unten). hier: 03 19(hex) = 793(dez) = "Menü" |
| 00 DC | (?) |
Zuweisung der Menüeinträge
| ...fortsetzung |
| Anfang (oben) und Ende (unten) der Zuweisungen. |
Hier siehst du nun die Ausschnitte aus dem MCU-Bereich, welche der Zuweisung der einzelnen Menüeinträge gelten!
Es ist ein langer String und beinhaltet so
viele Einträge, wie es Menüeinträge in der Menüführung gibt.
Dieser String fängt mit dem Bytes "04" an und endet mit
"00". Jede Zuweisung wird durch ein "04" von einander
getrennt!
Die Aufzählung verläuft folgendermaßen:
00 00 - 00 01 - 00 02 - 00 03 - .. - 00 09 - 00 0A - 00 0B - 00 0C - 00 0D - 00
0E - 00 0F - 01 00 - 01 01 - 01 02 - 01 03 - ... - 01 09 - 01 0A - 01 0B - 01 0C
- 01 0D - 01 0E - 01 0F - 02 00 - 02 01 - ... usw.
| 04 | Ein Anfangsbyte des Strings. | |
| 00 00 | 0(dez) | Zuweisung zum Text mit der ID 0. (hier: Dansk) |
| 04 | Ein Anfangsbyte des Strings. | |
| 00 01 | 1(dez) | Zuweisung zum Text mit der ID 1. (hier: Deutsch) |
| 04 | Ein Anfangsbyte des Strings. | |
| 00 02 | 2(dez) | Zuweisung zum Text mit der ID 2. (hier: English) |
| 04 | Ein Anfangsbyte des Strings. | |
| ... | ... | |
| 01 52 | 338(dez) | Zuweisung zum Text mit der ID 338. (hier: Freigabe) |
| 04 | Ein Anfangsbyte des Strings. | |
| 01 53 | 339(dez) | Zuweisung zum Text mit der ID 339. (hier: Tastatur ist gesperrt) |
| 04 | Ein Anfangsbyte des Strings. | |
| 01 54 | 340(dez) | Zuweisung zum Text mit der ID 340. (hier: Jetzt Taste * drücken) |
| 04 | Ein Anfangsbyte des Strings. | |
| ... | ... | |
| 03 76 | 886(dez) | Zuweisung zum Text mit der ID 886. |
| 04 | Ein Anfangsbyte des Strings. | |
| 03 77 | 887(dez) | Zuweisung zum Text mit der ID 887. |
| 00 | 00 | Trennzeichen(?) |
Wenn man mit dem Programm PPMManager den Text-Chunk des Flash-Files extrahiert, kann man es in einem Editor öffnen und die ID ablesen! So kann man sich sicher sein, welche ID zu welchem Text gehört! Mehr Infos zum Umgang mit dem PPMManager gibt es hier: www.NokiaPort.de/Softtune.
Bei Fragen
mailto:[email protected]?Subject=RE/MCU
(c)2002 [ExiTuS], NokiaPort.de, NokiaPort.de/Softtune, NokiaPort.de/RE