Jump to content
Nokioteca Forum

Guida Completa Alla Creazione Di Patch Per Rompatcher


Alex_N70
 Share

Recommended Posts

i file cre sono una sorta di backup dei file txt. quindi spesso non vengono prese le modifiche perche sono letti i cre

a me quello che mi dici mi pare strano. cmq sia la cache la puoi svuotare dal browser.

sinceramente per fare quello che dici tu non so se sia possibile, ma per saperlo con precisione ti conviene aspettare un parere piu autorevole del mio :)

Link to comment
Condividi su altri siti

ciao a voi del forum, io mi son messo al lavoro per creare una patch per far si che la cache sia in E, ho modificato il txt che da questo comando attraverso una patch ma non funziona, questo è quello che ho scritto nella patch

rel:private\10202be9\101F8557.txt:00000814:43:45

rel:private\10202be9\101F8557.txt:00000838:43:45

rel:private\10202be9\101F8557.txt:0000085C:43:45

Quel file si trova in ROM o in ROFS?

Perche' se non si trova in ROM, non lo puoi patchare con RP+

https://www.nokioteca.net/home/forum/index.php/topic/150394-capire-se-un-file-si-trova-in-rom-oppure-no

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

no, stai facendo confusione.

il byte è semplicemente un insieme di 8 bit.

la stringa 11111111 rappresenta 1 byte

la stringa 10100110 è anche essa 1 byte

le singole cifre che compongono quelle stringhe si chiamano bit.

8 bit= 1 byte

l'hex è un tipo di rappresentazione dei byte

quegli 8 bit o quel byte rappresenta una informazione.

se volessimo rappresentare questa informazione (sequenza di bit) in decimale otterremmo il valore 255

mentre volessimo rappresentare questa informazione (sequenza di bit) in esadecimale otterremmo il valore FF

dal primo post:

Tutti i file dei PC e dei cellulari sono fatti da una sequenza di byte, cioè gruppi di 8 bit, ciascuno dei quali può valere 1 o 0. Secondo l'aritemtica in base due, ogni byte può assumere 2x2x2x2x2x2x2x2=256 valori diversi indicati con i numeri da 0 a 255. Per rappresentarli si preferisce usare la notazione in base 16 (esadecimale) in cui 2 cifre (con valori da 0 a 9 e poi a=10, b=11,... f=15) rappresentano un byte.

Ad esempio un file composto da 4 byte che valgono (in ordine) 99, 105, 97 e 111, aperto in un editor esadecimale mostra i valori 63, 69, 61 e 6f

la sequenza dell'esempio 99, 105, 97 e 111 corrisponde in esadecimale ai valori 63, 69, 61 e 6f e cioè alla parola ciao

detto questo rompatcher funziona cosi: (dal primo post)

Per prima cosa chiariamo come funziona ROMPatcher: questo programma sostituisce una sequenza di byte (ad un certo indirizzo di memoria o in un file della ROM) con un'altra sequenza di byte delle stesse dimensioni.

quindi dovrebbe esserti chiaro l'esempio successivo

Un uso tipico di ROM Patcher è quello di trovare all'interno di un file .exe/.dll, il nome di un file situato in z:, e sostituire quella "z" con "c" o "e" per far leggere quel file da un'altro percorso (per esempio, un file modificato da noi )

quindi rp non fa altro che sostituire una sequenza di byte in modo tale da modificare l'informazione codificata da quella sequenza

prendendo l'esempio della parola ciao e apportando la modifica successiva all'esempio, potresti sostituire il byte della codifica di 63 (la lettera c) con il byte della codifica di 7A (la lettera z) ottenendo la seguenza 7A, 69, 61 e 6f corrispondente alla parola ziao :)

l'hex è solo un modo di rappresentare una sequenza di bit

rompatcher sostituisce una sequenza di byte (è ovvio che per fare questa sostituzione tu devi sapere cosa vai a sostituire e questo lo vedi tramite la rappresentazione hex dei byte che vai a modificare)

schematizzando le fasi sono

rappresento i dati in hex->individuo la sequenza hex che devo cambiare->creo la patch di rp->applico la patch di rp-> rp quindi sostituisce la sequenza di byte corrispondente alla rappresentazione hex che devo cambiare, con la nuova

rp agisce sui byte e tu manipoli/fai manipolare a rp le sequenze di byte tramite la loro rappresentazione hex

non so se sono stato chiaro :)

Modificato da Darkangel
Link to comment
Condividi su altri siti

  • 1 anno dopo...

Per completezza, esistono anche questi comandi aggiuntivi, che è possibile utilizzare in RP+

ord_rel

ord_snr

#ifdef

#ifndef

#else

#endif

#define

info

error

return

+superpage

ed è anche possibile utilizzare la wildcard ?? al posto di indicare il byte

Per maggiori informazioni, ed esempi d'uso, è possibile consultare i file contenuti nello zip ufficiale, dentro la cartella "For Patch-Makers\"

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

  • 1 mese dopo...

@Il.Socio voglio creare questa patch per il mio n97 mini, ovviamente il file keypad_exp.dll non si può decomprimere con petran perchè è in rom, ho provato a guardare il file non compresso ma qualsiasi patch applico non mi da nessun risultato, forse perchè il file è già in uso? o sbaglio qualcosa?

Link to comment
Condividi su altri siti

petran non serve a decompilare, ma solo a unpackare l'eseguibile.

per decompilarlo, devi usare IDA della hex-rays

probabilmente la patch che applichi non è compatibile con quel modello (o meglio con quel eseguibile)... dovresti replicare la stessa patch su n97 mini, usando IDA per osservare quali modifiche vengono apportate dalla patch e replicarle su n97 mini.

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

  • 4 settimane dopo...

Tramite alcune funzioni di sistema, è possibile prendere parti di rom e mapparle in ram, per renderne l'accesso piu' veloce.

RP+ sfrutta questo per poi andarne a modificare i byte.

A livello di OS, rom e rofs iniziano e terminano su indirizzi differenti e quelle funzioni che mappano delle parti in ram, operano solo sugli indirizzi che corrispondono a quelli della rom.

  • Mi Piace 2
Link to comment
Condividi su altri siti

scusate se intervengo, stai dicendo che se sono attive delle patch esse "consumano" ram?

Si, perchè quella porzione di rom viene presa, messa in ram, patchata e mantenuta li fintanto che non verrà rimossa la patch.

Ad ogni modo, è un consumo assolutamente trascurabile, infatti, ciascuna patch che viene applicata utilizza mediamente 1kb di ram...

Quindi tenendo applicate contemporaneamente 100 patch, si utilizzano complessivamente 100kb di ram.

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

Si, perchè quella porzione di rom viene presa, messa in ram, patchata e mantenuta li fintanto che non verrà rimossa la patch.

Ad ogni modo, è un consumo assolutamente trascurabile, infatti, ciascuna patch che viene applicata utilizza mediamente 1kb di ram...

Quindi tenendo applicate contemporaneamente 100 patch, si utilizzano complessivamente 100kb di ram.

Ma non si potrebbe esplorare la memoria fino a trovare i file caricati in ram così da poter patchare anche i file della rofs?

Link to comment
Condividi su altri siti

Ma non si potrebbe esplorare la memoria fino a trovare i file caricati in ram così da poter patchare anche i file della rofs?

se possibile é un'idea grandiosa, ma la vedo difficile...andrea credi che é possibile questa cosa? Mi piacerebbe collaborare al progetto...

Link to comment
Condividi su altri siti

Io non conosco Symbian e l'ARM a tal punto da dirti fin dove un' applicazione può spingersi a leggere in ram senza scontrarsi con blocchi imposti da Symbian e dal processore stesso.

Questo Marco però penso lo sappia, giusto?

Potrebbe anche essere che Symbian abbia delle API tramite le quali un' app può chiedere al SO di leggere e scrivere al suo posto. (Windows le ha).

In qusto caso si potrebbe fare, ma io non ho motivo di studiare API di questo tipo su un SO ormai morto per fare cose che già si fanno con i cfw o anche con la patch c2z4bin.

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

Io non conosco Symbian e l'ARM a tal punto da dirti fin dove un' applicazione può spingersi a leggere in ram senza scontrarsi con blocchi imposti da Symbian e dal processore stesso.

Questo Marco però penso lo sappia, giusto?

Su Symbian, RP+ puo' leggere e scrivere qualsiasi area della ram, senza nessun problema...

Ma il problema principale è che la cosa ti permetterebbe di patchare esclusivamente gli eseguibili che sono già stati caricati in ram (e stanno già girando)... un eseguibile che non è attualmente in esecuzione, non verrebbe patchato.

Invece, bisognerebbe intervenire nel momento in cui il sistema carica un eseguibile in ram, cosi' da patcharlo quando viene caricato in ram e prima che venga eseguito (ma non so se esista un modo per farlo)

In ambiente windows, come realizzeresti quello che proponi?

Modificato da Il.Socio
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