Jump to content
Nokioteca Forum

95A31

Utente
  • Contenuti

    133
  • Data iscrizione

  • Ultimo accesso

Messaggi pubblicati da 95A31

  1. [...]

    Nell'ipotesi nata tra me e 95A31 sarebbe possibile sovrascrivere indirizzi di memoria di applicazioni che non usiamo?

    Tipo "Info Prodotto" per esempio, sfido io a trovare qualcuno che lo trovi utile :thumbs: in pratica, mettiamo caso che Info Prodotto vada dall'indirizzo 80000800 a 80000888 abbiamo 00000088 spazio dove sovrascrivere le funzioni che hanno tolto a gfxtransadapter.

    [...]

    Sto seriemente pensando di fare ciò.. Ora sto vedendo cosa andare a sovrascrivere.

    - Music Store è troppo piccolo.

    - Info Prodotto è al limitie ma mi concentro su quello.

    Se lo spazio non dovesse bastarmi penso si sovrascrivere MusicShopApp.exe e relative dll.

    Sapete a che applicazione corrisponde MusicShopApp.exe ? Come si può raggiugere tramite UI? E' utille? Posso sovrascrivere tranquillamente?

    Ora vedo di modificare lo Staticfeatures.dll del FW 30 in modo da nn avere un file "vecchio" rispetto al firmware.

  2. Sto cercando di creare il famoso programma che carica in ram le dll perse nell'aggiornamento :wub: ...

    Ipotesi: non potremmo sovrascrivere quei settori della rom che non usiamo? tipo, a me il Music Store fa solo polvere...se potessimo sovrascrivere quella porzione di indirizzi di memoria, tanto penso che pochi o nessuno usino quell'applicazione..

    Buona fortuna x i programma :lol: ( Io purtroppo non posso aiutarti in questo campo).

    Si si potrebbe :wub:. Però da soli è un po come buttarsi dal 2° piano e sperare di rimaner vivi.. Alex_N70,Il.Socio voi che dite?

  3. [...]

    l'idea è buona, ho già un po' di documentazione sull'intercettazione degli eventi di sistema (popup, listbox ecc.) ma un mio amico mi ha fatto tornare coi piedi per terra perché è certo che un implementazione via software avrebbe delle prestazioni decisamente inferiori rispetto alle librerie già ottimizzate della ROM :D

    [...]

    [gfxtransadapter.dll] = da 6.550 a 0.628 (-5.922)

    In effetti un'implementazione via software risulterebbe lenta e pesante (visto che l'N95 non ha molta RAM) :lol:. Per ottimizzarla/implementarla ci si potrebbe ispirare alle librerie della ROM :lol:

    In ogni caso resta sempre la soluzione più realistica.

    Come hai notato il punto cruciale nel porting dei Kastor sta nel file gfxtransadapter.dll che differisce di molto da quelli nel FW 30/31. La soluzione della sovrascrittura di qualche altro file è improponibile xkè la quantità di dati che vengono scovrascritti sarebbe troppo grande e causerebbe instabilità nel sistema. Quindi resterebbe da trovare indirizzi di memoria ROM che non vengono utilizzati, piazzare li i dati mancanti e sperare che tutto funzioni. ;)

  4. [...]

    Non c'è modo di creare un HelloWorld2 che passa a Ewsrv.exe le librerie di kastor? avevo trovato un Rload tempo addietro ma non saprei come implementarlo..

    [...]

    E' una mia opinione però se lavori a così "alto livello" mi sa che nn risolverai molto :(

    Non voglio scoraggiare nessuno :) Anzi io ti sto sempre seguendo :) Continua così vedrai che prima o poi qualcosa salta fuori ;)

  5. 1) qualcuno di voi sa dirmi se i vari tfx*** risiedono in rom o nell'altro spazio di memoria? (in parole povere sapete già dirmi se devo studiarmi rompatcher o c2z4bin?)

    Studiati ROMPatcher, le funzioni che ti servirebbero di c2z4bin sono ottenibili anche con c2z.

    2) esplorando transitionserver.dll ho scovato che è lui a richiamare tfxserver.dll quindi è lui che viene richiamato prima di tutti gli altri :-)

    Buon punto di partenza :thumbs:

    3) le dipendenze del fw31 come faccio a ricavarle?

    Dovrebbero essere simili a quelle del 30.

    4) resto in attesa del dump di tutta la memoria c: di un n95 prima di attivare gli effetti e dopo averli attivati

    Non credo ti sia utile allo scopo.

    5) gfxtrans e gfxtransadapter hanno due uid esattamente precedenti al magic value che stai cercando Il.Socio

    Avevo gia notato a suo tempo questo particolare.

  6. [...]

    Quello a cui sto pensando è un piccolo programmino scritto in Symbian che carica in ram tfxserver.dll, stay tuned ;)

    [...]

    Oltre che caricarlo in RAM devi anche modificarlo in modo da renderlo compatibile con il resto del sistema.

    Le funzioni delle dll infatti sono richimate tramite il loro indirizzo in memoria e non tramite il loro ordinale, quindi devi aggiornare sia gli indirizzi delle funzioni che chaimano la dll, sia gli indirizzi delle funzioni che richiama la dll.

    [...]

    un firmware predisposto per kastor in uno che non lo è più completamente (si ci sono ancora dei richiami ma molta roba è stata tolta)

    [...]

    Si molta "roba" è stata tolta basta semplicemente confrontare la dimensione dei file per averne conferma.

    Ovviamente lo spazio non è infinito ed è quasi tutto occupato dai file di sistema del symbian. Quindi se vuoi ripristinare le funzioni mancanti devi: o sovrascriverle a qualcosa, o infilarle in qualche buco vuoto della memoria (ammesso che ci siano e che siano abbastanza capienti)

  7. grazie :lol: allora vi siete arresi? o state ancora provando? :lol:

    Non sono il portavoce di nessuno, ma per quanto mi riguarda il progetto è fermo (non morto :thumbs: ) .

    Per chi non avesse chiara la situazione, non sappiamo se l'errore sia dovuto in particolare all'assenza di _MagicValue, quello che si sà è che esso è necessario per abilitare i Kastor. Purtroppo non capiamo da dove salti fuori questo _MagicValue, l'ipotesi (a mio parere più verosimile) è che sia una "parte" del gfxtransadapter.dll del FW 21, che negli altri FW non c'è. Purtoppo a causa della natura con cui è memorizzato e gestito il FW nella memoria del cell, risulta (praticamente, non teoricamente) impossibile aggiungere tale/i parti necessaria/e la funzionamento del Kastor.

    Insomma non ci siamo arresi nel capire quale fosse il problema, ci siamo arresi perchè ci risulta impossibile risolverlo.

    A mio parere non rimane che:

    - Aspettare un agg. del FW da parte della Nokia

    - Aspettare qualche tool miracoloso dellla scena dell'hacking

    - Aspettare un mircaolo da qualche utente mostruosamente intelligente e con una valanga di tempo da perderci sopra

    P.S.: Il.Socio correggimi se ho detto qualche stupidaggine :doh:

  8. Sai cosa, dovremmo riuscire a capire in modo più approfondito Perché esce quel -1 nel senso...COSA effettivamente non trova, se un file o una chiamata a una dll perché -1 = Unable to find the specified object..sto cercando nella rete ma al momento vi sono solo richiami alla Extended Panic Error (la cartella ErrRd)..insomma io uso spesso il Java ma per intenderci una sorta di CATCH EXCEPTION che restituisca più precisamente l'errore generato.

    Per capire cosa non trova bisogna analizzare le istruzi assembly del processore.

    Da analisi precedenti si è giunti a questo punto morto:

    [...]

    Da una analisi del file psln.exe decompilato, si e' notato che la comparsa del menu' "Effetti" e' strettamente legata alla feature num. 0x666, valore che e' presente nel file staticfeatures.dll del fw21 ma che non e' presente nello staticfeatures.dll del fw30

    Utilizzando questo pacchetto, la voce "Effetti" torna visibile:

    sys\bin\staticfeatures.dll <-- file proveniente da FW21 in cui e' presente la feature 0x666

    sys\hash\staticfeatures.dll <-- hash sha-1 calcolato sul file sys\bin\staticfeatures.dll

    Purtroppo pero', manca ancora qualche "pezzo" perche' nonostante c2z.rmp ed KastorUI.rmp quando si seleziona "attiva" compare un errore -1 (KErrNotFound).

    Per vedere l'errore e' necessario creare la directory c:\Resource\ErrRd\

    Quando si seleziona "Effetti > Attiva" avvengono queste operazioni:

    Psln.exe richiama la funzione .pslnengine_41_SetEffects (di pslnengine.dll) per richiedere l'attivazione degli effetti.

    Questa funzione deve restituire R0 = 0

    A sua volta la .pslnengine_41_SetEffects richiama la GfxTransEffect_Enable (di gfxtrans.dll) per richiedere l'attivazione degli effetti.

    Questa funzione deve restituire R7 = 0

    Da quel che ho capito, dentro alla funzione GfxTransEffect_Enable all'indirizzo 0x8080576A viene fatta una call a 0x80805A7A che al momento restituisce un valore "errato".

    Dentro 0x80805A7A ho trovato il riferimento al UID 0x102822A6 (che nel decompilato ho indicato con _MagicValue)

    Pacioccando con RomPatcher ho potuto verificare che all'indirizzo 0x8080576A se invece di effettuare la call ci si limita ad piazzare 0 in R7, non viene segnalato nessun errore in fase di attivazione degli effetti... Tuttavia, la gestione degli effetti non si attiva ( perche' evidentemente quella call. a qualcosa serve :( )

    Credo che quella funzione 0x80805A7A si occupi di recuperare dal TLS (Thread Local Storage) l'istanza della classe dedicata alla gestione degli effetti (identificata con UID _MagicValue e contenuta sempre in gfxtrans.dll).

    (In riferimento all'esempio su wiki, KMyTlsHandle nel nostro caso vale _MagicValue)

    Dopo averne recuperato l'istanza, ne chiama qualche metodo in base ai parametri che sono stati passati alla funzione e restituisce il valore di ritorno.

    Se non si chiama questa funzione, non sara' richiamato neppure il metodo appropriato per l'attivazione degli effetti.

    [...]

    Buona Fortuna :D . Ti auguro di riuscire dove noi abbiamo abbandonato :thumbs:

  9. Forze nuove.. Fossero venute prima :) cmq:

    Ho cercato i files mancanti nel fw30 nel mio cel con fw 31.0.017 e ho notato che:

    ci sono...

    gfxtrans.dll e gfx.transadapter

    non ci sono...

    tfxserver.dll

    tfxserveranim.dll

    tfxserverclient.dll

    tfxsrvplugin.dll

    transitionserver.dll

    Questo lavoro di comparazione dei file è gia stato fatto per il FW 30 con risultati identici (Guarda 1° post)

    1) Si potrebbe creare una rompatch che aggiunge all'inizio o alla fine della libreria gfxtrans o gfxtransadapter la chiamata che carica le altre 5 librerie in memoria..

    2) Se calcolassimo gli hash dei file mancanti?

    EDIT: Ho calcolato gli hash ma non me li carica lo stesso...come hai fatto a fargli caricare staticfeatures.dll non essendo presente nella ROM?

    EDIT2: Ho aperto con un editor HEX il file 10281F7F.dll e in effetti TransitionServer è citato poco sopra alla fine del file...quindi è coinvolto...

    Il perchè non trova le funzioni di queste librerie è spiegato qua

    Il perchè non sia possibile patchare i file lo trovi qua.

  10. @Il.Socio

    Non importa idea stupida ed espressa male :D (Adesso mi stanno frullando in testa 25000 idee ma meglio tralasciare )

    Correggendo quello che ho detto, la mia speranza era che il programma riuscisse a vedere le dll non come dll ma come file che racchiude funzioni, ES:

    Il programmma carica xyz.dll, abc.dll (del tipo ROM) si accorge che hanno le seguenti funzioni:

    -abcfunz1

    -abcfunz2

    -abcfunz3

    -xyzfunz1

    -xyzfunz2

    -xyzfunz3

    ora, lancia la dll che fa partire tutto il processo, quando c'è una chiamata ad una funzione (tramite indirizzo) il programma tramite un algoritmo o una tabella riesce a capire a quale funzione si riferiche quell'indirizzo e la esegue. E' una rogna assurda fare un programma così quindi scartiamo subito quest'idea :lol:

    Ok altra idea più semplice è: Visto che le dll devono essere caricate "al volo" e l'unico processo che cambia tra transizioni attive e disattive è EwSrv (sperando che questo processo non debba leggere dalle dll), sovrascriviamo tutto con una patch, la teniamo attiva durante l'attivazione degli effetti e poi la disattiviamo (al massimo si dovrebbe piantare il cell :lol: credo... :unsure: )

    Ora basta xkè sto sparando troppe :ph34r: e dovresti fare tu tutto il lavoro (non che io abbia fatto qualcosa fino ad ora :sad02::rolleyes: ). Non reputo giusto sparare idee così alla :ph34r: e poi dare da fare a te tutto il lavoro.

  11. Da parte mia nessuna novità. Ho abbastanza tralasciato questo progetto, un pò xké non funziona niente di quello che faccio, un pò xké mi sto dedicando ad altro e un pò xké è quasi impossibile. @Il.Socio volevo chiederti se esiste un programma in grado di lanciare le dll "del tipo ROM" anche se si trovano in C:. La mia idea era quella di attivare gli effetti come "programma a parte" e non come "funzione del SO". I problemi di indirizzamento sono principalmente gli stessi, la mia speranza è quella che il programma riesca tramite un algoritmo o una tabella a far corrispondere ad ogni chiamata a indirizzo una chiamata al numerale, spero di aver reso l'idea. (Mi dispiace dirlo ma questo è il mio ultimo tentativo di portare avanti il progetto x i motivi sopracitati. Se in futuro si svilupperà qualcosa allora sarò ben contento di dare una mano <_<)

  12. una volta decompresso non e' difficile... lo modifichi con un editor hex e basta, non devi occuparti di ricomprimerlo perche' viene caricato anche cosi' senza problemi.

    Il problema e' che non credo si possa aggiungere agevolmente la feature 666 perche' si rischia di sballare i riferimenti alle localizioni presenti nell'eseguibile... I riferimenti sono infatti relativi e non assoluti, in un jump viene specificato l'offset rispetto alla locazione corrente e se si aggiunge dati, bisognera' aggiornare quell'offset. (se non e' chiaro posso provare a spiegarlo in altra maniera...)

    Per evitare di sballare i riferimenti, bisogna rimpiazzare un'altra feature con la 666... ma quale? Non sappiamo a quali features corrispondono gli altri identificativi...

    È quello il problema. Purtroppo se aggiungo il valore 0x666 da li in poi la dll è tutta sballata e ida non riesce ad interpretarla. X il discorso del jump non ci avevo pensato, appena posso fixo e vedo cosa salta fuori (Cmq buona Pasqua)

  13. Vedi valori diversi perche' quel tipo di eseguibili e' compresso... IDA lo decomprime e ti mostra il suo codice arm, pero' nel binario originale, e' in forma compressa...

    Per decomprimerlo ed avere gli stessi dati presentati da IDA devi usare il comando petran contenuto nell'sdk s60.

    es:

    c:\>petran -nocompress staticfeature.dll staticfeature_plain.dll

    Ottimo grazie. Cmq Sono riuscito a mettere lo 0x666 nel file tramite IDA il problema è che non mi salva il file ma il database, e il diff non lo vuole fare :whistle:

    EDIT: Purtoppo mi restituisce questi errori:

    ERROR: File does not have valid DOS MZ signature.

    ERROR: File does not have valid NT PE signature.

    ERROR: Invalid NT header.

  14. Sapete se esite un programma simile a DumpROM ma che fa il dump di C: ? (Anche se le dll non presenti in rom vengono richiamate in modo diverso spero che una volta richiamato l'indirizzo della funzione lavorino in modo uguale) Più precisamente mi serve sapere come il sistema vede C:, se a indirizzi come Z: (saremo più o meno apposto) oppure no.

    Ora come ora sto cercando tutte le "scappatoie" che mi vengono in mente per evitare di fare quel lavoro abbastanza complicato di 52000 patch :D

  15. credo siano pochi quelli che sanno "programmare" in ARM.. visto che non è un linguaggio di programmazione..

    è come trovar gente che sappia programmare in binario :D

    beh.. il mio ex professore programmava i primi pc forando le schede..

    con un trapano e il cell di 95A31 potremmo tentare :D

    Non programmo in ARM, ma in assembly che è un linguaggio di programmazione (a basso livello ma lo è :D ) Apparte ciò, non so se la cosa che ho in mente, come la ho in mente , possa funzionare (ma tentare non nuoce... ) b)b) La priorità cmq resta chiudere quel b) di giro :rolleyes:

    Piuttosto di provare con il trapano, preferisco provare a far andare gli effetti staccando il chip della rom con FW 30 per poi stagnarne uno con FW 21 a mano b)

×
×
  • 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