Retro Game & PC/매뉴얼 팁 작업

Apple2 Basic Code Protection

smores 2023. 12. 13. 01:19

여러가지 방법이 있다고...

 

apple2 basic code protection methods.txt
0.01MB
apple2_protection.pdf
13.94MB

 

 

 

그 중 간단한 방법 한가지로는 다음과 같이 프로그램을 작성하고

 

 

 

XX 에 해당하는 부분을 CHR$(13), CHR$(4) (=ctrl-M, ctrl-D) 로 바꿔주는 것이다. 그러면 로드 후 LIST 명령으로 내용을 보려고 하면 리부트가 되서 리스트를 볼 수 없다. 

 

해당 XX 를 바꾸기 위해서는 BASIC 코드가 시작하는 부분을 알아야 하는데, Applesoft Basic 은 $800 (=2048) 에서 시작한다. 그리고 위의 10번 라인 내용을 찾아가 보면  $807, $808 번지에 X 가 들어가 있다. (20 58 58 의 58 이 X 에 해당)

 

 

즉, 프로그램을 만들고 난 후 저장하기 전 베이식 프롬프트에서 

 

POKE 2055,13: POKE 2056,4

 

를 한번 해 주고 저장하면 된다. 그리고 LIST 를 하면 리부트가 된다. 리부트 되고 나면 로드된 프로그램이 없어지니 다시 리스트를 해도 아무것도 없다. 그냥 로드 후 실행하면 실행은 잘 된다.

 

 

 

apple2 basic code protection example

 

 

하지만 이 방법을 알 경우 로드 후 10번 comment 문장만 날려버리면 뒤를 다 볼 수 있다. ^^;;

 

어쨌거나 이런 방법의 경우 REM 문장 내에 미리 충분한 글자를 넣어서 공간을 확보하고 거기에 기계어 코드를 따로 넣거나 하는 식으로 꼼수를 쓸 방법이 많을 듯 하다. 나중에 앞에 갈무리해 놓은 글의 다양한 방법도 시간이 나면 한번 공부해 보나 싶다. (재미있다고 돈도 안되는 이 짓을 왜 하고 있는지... ㅠㅠ)