Il.Socio Pubblicato: 29 Marzo 2009 Segnalazione Share Pubblicato: 29 Marzo 2009 (modificato) Ho pensato di creare questo thread dedicato allo studio ed alla ricerca di un modo per poter attivare gli effetti Kastor su N95 fw30. La base di partenza e' il lavoro fatto da Alex su N95 fw20 e fw21 Il primo post di questo thread sara' aggiornato di volta in volta per includere in un unico punto l'attuale stato di avanzamento delle ricerche, cosi' sara' sempre possibile stare al passo con gli attuali progressi, trascurando completamente il caos che verra' a crearsi all'interno del thread... Preciso che il seguente, non e' esclusivamente frutto del mio lavoro, ma di tutti coloro che si sono adoperati per fornire dump, files, tests, analisi ed informazioni varie. Alla chiusura di tutto, tireremo giu' i dovuti credits... - Stato Aggiornato il 5 / Agosto Info Generali e Files Utili Qui ci sono i files contenenti gli indirizzi delle varie funzioni importate / esportate per ciascun eseguibile della rom. Indirizzi FW21 Indirizzi FW30 A differenza dei files .idc in cui gli indirizzi sono stati leggermente modificati per far contento IDA, questi sono nudi e crudi cosi' per come sono in rom, quindi possono essere usati per effettuare il remapping delle funzioni nel porting di un eseguibile da un FW ad un'altro. Remap: Questo e' un programma che puo' tornare utile per effettuare il remapping delle funzioni e basa il suo funzionamento sugli archivi appena citati. Qui c'e' un confronto Compare.txt tra i files presenti nel FW21 con quelli presenti nel FW30. Da notare l'assenza dei seguenti files nel FW30 sys\bin\tfxlistbox.dll sys\bin\tfxserver.dll sys\bin\tfxserveranim.dll sys\bin\tfxserverclient.dll sys\bin\TfxSrvPlugin.dll sys\bin\transitionserver.dll Aprendo un eseguibile con IDA, ci si ritrovera' di fronte ad un sacco di riferimenti "non risolti", per poter avere dei riferimenti significativi e' possibile utilizzare i files IDC allegati piu' in basso. I file .idc servono per risolvere i vari import/export presenti in un eseguibile nel rispettivo nome della funzione. E' sufficiente aprire con IDA l'eseguibile e poi aprire il rispettivo file .idc e tutti quanti gli import/export saranno risolti. I file .idc possono servire anche per analizzare le varie dipendenze. Aprendo un file .idc con blocco note, ad un certo punto si vedranno tre linee vuote, significa che quelle che seguono da li in poi sono le funzioni esportate dalla dll Una guida su architettura e istruzioni Assembly ARM visualizzate da IDA Una reference online per il set di istruzioni Assembly ARM Analisi FW30 Questo e' il database di IDA contenente i files psln.exe pslnengine.dll gfxtrans.dll gfxtransadapter.dll Qui ci sono i file .idc del FW30 Le locazioni che iniziano con il carattere "_" e con il carattere "." sono quelle che ho identificato come significative per lo scopo. 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 ) La funzione 0x80805A7A si occupa di recuperare dal TLS (Thread Local Storage) l'istanza singleton http://wiki.forum.nokia.com/index.php/Impl...s_in_Symbian_OS 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. Il costruttore presente all'indirizzo 0x808058BC si occupa della creazione dell'istanza relativa a _MagicValue e del suo inserimento nel TLS Qui c'e' la lista completa delle dipendenze dei vari eseguibili presenti nella rom. dependencies.zip Analisi FW21 File contenente il dump della rom Qui ci sono i file .idc del FW21 Il file staticfeatures.dll contiene il valore 0x666 necessario per la comparsa della voce di menu' "Effetti Tema" Nel FW21 sono state identificate queste dipendenze: TfxSrvPlugin.dll usa TransitionServer.dll TfxSrvPlugin.dll sembra essere caricata "al volo", da qualcuno, ma non si sa ancora da chi... - 10281F8D.DLL usa TfxListBox.dll 10281F8D.DLL sembra essere caricata "al volo", da qualcuno, ma non si sa ancora da chi... - TfxServerAnim.dll usa TfxServer.dll TfxServerAnim.dll usa TfxServerClient.dll TfxServerAnim.dll sembra essere caricata "al volo", da qualcuno, ma non si sa ancora da chi... - GfxTransAdapter.dll usa TfxServerClient.dll La relazione tra GfxTransAdapter.dll e GfxTrans.dll non mi e' ancora ben chiara. Presumo che GfxTransAdapter.dll implementi alcune funzioni definite in GfxTrans.dll - 10281F7F.DLL usa TfxServerClient.dll TfxServerAnim.dll sembra essere caricata "al volo", da qualcuno, ma non si sa ancora da chi... - Eikcoctl.dll usa GfxTrans.dll - Avkon.dll usa GfxTrans.dll - Logs.exe usa GfxTrans.dll - Phone.exe usa GfxTrans.dll - PhoneBook.exe usa GfxTrans.dll - PslnEngine.dll usa GfxTrans.dll - Qui c'e' la lista completa delle dipendenze dei vari eseguibili presenti nella rom. dependencies21.zip Log generato dal DumpROM Modificato 5 Agosto 2009 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 29 Marzo 2009 Autore Segnalazione Share Pubblicato: 29 Marzo 2009 (modificato) [Riservato per ampliamenti futuri] Modificato 29 Marzo 2009 da Il.Socio Link to comment Condividi su altri siti More sharing options...
kork Pubblicato: 29 Marzo 2009 Segnalazione Share Pubblicato: 29 Marzo 2009 Grandissimo il.Socio ci voleva prorpio un nuovo thread pulito! Io ho il FW30 quindi se vi serve qualcosa sono a vostra disposizione!! Speriamo che ci riusciamo a fare partorire questi effetti sul 30 Link to comment Condividi su altri siti More sharing options...
95A31 Pubblicato: 29 Marzo 2009 Segnalazione Share Pubblicato: 29 Marzo 2009 A tutti quelli che vogliono partecipare allo sviluppo: - Qui trovate una guida sulle istruzioni Assemby visualizzate da IDA Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 29 Marzo 2009 Autore Segnalazione Share Pubblicato: 29 Marzo 2009 Aggiunto! Ho anche aggiunto questo che puo' tornare comodo come reference per le varie istruzioni. http://www.keil.com/support/man/docs/armas...sm_cjafgdih.htm Link to comment Condividi su altri siti More sharing options...
95A31 Pubblicato: 29 Marzo 2009 Segnalazione Share Pubblicato: 29 Marzo 2009 Scusa se ti stresso per al 1000esima volta ma nn riesco capire da vove salta fuori qiell'UID che sia nel TLS o altro.. Mi puoi dire fulle le funzioni che esporta e importa il gfxtrans comprese quelledisistema? Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 29 Marzo 2009 Autore Segnalazione Share Pubblicato: 29 Marzo 2009 (modificato) Non e' un problema piu' gente ci mette mano, meglio e'... Le funzioni le trovi tutte elencate nel file gfxtrans.dll.idc Quelle dopo le tre linee vuote sono quelle esportate, quelle che si trovano prima sono quelle che vengono importate e che risiedono nelle altre dll... Questo e' quello del FW21: #define UNLOADED_FILE 1 #include <idc.idc> static main(void) { MakeCode(0X807F50B8); MakeName(0X807F50B8,"TPoint::operator__(TPoint_const&)_1023"); MakeCode(0X807F50C0); MakeName(0X807F50C0,"TPoint::operator__(TPoint_const&)_1025"); MakeCode(0X807F50C8); MakeName(0X807F50C8,"RRegion::Close()_1139"); MakeCode(0X807F50D0); MakeName(0X807F50D0,"RRegion::RRegion()_1146"); MakeCode(0X807F50D8); MakeName(0X807F50D8,"TRegion::Clear()_1184"); MakeCode(0X807F50E0); MakeName(0X807F50E0,"TRegion::AddRect(TRect_const&)_1188"); MakeCode(0X807F50E8); MakeName(0X807F50E8,"RArrayBase::At(int)_const_1507"); MakeCode(0X807F50F0); MakeName(0X807F50F0,"RArrayBase::Count()_const_1510"); MakeCode(0X807F50F8); MakeName(0X807F50F8,"RPointerArrayBase::At(int)_const_1590"); MakeCode(0X807F5100); MakeName(0X807F5100,"RPointerArrayBase::Find(void_const_)_const_1591"); MakeCode(0X807F5108); MakeName(0X807F5108,"RPointerArrayBase::Count()_const_1593"); MakeCode(0X807F5110); MakeName(0X807F5110,"TUid::operator__(TUid_const&)_const_1601"); MakeCode(0X807F5118); MakeName(0X807F5118,"TRect::Intersects(TRect_const&)_const_1646"); MakeCode(0X807F5120); MakeName(0X807F5120,"TRect::operator__(TRect_const&)_const_1655"); MakeCode(0X807F5128); MakeName(0X807F5128,"TSize::operator__(TSize_const&)_const_1657"); MakeCode(0X807F5130); MakeName(0X807F5130,"TSize::operator__(TSize_const&)_const_1660"); MakeCode(0X807F5138); MakeName(0X807F5138,"TPoint::operator_(TPoint_const&)_const_1749"); MakeCode(0X807F5140); MakeName(0X807F5140,"TRegion::operator[](int)_const_1833"); MakeCode(0X807F5148); MakeName(0X807F5148,"RBuf8::Close()_2014"); MakeCode(0X807F5150); MakeName(0X807F5150,"CleanupStack::Pop()_205"); MakeCode(0X807F5158); MakeName(0X807F5158,"User::MarkCleanupStack()_2060"); MakeCode(0X807F5160); MakeName(0X807F5160,"User::UnMarkCleanupStack(TTrapHandler_)_2061"); MakeCode(0X807F5168); MakeName(0X807F5168,"CleanupStack::PushL(TCleanupItem)_207"); MakeCode(0X807F5170); MakeName(0X807F5170,"XLeaveException::GetReason()_const_2082"); MakeCode(0X807F5178); MakeName(0X807F5178,"CBase::Extension_(unsigned_int__void_&__void_)_2123"); MakeCode(0X807F5180); MakeName(0X807F5180,"CBase::_CBase()_2125"); MakeCode(0X807F5188); MakeName(0X807F5188,"RArrayBase::Close()_46"); MakeCode(0X807F5190); MakeName(0X807F5190,"RArrayBase::Reset()_47"); MakeCode(0X807F5198); MakeName(0X807F5198,"RPointerArrayBase::Close()_470"); MakeCode(0X807F51A0); MakeName(0X807F51A0,"RPointerArrayBase::Reset()_471"); MakeCode(0X807F51A8); MakeName(0X807F51A8,"RPointerArrayBase::Append(void_const_)_472"); MakeCode(0X807F51B0); MakeName(0X807F51B0,"RPointerArrayBase::Remove(int)_474"); MakeCode(0X807F51B8); MakeName(0X807F51B8,"RArrayBase::Append(void_const_)_48"); MakeCode(0X807F51C0); MakeName(0X807F51C0,"RPointerArrayBase::RPointerArrayBase()_481"); MakeCode(0X807F51C8); MakeName(0X807F51C8,"RArrayBase::Remove(int)_50"); MakeCode(0X807F51D0); MakeName(0X807F51D0,"RArrayBase::RArrayBase(int)_55"); MakeCode(0X807F51D8); MakeName(0X807F51D8,"User::Panic(TDesC16_const&__int)_650"); MakeCode(0X807F51E0); MakeName(0X807F51E0,"User::AllocZ(int)_652"); MakeCode(0X807F51E8); MakeName(0X807F51E8,"User::AllocZL(int)_654"); MakeCode(0X807F51F0); MakeName(0X807F51F0,"User::Invariant()_669"); MakeCode(0X807F51F8); MakeName(0X807F51F8,"TRect::Intersection(TRect_const&)_822"); MakeCode(0X807F5200); MakeName(0X807F5200,"TRect::TRect(TPoint_const&__TSize_const&)_839"); MakeCode(0X807F5208); MakeName(0X807F5208,"TRect::TRect()_842"); MakeCode(0X807F5210); MakeName(0X807F5210,"CCoeEnv::FindStatic(TUid)_137"); MakeCode(0X807F5218); MakeName(0X807F5218,"CCoeEnv::Static(TUid)_181"); MakeCode(0X807F5220); MakeName(0X807F5220,"CCoeControl::OwnsWindow()_const_254"); MakeCode(0X807F5228); MakeName(0X807F5228,"CCoeControl::PositionRelativeToScreen()_const_273"); MakeCode(0X807F5230); MakeName(0X807F5230,"CCoeControl::Rect()_const_276"); MakeCode(0X807F5238); MakeName(0X807F5238,"CCoeControl::Size()_const_277"); MakeCode(0X807F5240); MakeName(0X807F5240,"CCoeControl::DrawNow()_const_280"); MakeCode(0X807F5248); MakeName(0X807F5248,"CCoeControl::Position()_const_286"); MakeCode(0X807F5250); MakeName(0X807F5250,"CCoeControl::IsVisible()_const_290"); MakeCode(0X807F5258); MakeName(0X807F5258,"CCoeStatic::CCoeStatic(TUid__int__CCoeStatic::TScope)_3"); MakeCode(0X807F5260); MakeName(0X807F5260,"CCoeControl::Parent()_const_457"); MakeCode(0X807F5268); MakeName(0X807F5268,"CCoeControl::SetCustomGc(CWindowGc_)_470"); MakeCode(0X807F5270); MakeName(0X807F5270,"CCoeControl::DrawBackground(TRect_const&)_const_471"); MakeCode(0X807F5278); MakeName(0X807F5278,"CCoeControl::DrawForeground(TRect_const&)_const_472"); MakeCode(0X807F5280); MakeName(0X807F5280,"CCoeControl::Background()_const_481"); MakeCode(0X807F5288); MakeName(0X807F5288,"CCoeControl::CustomGc()_const_619"); MakeCode(0X807F5290); MakeName(0X807F5290,"CCoeControl::DrawNow(TRect_const&)_const_620"); MakeCode(0X807F5298); MakeName(0X807F5298,"CCoeStatic::CCoeStatic_Reserved1()_634"); MakeCode(0X807F52A0); MakeName(0X807F52A0,"CCoeStatic::CCoeStatic_Reserved2()_635"); MakeCode(0X807F52A8); MakeName(0X807F52A8,"CCoeStatic::_CCoeStatic()_7"); MakeCode(0X807F52B0); MakeName(0X807F52B0,"RWsGraphicMsgBuf::RWsGraphicMsgBuf()_539"); MakeCode(0X807F52B8); MakeName(0X807F52B8,"CRemoteGc::NewL(CWsScreenDevice_)_10"); MakeCode(0X807F52C0); MakeName(0X807F52C0,"CRemoteGc::EndDraw()_14"); MakeCode(0X807F52C8); MakeName(0X807F52C8,"CRemoteGc::BeginDraw(TRect_const&)_15"); MakeCode(0X807F52D0); MakeName(0X807F52D0,"CRemoteGc::ExternalizeL(RWsGraphicMsgBuf&__int)_7"); MakeCode(0X807F52D8); MakeName(0X807F52D8,"CRemoteGc::ResetCommandBuffer()_8"); MakeCode(0X807F52E0); MakeName(0X807F52E0,"CRemoteGc::SetCommandBufferObserver(MCommandBufferObserver_)_9"); MakeCode(0X807F52E8); MakeName(0X807F52E8,"MGfxTransAdapter::CreateL(MGfxTransClient_)_1"); MakeCode(0X807F52F0); MakeName(0X807F52F0,"MGfxTransAdapter::Destroy(MGfxTransAdapter_)_2"); MakeCode(0X807F52F8); MakeName(0X807F52F8,"__aeabi_memclr_143"); MakeCode(0X807F5300); MakeName(0X807F5300,"__aeabi_unwind_cpp_pr0_158"); MakeCode(0X807F5308); MakeName(0X807F5308,"__cxa_begin_catch_180"); MakeCode(0X807F5310); MakeName(0X807F5310,"__cxa_call_unexpected_182"); MakeCode(0X807F5318); MakeName(0X807F5318,"__cxa_end_catch_183"); MakeCode(0X807F5320); MakeName(0X807F5320,"__cxa_end_cleanup_184"); MakeCode(0X807F5328); MakeName(0X807F5328,"operator_delete(void_)_3"); MakeCode(0X807F5330); MakeName(0X807F5330,"operator_new(unsigned_int)_7"); MakeCode(0X807F2938); MakeName(0X807F2938,"GfxTransEffect::Deregister(CCoeControl_const_)_1"); MakeCode(0X807F2994); MakeName(0X807F2994,"GfxTransEffect::Invalidate(CCoeControl_const_)_2"); MakeCode(0X807F2920); MakeName(0X807F2920,"GfxTransEffect::IsRegistered(CCoeControl_const_)_3"); MakeCode(0X807F29D8); MakeName(0X807F29D8,"GfxTransEffect::SetDemarcation(CCoeControl_const___TRect_const&)_4"); MakeCode(0X807F29A8); MakeName(0X807F29A8,"GfxTransEffect::SetDemarcation(CCoeControl_const___TPoint_const&)_5"); MakeCode(0X807F2A08); MakeName(0X807F2A08,"GfxTransEffect::SetDemarcation(CCoeControl_const___CCoeControl_const___TRec t_const&)_6"); MakeCode(0X807F2A24); MakeName(0X807F2A24,"GfxTransEffect::SetDemarcation(TVwsViewId_const&__CCoeControl_const___TRect_const&)_7"); MakeCode(0X807F29F0); MakeName(0X807F29F0,"GfxTransEffect::SetDemarcation(TVwsViewId_const&__TRect_const&)_8"); MakeCode(0X807F29C0); MakeName(0X807F29C0,"GfxTransEffect::SetDemarcation(TVwsViewId_const&__TPoint_const&)_9"); MakeCode(0X807F2A70); MakeName(0X807F2A70,"GfxTransEffect::End(CCoeControl_const_)_10"); MakeCode(0X807F2AA4); MakeName(0X807F2AA4,"GfxTransEffect::Abort(CCoeControl_const_)_11"); MakeCode(0X807F2AB8); MakeName(0X807F2AB8,"GfxTransEffect::Abort()_12"); MakeCode(0X807F2A40); MakeName(0X807F2A40,"GfxTransEffect::Begin(CCoeControl_const___unsigned_int)_13"); MakeCode(0X807F2A58); MakeName(0X807F2A58,"GfxTransEffect::BeginLC(CCoeControl_const___unsigned_int)_14"); MakeCode(0X807F2964); MakeName(0X807F2964,"GfxTransEffect::GetHints(CCoeControl_const_)_15"); MakeCode(0X807F2904); MakeName(0X807F2904,"GfxTransEffect::Register(CCoeControl_const___TUid__int)_16"); MakeCode(0X807F28E8); MakeName(0X807F28E8,"GfxTransEffect::Register(CCoeControl_const___TVwsViewId_const&__TUid)_17"); MakeCode(0X807F294C); MakeName(0X807F294C,"GfxTransEffect::SetHints(CCoeControl_const___unsigned_int)_18"); MakeCode(0X807F2AD8); MakeName(0X807F2AD8,"GfxTransEffect::Enable()_19"); MakeCode(0X807F2AC8); MakeName(0X807F2AC8,"GfxTransEffect::Disable()_20"); MakeCode(0X807F297C); MakeName(0X807F297C,"GfxTransEffect::SetHints(CCoeControl_const___TUid)_21"); MakeCode(0X807F2AE8); MakeName(0X807F2AE8,"GfxTransEffect::IsEnabled()_22"); MakeCode(0X807F2B2A); MakeName(0X807F2B2A,"GfxTransEffect::BeginGroup()_23"); MakeCode(0X807F2BAC); MakeName(0X807F2BAC,"GfxTransEffect::EndDrawItem(CCoeControl_)_24"); MakeCode(0X807F2B82); MakeName(0X807F2B82,"GfxTransEffect::BeginDrawItem(CCoeControl___unsigned_int__TUid__TRect&__TRect___TRect_)_25"); MakeCode(0X807F2BF8); MakeName(0X807F2BF8,"GfxTransEffect::EndFullScreen()_26"); MakeCode(0X807F2C08); MakeName(0X807F2C08,"GfxTransEffect::AbortFullScreen()_27"); MakeCode(0X807F2BC0); MakeName(0X807F2BC0,"GfxTransEffect::BeginFullScreen(unsigned_int__TRect_const&)_28"); MakeCode(0X807F2BD8); MakeName(0X807F2BD8,"GfxTransEffect::BeginFullScreen(unsigned_int__TRect_const&__unsigned_int__TDesC8_const&)_29"); MakeCode(0X807F2AFA); MakeName(0X807F2AFA,"GfxTransEffect::SetEndDemarcation(CCoeControl_const___TRect_const&)_30"); MakeCode(0X807F2B52); MakeName(0X807F2B52,"GfxTransEffect::SetTransitionData(unsigned_int__TDesC8_const&)_31"); MakeCode(0X807F2B12); MakeName(0X807F2B12,"GfxTransEffect::SetBeginDemarcation(CCoeControl_const___TRect_const&)_32"); MakeCode(0X807F2C18); MakeName(0X807F2C18,"GfxTransEffect::SetTransitionObserver(MGfxTransEffectObserver_)_33"); MakeCode(0X807F2B6A); MakeName(0X807F2B6A,"GfxTransEffect::RegisterDrawItemControl(CCoeControl___TUid)_34"); MakeCode(0X807F2B3E); MakeName(0X807F2B3E,"GfxTransEffect::EndGroup(int)_35"); MakeCode(0X807F2A8C); MakeName(0X807F2A8C,"GfxTransEffect::NotifyExternalState(int__TDesC8_const_)_36"); } Modificato 29 Marzo 2009 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Rocci Pubblicato: 29 Marzo 2009 Segnalazione Share Pubblicato: 29 Marzo 2009 questo video prova il fatto che funzionano su il fw 30 giusto? http://www.youtube.com/watch?v=7zwyjl1ZU4o dai dai W 8gb Link to comment Condividi su altri siti More sharing options...
daniele 92 Pubblicato: 29 Marzo 2009 Segnalazione Share Pubblicato: 29 Marzo 2009 uao , magari è un fake ,comunque gli ho appena chiesto un link per una guida vi faccio sapere Link to comment Condividi su altri siti More sharing options...
Guest bald Pubblicato: 29 Marzo 2009 Segnalazione Share Pubblicato: 29 Marzo 2009 si possono cambiare anche nei Symbian fp2 (n78,n79,n85,n96..)!Ma non ho ancora visto quello per n95 fw 30 appena so qualcosa vi aggiorno Link to comment Condividi su altri siti More sharing options...
gianpand1 Pubblicato: 29 Marzo 2009 Segnalazione Share Pubblicato: 29 Marzo 2009 quello è semplicemente il programma di bongoman Link to comment Condividi su altri siti More sharing options...
95A31 Pubblicato: 29 Marzo 2009 Segnalazione Share Pubblicato: 29 Marzo 2009 Scusa, ti ho chiesto una cosa ma ne volevo un'altra. Volevo chiederti l'elenco competo dei file che interagiscono con la dll. Scusa ancora Link to comment Condividi su altri siti More sharing options...
uccaa Pubblicato: 30 Marzo 2009 Segnalazione Share Pubblicato: 30 Marzo 2009 (modificato) lo chiedo una volta per tutte , la patch c2z e kastor non vanno in conflitto , la seconda non serve a nulla se c'è c2z attiva o sbaglio? teoricamente no.. praticamente.. te attivali entrambi e finita li.. tanto non vanno in conflitto.. P.S. non sporcate il 3D in sto modo.. scrivi nell'altro piuttosto.. ############## @ il.socio 1) Cambia file con cartella nel corrispettivo di c:\Resource\ErrRd , ci si potrebbe sbagliare creando un txt.. come ho fatto io.. poi corretto dasolo con una cartella 2) Testerò i risultati su fw 31.0.017, sia mai si arrivi a risultato ottimale con minor passaggi rispetto al 30.. Parlo di N95-1 Per ora, ho copiato i file nella cartella ..\sys\ecc_ecc e ho notato 2 cose 1) il menù effetti tema ora è naturalmente visibile e selezionabile tra attivo/disattivo. L'operazione di attivazione crea errore -1() 2) il menù effetti tema rimane selezionabile senza aver applicato le patch c2z e kastorUI, anche dopo riavvio è ancora visualizzabile (buono) è pensabile che il fw cerchi in automatico prima i file su c e poi su z, semplificando molto il lavoro. Modificato 30 Marzo 2009 da uccaa Link to comment Condividi su altri siti More sharing options...
malbono Pubblicato: 30 Marzo 2009 Segnalazione Share Pubblicato: 30 Marzo 2009 Complimenti buon lavoro e speriamo anche al successo di questi effetti Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 30 Marzo 2009 Autore Segnalazione Share Pubblicato: 30 Marzo 2009 Scusa, ti ho chiesto una cosa ma ne volevo un'altra. Volevo chiederti l'elenco competo dei file che interagiscono con la dll. Scusa ancora Ho aggiunto questo http://www.nokioteca.net/home/forum/index....st&id=27627 che contiene la lista completa delle dipendenze, ma e' per il fw30. Per ciascun eseguibile vengono mostrate tutte le dll utilizzate. Purtroppo ho accidentamente cancellato il dump del fw21 e senza di quello non riesco a generare velocemente la lista completa delle dipendenze... Link to comment Condividi su altri siti More sharing options...
theboss121192 Pubblicato: 30 Marzo 2009 Segnalazione Share Pubblicato: 30 Marzo 2009 Ragazzi io tengo il fw 31 Se vi serve qualcosa, non esitate a domandare! Link to comment Condividi su altri siti More sharing options...
95A31 Pubblicato: 30 Marzo 2009 Segnalazione Share Pubblicato: 30 Marzo 2009 Ho aggiunto questo http://www.nokioteca.net/home/forum/index....st&id=27627 che contiene la lista completa delle dipendenze, ma e' per il fw30. Per ciascun eseguibile vengono mostrate tutte le dll utilizzate. Purtroppo ho accidentamente cancellato il dump del fw21 e senza di quello non riesco a generare velocemente la lista completa delle dipendenze... Grazie Infinite Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 30 Marzo 2009 Autore Segnalazione Share Pubblicato: 30 Marzo 2009 aggiunte le dipendenze del fw21... http://www.nokioteca.net/home/forum/index....st&id=27629 Link to comment Condividi su altri siti More sharing options...
uccaa Pubblicato: 30 Marzo 2009 Segnalazione Share Pubblicato: 30 Marzo 2009 queste sono le dipendenze delle librerie.. ma gli eseguibili? di sicuro la parte grafica è gestita da un eseguibile.. ah.. domanda idiota.. hai provato a caricare i file sys\bin\tfxlistbox.dll sys\bin\tfxserver.dll sys\bin\tfxserveranim.dll sys\bin\tfxserverclient.dll sys\bin\TfxSrvPlugin.dll sys\bin\transitionserver.dll in C e controllato se parte qualcosa? o se cambia l'errore? Link to comment Condividi su altri siti More sharing options...
95A31 Pubblicato: 30 Marzo 2009 Segnalazione Share Pubblicato: 30 Marzo 2009 (modificato) FW 30: => gfxtransadapter.dll - EUser.dll - DRTAEABI.dll - SCPPNWDL.dll FW 21: => gfxtransadapter.dll - EUser.dll - tfxserverclient.dll - Cone.dll - Ws32.dll - gfxtrans.dll - DRTAEABI.dll - SCPPNWDL.dll - DRTRVCT2_1.dll Domani vedo di fare qualcosa con il metodo empirico (sostituzione di tutti i file coinvolti, dubito fortemente che mi si accenderà ancora il telefono ) queste sono le dipendenze delle librerie.. ma gli eseguibili?di sicuro la parte grafica è gestita da un eseguibile.. ah.. domanda idiota.. hai provato a caricare i file sys\bin\tfxlistbox.dll sys\bin\tfxserver.dll sys\bin\tfxserveranim.dll sys\bin\tfxserverclient.dll sys\bin\TfxSrvPlugin.dll sys\bin\transitionserver.dll in C e controllato se parte qualcosa? o se cambia l'errore? Se guardi nel file ci sono anche le dipendenze degli eseguibili. La parte grafica è controllata da più eseguibili. E' emerso che quello che le fa partire è EwSrv. Si provato ma nulla è cambiato. Bisognerà rimappare tutto dopo che si è capito il giro Modificato 30 Marzo 2009 da 95A31 Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 30 Marzo 2009 Autore Segnalazione Share Pubblicato: 30 Marzo 2009 (modificato) queste sono le dipendenze delle librerie.. ma gli eseguibili? Ci sono tutte le dipendenze... Guarda bene... ah.. domanda idiota..hai provato a caricare i file sys\bin\tfxlistbox.dll sys\bin\tfxserver.dll sys\bin\tfxserveranim.dll sys\bin\tfxserverclient.dll sys\bin\TfxSrvPlugin.dll sys\bin\transitionserver.dll in C e controllato se parte qualcosa? o se cambia l'errore? No, non ho provato, ma se vuoi provare tu, accomodati pure! Modificato 30 Marzo 2009 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 30 Marzo 2009 Autore Segnalazione Share Pubblicato: 30 Marzo 2009 FW 30:=> gfxtransadapter.dll - EUser.dll - DRTAEABI.dll - SCPPNWDL.dll FW 21: => gfxtransadapter.dll - EUser.dll - tfxserverclient.dll - Cone.dll - Ws32.dll - gfxtrans.dll - DRTAEABI.dll - SCPPNWDL.dll - DRTRVCT2_1.dll A quanto pare, nel fw30, le 2 funzioni esportate da gfxtransadapter sono state rimpiazzate con delle funzioni "dummy", tanto per far contento il sistema... E mi sa che questo rappresenta un altro pezzetto da dover sistemare. Ora stavo un attimo riflettendo su come sarebbe possibile rimpiazzare il gfxtransadapter.dll del fw30 con quello del fw20... L'unico metodo che mi viene in mente, e' una "sbrodolata" di patch per rompatcher che non finisce piu'... Ma non e' proprio il massimo, soprattutto perche' ci sono troppe possibilita' di sbagliare qualcosa in fase di creazione della patch. Link to comment Condividi su altri siti More sharing options...
uccaa Pubblicato: 30 Marzo 2009 Segnalazione Share Pubblicato: 30 Marzo 2009 (modificato) No, non ho provato, ma se vuoi provare tu, accomodati pure! linkami i file A quanto pare, nel fw30, le 2 funzioni esportate da gfxtransadapter sono state rimpiazzate con delle funzioni "dummy", tanto per far contento il sistema...E mi sa che questo rappresenta un altro pezzetto da dover sistemare. Ora stavo un attimo riflettendo su come sarebbe possibile rimpiazzare il gfxtransadapter.dll del fw30 con quello del fw20... L'unico metodo che mi viene in mente, e' una "sbrodolata" di patch per rompatcher che non finisce piu'... Ma non e' proprio il massimo, soprattutto perche' ci sono troppe possibilita' di sbagliare qualcosa in fase di creazione della patch. ma prova direttamente mettendo il gfxXXXXXX.dll nella cartella c: come ho detto prima i dll che abilitano la scritta effetti tema mi vengono caricati in primis da C senza aver attive le patch, ne le caps.. con un po' di cuculo ti carica la dll direttamente da C, senza usare patch.. prova.. p.s. se ce la fai linkami i file del 20.. non ho la dmp e non c'ho voglia di scaricarmela.. poi preverò il mio test fai da test EDIT: passa anche il gfxtranseccecc.dll e, domandone.. sti file qua ci sono le fw 30? o bisogna caricare anche questi? - tfxserverclient.dll - Cone.dll - Ws32.dll - gfxtrans.dll - DRTRVCT2_1.dll ricapitolando.. linkami gentilmente i file dell fw 20: sys\bin\tfxlistbox.dll sys\bin\tfxserver.dll sys\bin\tfxserveranim.dll sys\bin\tfxserverclient.dll sys\bin\TfxSrvPlugin.dll sys\bin\transitionserver.dll + => gfxtransadapter.dll - EUser.dll - tfxserverclient.dll - Cone.dll - Ws32.dll - gfxtrans.dll - DRTAEABI.dll - SCPPNWDL.dll - DRTRVCT2_1.dll tutto del fw 20.. provo ad editarli con un editor esadecimale e controllo se i file simili sono uguali.. è ipotizzabile che il file gfxtranseccecc.dll del fw 30 e 31 sia quello del 20 meno i pezzi essenziali che collegavano i file mancanti nei nuovi fw.. ti ringrazio.. attendo file per test Modificato 30 Marzo 2009 da uccaa Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 31 Marzo 2009 Autore Segnalazione Share Pubblicato: 31 Marzo 2009 (modificato) linkami i file Ho appena uppato il dump del fw21 contenente tutti i files che ti servono e qualsiasi altro file di cui dovessi avere bisogno in futuro per le tue prove. http://www.megaupload.com/?d=DGGR8NBL come ho detto prima i dll che abilitano la scritta effetti tema mi vengono caricati in primis da C senza aver attive le patch, ne le caps..con un po' di cuculo ti carica la dll direttamente da C, senza usare patch.. Il file staticfeatures.dll a cui fai riferimento NON si trovava nella rom, quindi mi e' stato possibile rimpiazzarlo semplicemente mettendolo in c: e calcolando l'hash del file... Oltretutto, non e' stato necessario neppure rimappare le chiamate alle api di sistema, perche' gli eseguibili che NON sono in rom hanno un formato differente ed effettuano le chiamate alle varie api utilizzando il loro ordinale e non il loro indirizzo statico in memoria. Se fosse stato in rom sarebbe stato possibile utilizzare rompatcher per modificare quello del fw30 aggiungendo la feature #666, senza rimpiazzare nessun file. Se prendi una dll che e' in rom e la piazzi in c: non credo otterrai nulla, perche' (ad es.) all'indirizzo 0x80102030 ci sara' sempre caricata la dll originale e qualsiasi chiamata a questo indirizzo fara' cmq. riferimento alla dll originale. ma prova direttamente mettendo il gfxXXXXXX.dll nella cartella c:<CUT> prova.. Come gia' detto, se vuoi provare, accomodati pure! e, domandone.. sti file qua ci sono le fw 30? o bisogna caricare anche questi? Nel primo post trovi il diff di 95A31 con il confronto dei files presenti nei due firmare. Modificato 31 Marzo 2009 da Il.Socio Link to comment Condividi su altri siti More sharing options...
95A31 Pubblicato: 31 Marzo 2009 Segnalazione Share Pubblicato: 31 Marzo 2009 (modificato) Ok.. Mi sa che per vedere a cosa "punta" _MagicValue bisogna studiarsi un pò delle funzioni di Cone.dll Ora le mie domande sono queste: - Se si integrano le dll mancanti con la C2Z riusciremo poi a reindirizzare in qualche modo le chiamate verso di loro? - Il file gfxtransadapter.dll nel FW 21 è (ovviamente) più grande del file gfxtransadapter.dll nel FW 30, lo spazio di memoria che avanza nel 30 è usato da qualche altro file? -- Se no, è possibile modificare il gfxtransadapter.dll del 30 con un editor esadecimale, copiando i bit delle varie istruzioni e poi tramite il programma di Alex_N70 fare una "Diff-Patch" per rendere il file nel FW 30 uguale a quello modificato? -- Si si, come facciamo? Non so che cosa faccia, ma MapDrivers può venirci in aiuto? Per avere solo file del sistema proverò a modificare tramite editor esa lo StaticFeatures.dll del 30 inserendo il 0x666 e poi fare hash e C2Z, c'è qualche volontario ? Allego l'out dell'estrazione del dump del FW 21 che mostra gli indirizzi e la dimensione dei file della ROM Out_DumpROM.txt Modificato 31 Marzo 2009 da 95A31 Link to comment Condividi su altri siti More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Accedi Ora