在很久以前,字符,出於好奇,我已經試過十六進制編輯遊戲「危險戴夫」的可執行文件。 我看任何字符串我能找到的文件來解決,並提出了一些隨機的編輯,看看它是否會真正改變遊戲中顯示的文本。重用編譯.exe文件
我很驚訝地看到結果,我已經用十六進制編輯器和DOSBox中現在重建:
可以看出,編輯兩個字符「RO」字符串「ROMERO」的結果在4個字符被改變,結果變成「ZUMEZU」。看起來好像該程序正在重用這兩個字符並在該字符串的開始和結尾處打印它們。
這是什麼原因?我的第一個猜測是試圖使可執行文件更小,但只有重用字符的代碼可能需要比保存2字節更多的空間。 這只是作者完成的一個技巧,或者只是一些編譯器巫術?
類似地,有「軟」和「DISK,INC」之間的兩個額外的字節 - 也按字節壓縮的典型指示。 – usr2564301