|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Feb 2012
Messaggi: 13
|
Editare software già compilato
salve a tutti, utilizzo da svariati anni un programma che ormai non viene più aggiornato, il suo nome è "Filmup - Movie database on your desktop", non posto il link diretto perchè non vorrei andare contro le regole del forum, ad ogni modo questo software serve a catalogare la propria collezione di film ed ha la possibilità di effettuare una ricerca automatica nei più diffusi motori di ricerca del titolo indicato..
Dall'ultimo aggiornamento son passati vari anni e molti link dei siti di ricerca son cambiati..vorrei capire se è possibile modificarlo in modo da immettere gli url corretti.. Ho provato a spulciarlo un pò, ma non son venuto a capo di nulla..riuscite a darmi una mano? E' un programmino molto semplice, intuitivo e che utilizza un database di Access per catalogare i film.. Spero riuscirete a risolvermi il problema o, andrebbe benissimo anche l'essere indirizzato su cosa modificare per far ciò di cui ho bisogno.. Grazie tante. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Se le stringhe che rappresentano i link sono nell'eseguibile, allora la strada da seguire non è per nulla semplice.
Si tratta delle stesse tecniche che usano coloro che creano crack e compagnia, quindi parliamo di gente che mangia pane e informatica. Non voglio scoraggiarti ma bisogna avere un livello di conoscenze estremamente elevato per fare quello che chiedi. |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Feb 2012
Messaggi: 13
|
Pare proprio le stringhe siano nell'eseguibile, eccone un esempio:
Codice:
* Possible String Reference to: 'http://filmup.leonardo.it' | 00A43AA2 BA943FA400 mov edx, $00A43F94 * Reference to: System.@LStrAsg(void;void;void;void); | 00A43AA7 E8D8169CFF call 00405184 * Reference to FRicercaFilm | 00A43AAC 8B45FC mov eax, [ebp-$04] * Reference to field TFRicercaFilm.OFFS_0C84 | 00A43AAF 8B90840C0000 mov edx, [eax+$0C84] * Reference to FRicercaFilm | 00A43AB5 8B45FC mov eax, [ebp-$04] 00A43AB8 05880C0000 add eax, +$00000C88 * Possible String Reference to: '/cgi-bin/search.cgi?ps=10&fmt=long& | q=|NS|&ul=%25%2Fsc_%25&m=all&wf=002 | 0&wm=wrd&sy=0&x=24&y=8' | 00A43ABD B9B83FA400 mov ecx, $00A43FB8 * Reference to: System.@LStrCat3; | 00A43AC2 E8A1199CFF call 00405468 * Reference to FRicercaFilm | 00A43AC7 8B45FC mov eax, [ebp-$04] 00A43ACA 058C0C0000 add eax, +$00000C8C * Possible String Reference to: 'sc_' | 00A43ACF BA2040A400 mov edx, $00A44020 * Reference to: System.@LStrAsg(void;void;void;void); | 00A43AD4 E8AB169CFF call 00405184 00A43AD9 E911040000 jmp 00A43EEF 00A43ADE 8D55C8 lea edx, [ebp-$38] * Reference to FRicercaFilm | 00A43AE1 8B45FC mov eax, [ebp-$04] * Reference to control TFRicercaFilm.cxxpMotoriDiRicerca : TcxExtLookupComboBox | 00A43AE4 8B807C0B0000 mov eax, [eax+$0B7C] * Reference to: Controls.TControl.GetText(TControl):TCaption; | 00A43AEA E87DE0A4FF call 00491B6C 00A43AEF 8B45C8 mov eax, [ebp-$38] Quel che a me interessa modificare è: * Possible String Reference to: '/cgi-bin/search.cgi?ps=10&fmt=long& | q=|NS|&ul=%25%2Fsc_%25&m=all&wf=002 | 0&wm=wrd&sy=0&x=24&y=8' Ma dubito che, modificandola con il blocco note, possa poi funzionare... Qualche soluzione? Grazie |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Ovviamente col blocco note faresti un casino. Non è un software in grado di manipolare file binari. Ci vuole un editore esadecimale tipo HxD.
A quel punto puoi modificare la stringa, prestando attenzione al tipo. Non so se delphi usa ancora le stringhe pascal oppure quelle c, per cui devi vedere la stringa com'è fatta. A seconda del tipo di stringa, la modifica va fatta in maniera diversa. Questo a patto che ci sia spazio a sufficienza per inserire la nuova stringa al posto della vecchia. |
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Feb 2012
Messaggi: 13
|
Emh..non ho capito granchè..solo che non mi conviene modificare con il blocco note :\
Bisogna partire dal fatto che non ho mai programmato...quindi non ho idea di cosa m'hai detto In parole povere? Scarico un editor esadecimale e...? |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
semplicemente devi sostituire la stringa che c'è con quella che ti serve il come dipende dalle opzioni dell'editor l'unica cosa è capire se sono stringhe C-like o pascal-like, cosa che può fare una grossissima differenza http://en.wikipedia.org/wiki/Compari..._and_C#Strings |
|
|
|
|
|
|
#7 | |
|
Junior Member
Iscritto dal: Feb 2012
Messaggi: 13
|
dovrebbero essere pascal-like, anche se, parlando con un amico programmatore, mi ha detto testualmente:
Quote:
Il decompilatore che ho utilizzato è DeDe... |
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: May 2009
Messaggi: 186
|
Non è detto. Per sostituire una stringa e provare non ci vuole molto. Poi se non funziona è un altro discorso...
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
ma infatti non devi decompilare niente, devi semplicemente sostituire con un hex editor le stringhe che t'interessano basta editarle, niente di che solo che se sono c-like, ci va un bel carattere zero alla fine, se sono pascal-like devi cambiare i primi bytes che indicano la lunghezza della stringa provare a decompilare e ricompilare un eseguibile è da folli |
|
|
|
|
|
|
#10 |
|
Junior Member
Iscritto dal: Feb 2012
Messaggi: 13
|
Non mi è chiarissimo, dunque, scarico un hex editor e gli do in pasto l'eseguibile?!
Considera che le stringhe da cambiare sarebbero almeno 5..quella che ho postato era un esempio... Ho paura di non riuscire a seguire molto il discorso, si può essere leggermente più user-friendly? Per me è dura seguire ciò che concerne questo mondo a me quasi sconosciuto Grazie |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
E' impossibile essere user-friendly trattando argomenti avanzati. Pensa che quest'operazione è molto simile a quello che si faceva prima dei compilatori, quando si programmava in binario.
Scaricati HxD e comincia a giocare con le sue funzionalità di editing su un file qualsiasi. Devi prenderci la mano e capire un pò di cose, prima di poter modificare un eseguibile. |
|
|
|
|
|
#12 |
|
Junior Member
Iscritto dal: Feb 2012
Messaggi: 13
|
Ok, scaricato HxD, ho aperto l'eseguibile e ho trovato le stringhe che vorrei modificare, tipo:
http://filmup.leonardo.it/cgi-bin/se...10&fmt=long&q= Con affianco: 68 74 74 70 3A 2F 2F 66 69 6C 6D 75 70 2E 6C 65 6F 6E 61 72 64 6F 2E 69 74 2F 63 67 69 2D 62 69 6E 2F 73 65 61 72 63 68 2E 63 67 69 3F 70 73 3D 31 30 26 66 6D 74 3D 6C 6F 6E 67 26 71 3D Io dovrei modificarla in: http://filmup.leonardo.it/cgi-bin/se...21&wm=wrd&sy=0 Capisco che dovrei prenderci la mano anche con altri files, ma questo è quanto mi serve, non mi si potrebbe seguire passo passo nell'editing di questa stringa in modo che possa poi imparare come fare le altre da solo? Grazie ancora Ultima modifica di Papatodero : 16-02-2012 alle 09:23. |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Dovresti postare uno screenshot della finestra dell'editor, altrimenti è difficile capire che sta succedendo.
|
|
|
|
|
|
#14 |
|
Junior Member
Iscritto dal: Feb 2012
Messaggi: 13
|
Ecco un paio di screen di alcune delle stringhe che voglio cambiare:
![]() ![]() Anche se ho paura che, anche editando queste stringhe, potrebbe non funzionare... :\ |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
In primo luogo puoi cambiare le stringhe solo se la stringa che andrai a mettere è più piccola di quella che già c'è.
Poi ho visto che che le stringhe in delphi sono null-terminated, per l'esattezza i due 00 00 dopo la stringa ne indicano il termine. Ho notato però che prima della stringa c'è un valore a 32 bit che ne indica la dimensione. 3E 00 00 00 per la prima e 44 00 00 00 per la seconda. Quello che devi fare è: 1. inserire la tua stringa 2. alla fine della stringa aggiungere 00 00 3. calcolare la dimensione della stringa, convertire il numero in esadecimale ( si può fare con la calcolatrice ) e sostituirlo al posto di 3E e 44 rispettivamente. |
|
|
|
|
|
#16 |
|
Junior Member
Iscritto dal: Feb 2012
Messaggi: 13
|
Non son certo d'aver capito bene, inserisco qualche screenshot:
Questo è il file non modificato ![]() Questo, invece, è come l'ho modificato ![]() Devo inserire tutti gli 00 per non modificare la dimensione del file, giusto? Come calcolo la dimensione della stringa? |
|
|
|
|
|
#17 | |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21833
|
Quote:
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
|
#18 | ||
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
devi metterla al posto del 38 Quote:
a quanto leggo le AnsiStrings sono null-terminated del resto pure il file che ha analizzato Papatodero mostra due bytes nulli alla fine della stringa, come descritto nel documento che ho postato |
||
|
|
|
|
|
#19 |
|
Junior Member
Iscritto dal: Feb 2012
Messaggi: 13
|
Ho fatto la modifica delle stringhe che pensavo potessero risolvere il mio problema, ma nulla è cambiato..continua a non trovarmi nessun film :\
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:04.
























