JAK OGÎUPIÇ ACTION REPLAY? Scorpio C ZABEZPIECZ SWÓJ PROGRAM PRZED HACKEREM `````````````````````````````````````` Artykuî ten przeznaczony jest dla tych wszystkich, którzy piszćc wîasne demo chcieliby je zabezpieczyç przed wőcibskimi hackerami i code-ripperami. Chciaîbym podzieliç się z wami moimi doőwiadczeniami w walce z Amiga Action Replay II. Teoretycznie nie moţna zabezpieczyç swego programu przed tym interfejsem, jednak przy odrobinie chęci i cierpliwoőci mozna pozbyç się kîopotów! Otóţ wykorzystujćc pewnć subtelnoőç przystawki moţemy sprawiç, aby po zatrzymaniu twojego programu wstrętny lamer nieco się zdziwiî! Zastanówmy się jak dziaîa Action? Po naciőnieciu przycisku FREEZE zostaje wywoîane przerwanie o poziomie 7, czyli niemaskowalne (NMI). Co to oznacza? Oznacza to, iţ w sposób programowy nie moţemy uchroniç się przed jego wywoîaniem. Jednak Action Replay to "teţ czîowiek" i ma pewne wady. Po pierwsze przy zatrzymywaniu zostaje odîoţony na stos adres nastepnej instrukcji do wykonania. Natomiast program obsîugi Action Replay pobiera adres, z pod którego zostanie pobrany kod następnego rozkazu prosto ze stosu. Wystarczy zatem tak zreorganizowaç nasz program, aby nie korzystaî ze stosu wogóle, natomiast wskaűnik stosu (A7) ustawiç na ROM!! Coţ się wtedy stanie? Procesor po przyjęciu sygnaîu o przerwaniu NMI odîoţy na stos rejestr systemowy SR i adres następnej instrukcji do wykonania, a poniewaţ procesor robi tylko to, co my mu kaţemy, więc gdy A7 wskazuje na ROM to nic na stosie zapisane nie zostanie! Tak to Aciton Replay pobierze adres aktualnie wykonywanego programu jako caîkiem przypadkowć wartoőç. I gdy zdziwiony goőciu będzie próbowaî wejőç ponownie do programu komędć X posîuszny komputer rozpocznie wykonywanie programu od tego przypadkowego adresu z ROM-u! Jeszcze jedno: gdy troszeczkę ruszysz gîowć moţesz ustawiç A7 tak, aby ten adres nie byî caîkiem przypadkowy! Jednak eksperymentowanie pozostawiam Tobie. Gdy to nie wystarcza mam w zanadrzu coő mocniejszego: procesor wywoîujćc stan wyjćtkowy odkîada na stos wartoőci peînymi sîowami, natomiast Motorola 68000 moţe zapisywaç sîowa (dwa bajty) tylko od parzystych adresów. Jeţeli wiec w programie nie będziemy uţywali stosu i jego wskaűnik (A7) ustawimy ustawimy na adres nieparzysty, to przy pierwszej próbie wywoîania jakiegokolwiek stanu wyjćtkowego (dla pewnoőci radziîbym byç w trybie nadzorcy), a wiec i przy próbie zatrzymania Twojego programu komputer zawiesi się na amen! Dla zdziwionego hackera jedynym wyjőciem bedzie wtedy Ctrl-Amgia-Amiga. Oczywiőcie pojawiajć się problemy typu: - program bez stosu? - jak przerobiç play-routine? - co zrobiç, gdy chcę obsîugiwaç np. przerwanie? Jednak czegóţ się nie robi, aby w scrollu moţna byîo napisaç z dumć, ţe tego scrolla nikt nie rozpracuje (nawet przy uţyciu Action Replay...). Wszystkie próby prowadziîem na drugiej wersji Action-a. Ewentualne pytania i sugestie proszę kierowaç na adres: B Piotr Ejdys ul. 13 P.P. 3/12 06-100 Puîtusk I Specjalnie dla Zig-Zaga opracowaî I SCORPIO of ATD