Jump to content
Nokioteca Forum

Reversing Del Firmware + Sorgenti


Recommended Posts

Lo scopo di questo thread e' quello di raccogliere informazioni sul formato del firmware.

Purtroppo, diversi campi sono ancora sconosciuti, a questo proposito, se c'e' qualcuno pratico di reversing che ha voglia di contribuire, qui c'e' lo stato attuale... :thumbdown:

In allegato ci sono i sorgenti del "BB5 Extractor by HEX" di cui ho fatto il porting in .NET C#

Il codice presente in questi sorgenti riesce a navigare correttamente attraverso la catena di pacchetti 0x5d and 0x54 dei vari firmware...

******** HEADER *********
B2 = Signature
002C1FBA = Data Size (little-endian)
0000000E = Tot.Blocks?
...Unknown...



******** Data Block *********
5D = Data Block
01 = UnknConst01
27 = Data 		(17 = BinData 	2E = Signed BinData	27 = Data	28 = Signed Data)
01 = FullHeaderSize
0001020304050607080A0B0C0D0E0F = Hash?
01020304 = HashCRC?
String[12] = DataDescription
00 = ProcessorType
0102 = Unkn
0304 = ContentCRC
00000400 = Data Size
01020304 = Location
01 = MaybeCRC?
....Content....



******** Signed Data Block *********
5D = Data Block
01 = UnknConst01
28 = Signed Data	(17 = BinData 	2E = Signed BinData	27 = Data	28 = Signed Data)
01 = FullHeaderSize
0001020304050607080A0B0C0D0E0F = Hash?
01020304 = HashCRC?
String[12] = DataDescription
00 = ProcessorType
0102 = Unkn
0304 = ContentCRC
00000400 = Data Size
01020304 = Location
0001020304050607080A0B0C0D0E0F = Unkn
01 = MaybeCRC?
....Content....



******** Code Block *********
54 = Code Block
01 = UnknConst01
17 = BinData		(17 = BinData 	2E = Signed BinData	27 = Data	28 = Signed Data)
01 = FullHeaderSize
01 = ProcessorType
0102 = Unkn		
0102 = ContentCRC
01 = UnknConst01
01020304 = Data Size
01020304 = Location
01 = MaybeCRC?
....Content....


******** Signed BinData Block *********
54 = Code Block
01 = UnknConst01
2E = Signed BinData	(17 = BinData 	2E = Signed BinData	27 = Data	28 = Signed Data)
01 = FullHeaderSize
0102 = Unkn
0102 = ContentCRC
01020304050607080A0B0C = Unkn
00000400 = Data Size
01020304 = Location
01 = MaybeCRC?
....Content....

Ora sto cercando di capire come fare per concatenare tra di loro i vari pacchetti di dati e suddividerli in files...

Ad esempio, processando il file "RM-356_40.0.005_prd.core.C00" all'offset 0x02760FC1 c'e' un pacchetto 0x54 che contiene 0x40000 bytes di dati...

ma questi 0x40000 bytes di dati dovrebbero essere splittati su 2 files differenti... la prima parte in un file e la seconda parte rappresenta invece l'inizio del file rofs.img

Il problema e' che non ho ancora trovato alcuna informazione utile per consentire lo split corretto di questi dati.

Un'altra cosa che sto cercando di capire e' come e' calcolato il campo "ContentCRC".

Il suo valore e' calcolato sui dati presenti nel pacchetto, ma la domanda e' come?

Ho notato che, nel caso in cui i dati siano composti da tutti zero il CRC = 0 e stessa cosa nel caso in cui i dati siano composti da tutti 0xFF

La prossima cosa che voglio verificare e' se, piu' in generale, il CRC = 0 nel caso in cui i dati siano composti dallo stesso valore ripetuto...

BB5_Extractor.zip

FwExplorer.zip

Modificato da Il.Socio
  • Mi Piace 1
Link to comment
Condividi su altri siti

non so se ti è utile, ma prima ho provato a estrarre i 3 file più grandi con nokiaeditor del f/w RM409 (5320)

ed ho notato una cosa....

dal file rm409_05.16_prd_core.fpsx di 74.526.152 bytes ho ottenuto un .img di 19.485.696 bytes

dal file rm409_05.16_prd_v01_01_euro1.fpsx di 27.307.684 bytes ho ottenuto un .img di 27.299.328 bytes

dal file rm409_05.16_prd_v01_05_UDA_PRD.fpsx di 71.642.498 bytes ho ottenuto un .img di 71.632.105 bytes

ciò significa che l'unico problema per modificare la rom è il file core, quello con più dati.

quindi so potrebbero tranquillamente modificare gli ultimi 2 con successo? o ci sono problemi anche in quelli?

EDIT:

l'img di rm409_05.16_prd_v01_05_UDA_PRD.fpsx non riesco ad aprirla, l'unica opzione è il 2° file

Modificato da Alokin
Link to comment
Condividi su altri siti

  • 2 settimane dopo...
Il formato del file e' sempre quello...

Non vedo nessun impedimento per la modifica dei s60 v3.

Se domani trovo un po' di tempo faccio una prova sul mio N95...

Ottimo! io ho provato a usare la modalità predefinita (quella per 5530, 5800, N97, N86) ma esce un messaggio di errore che dice:

'$' is not a valid integer value

Se ti può essere d'aiuto io sono riuscito a estrarre i files con Nokia Editor v6 così:

1) selezionando la modalità per N96 (dove tuttavia è specificato che riesce a prendere solo quelli in ROFS)

2) dal menu Open ho messo come tipi di file "ALL" e poi ho selezionato il file RM-159_35.0.002_PR.C0R

3) ha estratto i files nella cartella rofs2 nella root di NokiaEditor

4) ho provato a reimpacchettarli e sembra andare tutto a buon fine a parte un cambio di dimensione del file da 72382 KB a 72009 KB

Opening file.....
Creating headers for repack.....
File: C:\Program Files\Nokia\Phoenix\Products\RM-159\RM-159_35.0.002_PR.C0R

Fixing file.....
File fixed - removed 354 headers
rofs2.img created.....
Extracting rofs2.img.....
Please Wait.....
****************************************************************
rofs2.img extracted to rofs2 folder, edit files in rofs2 folder and then click Repack
****************************************************************
Creating obey file.....
Done.....
Rebuilding rofs image.....
Please wait.....
Done....
Rebuilding rofs2.....
Please wait.....
****************************************************************
Done.....Done.....Done.....
****************************************************************
REB-RM-159_35.0.002_PR.C0R file created in program folder, remove REB- from name and copy to product folder
****************************************************************

Dando al tuo programma il file RM-159_35.0.002_PR.C0R mi crea dentro a c:\tmp_bb5 i seguenti files:

0_code.bin 1 kb

5_code.bin 17 kb

15_code.bin 1 kb

30_code.bin 205 kb

35_code.bin 1.413 kb

40_code.bin 3.884 kb

42_code.bin 35 kb

46_code.bin 4 kb

48_code.bin 1 kb

52_code.bin 2 kb

54_code.bin 36 kb

60_code.bin 1.456 kb

62_code.bin 41.484 kb

64_code.bin 23.312 kb

header.bin 1 kb

I test con Nokia Editor V6 continuano...ho riscontrato che facendo Extract, Repack e poi ancora Extract del suddetto file poi la dimensione rimane sempre 72014 KB...

in più la dicitura (ONLY ROFS2!!!) della modalità N96 non mi è chiara dato che su un altro forum ho trovato questa frase:

"...tenendo presente che mettendo in rofs2 (e relative sotto cartelle) qualsiasi file, tramite flash, esso andrà in Z:\percorso_impostato _in_rofs2..."

Comunque, ho trovato la spiegazione a questo cambiamento di dimensione...l'attuale versione di Nokia Editor non usa gli headers adatti per il repack del file C0R, i creatori del programma ci stanno lavorando...

Modificato da Bl@ckJ@ck4IT
Link to comment
Condividi su altri siti

io sono riuscito a fare piu o meno la stessa cosa ma utilizzando il file rofs2 non il core.....ed utilizzando la modalità predefinita, non quella per n96

reimpacchettando tutto l'originale, ho ottenuto una variazione di dimensioni nulla

sembra che modifichi bene anche i rofs2 v3

unnico problema....non ho ne tempo ne voglia di testare in questi giorni....è praticamente un format -.-

Modificato da Il.Socio
non quotare km di post :)
Link to comment
Condividi su altri siti

Ho dedicato un po' di tempo a smanettare ed ho creato un cooked per 3rd edition, compatibile sia con JAF che con Phoenix... :rolleyes:

Io l'ho creato per N95, ma la stessa procedura dovrebbe funzionare su tutti quanti i cell, sia 3rd che 5th.

Sino ad ora mi sono limitato a modificare la uda e adesso, vorrei provare a modificare la rofs e in linea di principio, dovrebbe andare liscio senza problemi.

Nel frattempo, se c'e' qualche temerario che vuole provare a flashare una cooked rom sul suo cell. 3rd, si faccia avanti, che cosi' verifichiamo che la modifica della uda funzioni regolarmente anche sugli altri modelli :)

EDIT:

Se non mi stufo prima, forse ne uscira' un veloce programmino per realizzare cooked roms...

Modificato da Il.Socio
Link to comment
Condividi su altri siti

Veramente, sino ad ora, ho avuto modo di testarlo esclusivamente per il mio N95.

Quindi non puo' essere appurato che funzioni su 5th edition...

Forse ti confondi con il NokiaEditor: https://www.nokioteca.net/home/forum/index....howtopic=173275 (che, ad ogni modo, in certi casi brikka il cell)

Link to comment
Condividi su altri siti

comunque socio prova a scrivere qui il procedimento (se non è troppo complesso) magari qualcuno potrà provarci... (tanto se scrivi tutto qui probabilmente ci proverò anche io :) )

Ora come ora, non e' possibile per voi riprodurlo...

L'ho fatto partendo dal codice che e' stato postato qui in questo thread, piu' altro codice che ho realizzato in questi giorni ed altri scrippettini che mi sono serviti per fare gli arrangiamenti necessari...

In sostanza, per adesso, il cooked firmware mi tocca realizzarlo in maniera manuale con un po' di paciocchi.

L'idea e' quella di verificare se questo procedimento puo' essere applicato a tutti quanti i modelli: vale a dire che posso mettermi li e con un po' di pazienza creare "a manina" qualche cooked a scopo di prova.

Quello che mi serve e' qualche volontario che sia disposto a flashare il firmware e verificare che il flashing vada a buon fine, senza intoppi (con JAF, Phoenix o altro)

In genere, non mi aspetto nessuna sorpresa, ma non si sa mai...

In ogni caso, sono pressoche' certo che il risultato finale sia migliore di quello generato dal NokiaEditor, quindi, chi ha gia' "azzardato" tramite NokiaEditor, puo' andare solo a migliorare.

Nel caso in cui dovessimo verificare che la cosa funziona anche per gli altri modelli, allora spendero' del tempo per automatizzare il tutto, viceversa, nel caso in cui non dovesse essere valido per gli altri modelli, non perdero' tempo per automatizzare il procedimento.

@Alle,

essendo la fase di creazione del fw ancora abbastanza laboriosa, preferisco dare la precedenza a quei modelli ancora privi di hack:

https://www.nokioteca.net/home/forum/index....howtopic=140298

oppure ai modelli 3rd edition, che al momento non possono essere modificati.

Ad ogni modo, grazie per l'offerta e se nessuno si fara' avanti, vorra' dire che lo proveremo sul 5800... ;)

Modificato da Il.Socio
Link to comment
Condividi su altri siti

aaah ho capito, scusa il.socio!

si mi ero confuso con nokia editor, in effetti brikka facilmente il tel... per esembio mi è bastato cambiare un file con un hex editor... diciamo che tu stai cercando di creare un programma simile che non vada a cercare gli headers dei file... bensì gli indici con gli inizi e le fini dei file contenuti nel rofs eccetera..? giusto?

e ci sei riuscito? se questo fosse possibile "automaticamente" potresti sbloccare anche il c00 e tutti i files presumo!

sei un grande davvero!

Link to comment
Condividi su altri siti

Please sign in to comment

You will be able to leave a comment after signing in



Accedi Ora
 Share

×
×
  • Crea Nuovo...

Informazione Importante

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy