Oppure

Loading
08/01/13 16:33
Macca96
ciao a tutti, questa mi sembrava la categoria più appropriata...
ho scritto e compilato un semplicissimo programma in qbasic(tramite il compilatore QB64) progettato per scrivere in una finestra del terminale il testo "Ciao" per fare delle prove
volendo fare una prova per vedere se si potesse direttamente modificare un file eseguibile tramite la modifica del suo binario, ho utilizzato il programma Notepad++( con il plugin per leggere e modificare files in esadecimale), ho aperto il piccolo programma creato in precedenza, ho individuato la stinga contenente il testo "Ciao" e l'ho sostituita con un codice esadecimale che dà il testo "Hola". salvato il file, ho provato ad aprirlo normalmente come un programma, ma mi si chiudeva il terminale appena creato, quindi volevo dei chiarimenti in merito: è possibile modificare un programma in questo modo(se si, devo aver sbagliato qualche cosa io)? Come si può fare?


PS
sono ad un livello mediobasso di programmazione (conosco il basic, conosco abbastanza il c e sto iniziando ad avvemturarmi nel python), la mia domanda di modificare un file cambindo il coice macchina dell'eseguibile, mi è venuta soltanto per sete conoscenza, NON HO ALCUNA INTENZIONE DI MODIFICARE ESEGUIBILI COSì PER CREARE CRACK E ROBA DEL GENERE.


Grazie in anticipo
Ultima modifica effettuata da Macca96 08/01/13 16:35
aaa
08/01/13 18:26
pierotofy
Apri una finestra terminale (Windows Key + R, "cmd", Invio), naviga nella directory dell'eseguibile e fallo partire da li. Viene fuori qualcosa nell'output?
Il mio blog: piero.dev
08/01/13 18:52
Macca96
grazie Piero per la risposta... ma i programmi compilati col QB64 hanno un "terminale proprio" quindi se provo ad utilizzare il prompt di windows, mi dice "Program too big to fit in memory"...


aaa
08/01/13 19:01
Macca96
Ho risolto, ho scoperto che si possono modificare, avevo sbagliato a scrivere qualche cosa evidentemente...
è sorto un altro problema... non riesco ad editare come in un normale editor( che se metti il cursore da una parte e inizi a scrivere ti sposta il testo che segue), infatti il testo viene sovrascritto, ciò avviene anche se provo ad editare in modalità binaria del programma... non so se mi sono spiegato...

per farvi capire la situazione,
un esempio è quando stai scrivendo qualcosa nel dos e premi il tasto INS, a quel punto il cursore cambia e il testo anzichè essere spostato alla nuova aggiunta di caratteri nel mezzo del testo, viene sovrascritto con quello seguente....
qualcuno ha soluzioni?
Ultima modifica effettuata da Macca96 08/01/13 19:03
aaa
08/01/13 20:06
TheKaneB
Se il programma è già compilato, e vai ad inserire una stringa più lunga di quella originale, andrai a modificare la posizione esatta delle istruzioni successive.
Questo implica che gli indirizzi assoluti saranno diversi e molto probabilmente questo causerà errori di esecuzione perchè il codice potrebbe fare un jump a indirizzi che non contengono più le istruzioni che dovrebbero contenere.
aaa
08/01/13 20:19
Macca96
Grazie per la risposta :k:... Ho ancora molto da imparare qui... XD.
aaa
08/01/13 20:25
TheKaneB
Tranqui, ci siamo passati tutti :D
aaa