Sei sulla pagina 1di 3

STRUTTURA DELLE FLEX MOTOROLA

Sapere come strutturata una flex o una seem ci permette di poter ricrearne una! Allora...un po di teoria! Iniziamo col chiarire un po alcuni termini: FLEX: I Flex File sono dei file che contengono righe di codice in grado di abilitare o disabilitare determinate funzioni dei cellulari Motorola. SEEM: Le seem invece sono porzioni complete di codice dei Flex File che vanno ad agire su determinate zone di memoria. Le nostre seem sono cos strutturate, prendo ad esempio la 00320001:
HEADER LENGHT1 COMANDO LENGHT2 SEEM+OFFSET LENGHT3 DATI CHEKSUM

AAB0300000720000002F006A00000032000100000062D2EE88...E001334A Spieghiamo in dettagli le varie parti evidenziate: 1. Il 00 72 (Lenght 1) indica la lunghezza di tutti i dati che seguono esclusi gli ultimi 2 byte di Checksum (ovvero 33 4A), i dati vanno presi sempre a coppie ovvero 00 00 00 2F e cos via. Quel 00 72 in esadecimale (HEX) e va quindi convertito in decimale, ovvero 114; questo indica del dal 00 72 in poi ci sono 114 coppie di dati. 2. Il 00 6A indica la distanza che intercorre tra questo dato e dallo 00 72, SOLO in questo caso i dati che ci sono tra i due controlli di lunghezza non vanno presi a coppie ma singolarmente, quindi 0000002F in questo caso avr lunghezza 8 e non 4 come prima. Verifichiamo il tutto: 00 72 convertito in decimale uguale a 114 00 6A convertito in decimale uguale a 106 Quindi 114 106 uguale ad 8 che sono i caratteri che si trovano tra i due controlli. 3. Il 00 32 00 01 indica il seem che stiamo analizzando, in P2kSeem si scriverebbe 0032_0001 e determina larea di memoria in cui andremo a memorizzare il corpo dati. 4. Il 00 62 indica la lunghezza dei dati che seguono meno gli ultimi 2 byte dellultimo controllo di correttezza formale (checksum), questo costituisce la lunghezza del nostro corpo dati. 5. D2 EEE0 01 il corpo dati della nostra seem ed ha lunghezza 98 coppie di dati, che in esadecimale uguale a 62, quindi 00 62. 6. Il 33 4A lultimo controllo che presentano le seem e si calcola sommando il valore di tutte le coppie di dati presenti dal AA B0 in poi, quindi partendo dal 30 00 00 72 fino ad arrivare al E0 01. Questo significa che ogni volta che modifichiamo un valore dovremmo andare a ricalcolare anche gli ultimi due byte della nostra seem.

Le seem non vanno tutte analizzate allo stesso modo, questo che significa? Significa che alcune seem permettono di abilitare/disabilitare determinate funzioni, come la seem 0032_0001, mentre altre seem contengono delle "scritte" tipo la seem 01A8_0001 del GPRS oppure le seem 0206_0001 ... 0208_0001!! Questo davanti a quali problemi ci pone? 1. Le seem con le "scritte" vanno studiate mediante una tabella ASCII che ci permette di trasformare in LETTERE i caratteri ESADECIMALI (HEX) della seem. 2. Le seem di abilitazione/disabilitazione invece vanno studiate diversamente poich i caratteri esadecimali che contengono non vanno tradotti in caratteri normali dell'alfabeto ma bens in codice binario (lo potete tranquillamente fare con la calcolatrice di windows). Come gi detto i dati delle seem vanno presi a coppie quindi ad esempio il primo dato del CORPO DATI va tradotto con la calcolatrice in binario! Esempio: corpo dati: D2EE88BEFEFFFFFF83FDFF6C VA ANALIZZATO A COPPIE, quindi: D2 EE 88 BE FE FF FF FF 83 FD FF 6C OGNI COPPIA VA TRADOTTA IN BINARIO: quindi D2 diventa 11010010 dove il primo carattere il bit 7, il secondo il bit 6...fino all'ultimo carattere che il bit 0! Perch da 0 a 7 ? Perch questa informatica ed in informatica 8 bit formano 1 Byte (7,6,5,4,3,2,1,0 sono OTTO) Ora abbiamo che ognuno di quei bit pu abilitare/disabilitare una funzione nel nostro cellulare!

Esempio: La funzione "Tutte le chiamate" si attiva ponendo ad 1 il bit 0 del 32 dato del nostro corpo dati! Quindi vi posto la parte che ci interessa del corpo dati: Codice: D2 EE 88 BE FE FF FF FF 83 FD FF 6C 01 F0 71 60 00 00 00 03 6E 94 A0 CC Quello evidenziato il dato che ci interessa! Convertiamo quel dato in binario: 6E in binario uguale a 01101110 Ora se vogliamo abilitare il menu "Tutte le chiamate" dobbiamo mettere ad uno il bit 0 di 01101110 quindi la sequenza di bit diventerebbe: 01101111 che in esadecimane (HEX) uguale a 6F !

Cosa abbiamo ottenuto? Abbiamo attivato la funzione "Tutte le chiamate" senza alterare le altre funzioni che poterbbero esserci sullo stesso dato...e credetemi che ci sono...ad esempio c' la funzione "Selezione Rapida" Questa la teoria necessaria da sapere sulle Flex e sulle Seem.

Guida a cura di LeaderGL

Potrebbero piacerti anche