30 évvel később sikerült feltörni a legnehezebb C64 másolásvédelmet

Az 1985-ös “SpiraDisc” nevű másolásvédelmet Jim Drew törte fel 2013. május 27-én. A művelet összefoglalójáról a Lemon64 fórumon adott hírt. Ez a másolásvédelem annyira bonyolultnak bizonyult, hogy az eredeti lemezeket senki nem tudta annak idején lemásolni vagy sokszorosítani. A C64 Preservation copy protection összefoglalójából:

“SpiraDisc” This protection name hails from the Apple ][ and isn’t exactly the same, but similar. (…) The data on the first 14 tracks or so are written half on the regular track, and half on the next half-track, all aligned perfectly. The game loads by stepping out to track 1, beginning the load, then stepping a half track at a time all the way in until the game is loaded. If any deviation in time from where it expects the data to be and when is found, it fails.

Drew ezt írja:

Tracks 10, 10.5, and 11 contain valid data that was written WHILE the head was stepping. So, the data (which is 10 x 512 bytes long) is written on an ‘arc’ as the disk spins and the head steps between tracks 11.0->10.5->10.0->10.5->11.0.

A dolog attól bonyolult, hogy a programkódot olvasva nem derül ki, mi történik a háttérben:

Looking at the actual code really doesn’t tell you the story about how the stepper motor responds when told to step. The step does not occur immediately, and the step duration is whatever the 1541’s stepper motor timing is. No other stepper motor will work for reading (or writing).

Drewnek úgy sikerült rájönnie, hogyan működik pontosan, hogy egy szintén saját fejlesztésű SuperCard Próval mágneses polarizáció szintjén nézte működés közben a lemezt. Ez a legelemibb formája a mágneslemeznek, gyakorlatilag fizikailag látni, mi történik a felületén. Közel 30 évvel ezelőtt még nem volt ilyen fejlett a technológia.

Egy LordCrass nevű felhasználó szintén részt vett a törésben, ő ezt írja:

There are numerous decryption and checksum routines, but the main decryption routine is quite interesting, using the drive’s timers, illegal opcodes, and the decryption routine self-modifying while it runs. All of the decryption adds up to about 50% of the total time it takes to load the program.

Hogy ki készítette ezt a másolásvédelmet? Charles Leborgne nevű programozó, aki egy saját fejlesztésű “21 Second Backup” nevű másolóprogramjánál szintén felhasználta a védelmet. A másolóprogram ezzel a csodálatos nyitóképernyővel örvendeztette meg a felhasználóját:

A VG Data Shack kiadásában jelent meg, így nézett ki a borítója:

Korabeli hirdetés:

Egy játék került kereskedelmi forgalomba ezzel a másolásvédelemmel, a szintén 1985-ös “Bounty Bob Strikes Back!” című platformer, íme a teljes végigjátszás:

Aki esetleg azt kérdezné magában, hogy hogyan lehet mégis az, hogy elterjedt a játék, illetve a másolóprogram egy ilyen bonyolult másolásvédelem ellenére, a válasz meglehetősen egyszerű: a másolásvédelem gyakorlatilag csak azzal foglalkozik, hogy a szoftvert beolvassa mindenféle körülményes módon a lemezről, utána pedig kicsomagolja. Ezek után a program a memóriába kerül, onnan pedig viszonylag egyszerű már lementeni. Az eredeti hordozót nehéz csak másolni.