Un tempo, per curiosità, ho provato la modifica esadecimale del file eseguibile del gioco "Dangerous Dave". Ho cercato nel file tutte le stringhe che ho trovato e ho apportato alcune modifiche casuali per vedere se avrebbe effettivamente modificato il testo visualizzato all'interno del gioco.Riutilizzo dei caratteri nel file .exe compilato
Sono rimasto sorpreso di vedere il risultato, che ora ho ricreato utilizzando un editor esadecimale e DOSBox:
Come si può vedere, la modifica dei due personaggi "RO" nella stringa "ROMERO" portato in 4 caratteri modificati, con il risultato che diventa "ZUMEZU". Sembra che il programma stia riutilizzando i due caratteri e li stampi all'inizio e alla fine di quella stringa.
Qual è la causa di questo? La mia prima ipotesi sarebbe cercare di rendere l'eseguibile più piccolo, ma solo il codice che riutilizza i caratteri probabilmente richiederebbe più spazio di quei 2 byte da salvare. E 'solo un trucco fatto dall'autore, o solo qualche compilatore voodoo?
Analogamente, ci sono due byte extra tra "SOFT" e "DISK, INC" - anche un'indicazione tipica della compressione bytewise. – usr2564301