Czytelnicy Fuzza na pewno znaleźli w nim artykuł kolegi TSD o odbezpieczaniu gier. Napisał tam 3 POKE, które likwidują ten kod. Zanim jeszcze zaczął wychodzić Fuzz, ja nie mogąc przegrać gier z Micrusem, postanowiłem, że rozgryzę ten kod. No cóż, sprawa nie była prosta. Ale jakoś sobie tam poradziłem.
Wszyscy wiedzą, co to jest bufor magnetofonu. Nie będę się rozpisywał na ten temat, bo po co? Dla nas najważniejszą rzeczą jest fakt, iż tam znajduje się to, czego szukamy. Okazało się, że każda gra zabezpieczona przez MICRUS COPY miała początek gry zapisane w buforze magnetu, a na właściwe miejsce został wpisany tester bufora i jeżeli bufor nic nie zawierał, wyskakiwał text ILLEGAL COPY (po przegraniu). Jeżeli wynik był inny, to właściwy kawałek programu był przenoszony do adresu $0801 i gra była uruchamiana. TSD do tej sprawy podszedł z innej strony. Pozwolił, aby kod sam się uruchomił i wszystko za nas zrobił, a następnie tuż przed uruchomieniem gry wstawiał RTS i program przerywał pracę. W ten sposób można już było przegrać odbezpieczony program. Lecz można to zrobić na inny sposób! Po prostu uzbroić się w porządny monitor języka maszynowego i… Jazda! Wgrywamy zabezpieczoną grę (jeżeli linia nie zawiera textu MICRUS COPY, to ten sposób nie będzie działał) i włazimy do monitora. Aby upewnić się, że to jest możliwe do odkodowania, wpisujemy:
.D 0800 0900
i klawiszem Control zwalniamy przesuw. I co robimy? Ano po prostu szukamy jednej instrukcji:
JMP $0374 - to oznacza, że w tym momencie następuje skok do bufora magnetu.
No, jak już jesteśmy pewni, to wpisujemy:
.T 0390 03f6 0800 (03f5 dla monitora w **Black Box v.8**)
Następnie wychodzimy z monitora i zgrywamy grę. Jeżeli czasami wyskoczy nam w takim momencie
?OUT OF MEMORY ERROR
to należy zmienić wartość w komórce 56, najlepiej wpisać tam 208 lub więcej. A teraz inny sposób.
Można zgrać taką grę razem z kodem! Ale jedyna zaleta to to, że można tak zgrać każdą grę. Wady:
– możliwość wgrania takiej gry tylko pod Black Boxem
– to, co było podczas zapisu na ekranie, wyświetli się po jej późniejszym wgraniu
A jak to uczynić??? Wystarczy wgrać grę i wklepać: (ofkoz tylko pod Black Boxem)
<-W,768,xxxxx,"tytuł",1,1 gdzie xxxxx to adres końcowy programu.
Ponieważ magnetofony do C64 nie cieszą się już taką popularnością jak wcześniej, to jednak powiem, że ja używam ten sprzęt, zwłaszcza wtedy, gdy nie mam wolnych dysków. Wtedy zgrywam wszystkie jednoplikówki mało potrzebne na taśmę i mam spokój. Posiadacze grzyba archiwizują wszystko na kompaktach i nawet już nie pamiętają, jak wygląda taki sprzęt.
Niektórzy nawet nie wiedzą, że magnet może czasami bardzo pomóc i jednocześnie bawić. Ja sam spotkałem się z programem, który powodował wydawanie dźwięku przez silnik magnetofonu. Ale powracając do tematu, to na koniec powiem jeszcze, że samemu można napisać taki kod. Nawet w BASIC-u. Ponieważ bufor kasuje się podczas:
-resetu (nawet poprawionego)
-wykonania instrukcji Load, Save czy Verify
to taki kod powinien sprawdzać, czy w danej komórce bufora jest jakaś tam wartość od razu po wgraniu i uruchomieniu. Obecnie mało kto zabezpiecza programy nawet na magnecie. Szkoda czasu. Lepiej przeznaczyć go na napisanie nowej gry itp. Jeżeli jakaś osoba ma na zbyciu kompletne kasety z Micrus Copy, niech napisze do mnie. Sorry za taką chaotyczność…
H.M.MURDOCK/TROPYX/OXYGEN64
Ps. Ten artykuł napisałem przy wykorzystaniu książki „Programować może każdy” i oczywiście własnych doświadczeń!
Powyższy artykuł napisałem po moich doświadczeniach z odbezpieczaniem gier, które były zabezpieczone poprzez program Micrus Copy. Chciałem z czytelnikami pochwalić się własnym sposobem na przegrywanie programów z tą legendarną protekcją.
Tekst napisałem na przełomie 1999/2000 r. przy użyciu Commodore 64 oraz edytora tekstowego do magazynu dyskowego Inverse. Ukazał się on w marcu 2000 r. w magazynie Inverse #7/Oxygen64 w dziale Inne. Oryginalną treść poddałem obróbce technicznej z uwzględnieniem poprawek interpunkcyjnych.