Dawno, dawno temu, z ciekawości, próbowałem hex-edit pliku wykonywalnego gry "Dangerous Dave". Rozejrzałem się po pliku w poszukiwaniu znalezionych ciągów znaków i wprowadziłem kilka losowych zmian, aby sprawdzić, czy rzeczywiście zmieni on tekst wyświetlany w grze.Ponowne użycie znaków w skompilowanym pliku .exe
Byłem zaskoczony, aby zobaczyć wynik, który mam teraz odtworzone za pomocą hex-edytora i DOSBox:
Jak widać, edytując dwa znaki „RO” w ciągu „ROMERO” spowodowało w 4 znaki są zmieniane, z wynikiem staje się "ZUMEZU". Wygląda na to, że program ponownie używa dwóch znaków i drukuje je na początku i końcu tego ciągu.
Jaka jest tego przyczyna? Moim pierwszym przypuszczeniem byłaby próba zmniejszenia pliku wykonywalnego, ale kod, który ponownie użyłby znaków, prawdopodobnie wymagałby więcej miejsca niż te 2 bajty do zapisania. Czy to tylko sztuczka wykonana przez autora, czy tylko jakiś kompilator voodoo?
Podobnie, istnieją dwa dodatkowe bajty między "SOFT" i "DISK, INC" - również typowe wskazanie kompresji bytowej. – usr2564301