제2장 프로텍트 패턴 공략 – 큐브 러너

프로텍트 타입에 관하여

우선은 큐브 러너에 걸려있는 프로텍트입니다만, 우선은 애널라이저로 살펴봅시다. 프로텍트가 걸려있는 트랙은 153 트랙입니다.

Drive 1 Track 153
Track Lenght = 28E4(10468)
Number of Preamble = 00A2 Bytes
MFM C  H  R  N  BYTES    MFM C  H  R  N  BYTES 
  1 4C 01 01 03 00AC      18 4C 01 0D 01 011C
  2 4C 01 01 01 0123      19 4C 01 0E 01 012E
  3 4C 01 02 01 011D      20 4C 01 0F 01 0127
  4 4C 01 03 01 0127      21 4C 01 06 03 00AA
  5 4C 01 02 03 00AD      22 4C 01 10 01 0120
  6 4C 01 04 01 012D      23 4C 01 11 01 0128
  7 4C 01 05 01 0124      24 4C 01 12 01 012E
  8 4C 01 06 01 011E      25 4C 01 07 03 00A7
  9 4C 01 03 03 00A8      26 4C 01 13 01 0129
 10 4C 01 07 01 012D      27 4C 01 14 01 0121
 11 4C 01 08 01 0126      28 4C 01 15 01 0128
 12 4C 01 09 01 0129      29 4C 01 08 03 00AE
 13 4C 01 04 03 09A1      30 4C 01 16 01 0126
 14 4C 01 0A 01 0129      31 4C 01 17 01 0127
 15 4C 01 0B 01 012D      32 4C 01 18 01 011C
 16 4C 01 0C 01 0125      33 4C 01 19 01 012C
 17 4C 01 05 03 00AB      34 4C 01 1A 01 06C9

그런데, 이 프로텍트의 특징이라고 하면 “길이 3인 섹터가 8개와 길이 1인 섹터 26개의 혼합 길이인데 모든 섹터를 에러없이 읽을 수 있다”는 것입니다. 실은 이 에러가 없다는 것이 요상한 점입니다. 에러가 없디면 그냥 백업 가능할 것 같지만 이 섹터들을 전부 쓰려고 하면 트랙 1개를 오버해버립니다. 또, 애널라이즈 결과의 길이 3인 섹터(1, 5, 9, 13, 17, 21, 25, 29번)의 바이트 수를 보면 $AA정도로 되어있으나 본래라면 $400 보다 커야만 합니다. 다시말해, 섹터들이 잘 겹쳐져 CRC가 맞는 것처럼 만들어져있습니다.

그러므로 평범히 백업하려고하면 실패하는 것입니다. 오토 대책“오토”란 X68000 소프트웨어에서 흔히 사용된 카피 프로텍션 유형 중 하나로, 디스크 삽입 시 IPL(Initial Program Loader)을 통해 프로그램이 자동으로 로드되고 실행되는 “오토 스타트” 방식을 의미에 중점을 둔 프로텍트입니다.

그러고 보면 전에 “화투방랑기(花札放浪記)”가 있었습니다만 이것도 에러를 내지 않지만 트랙 1개 오버하는 타입이었습니다. 그것과 비슷한 느낌입니다. 한편 체커 쪽에서는 무엇을 체크하는가 하면 무려 “섹터를 전부 정상으로 읽을 수 있다”는 것 밖에 체크하지 않습니다. 데이터의 내용은 전혀 무시하고 있는듯합니다.

그런데, 오토가 나온다고 하면 역시 “포뮬러”입니다. 그런 고로 포뮬러로 백업해봤습니다만・・・어이쿠, 깰 수 없었습니다. 일단 5번 정도 시험해봤지만 어떻게해도 CRC에러가 나와버렸습니다. 일단 포뮬러로 백업한 디스크의 애널라이즈 결과는 다음과 같습니다.

Drive 1 Track 153
Track Lenght = 28E4(10468)
Number of Preamble = 00A2 Bytes
MFM C  H  R  N  BYTES STATUS   MFM C  H  R  N  BYTES STATUS
  1 4C 01 01 03 00A9  DATA CRC  18 4C 01 0D 01 0120
  2 4C 01 01 01 0125            19 4C 01 0E 01 0118
  3 4C 01 02 01 011C            20 4C 01 0F 01 011F
  4 4C 01 03 01 0116            21 4C 01 06 03 00A8  DATA CRC
  5 4C 01 02 03 00A3  DATA CRC  22 4C 01 10 01 011F
  6 4C 01 04 01 0126            23 4C 01 11 01 0120
  7 4C 01 05 01 0124            24 4C 01 12 01 0113
  8 4C 01 06 01 011C            25 4C 01 07 03 00A8  DATA CRC
  9 4C 01 03 03 00A6  DATA CRC  26 4C 01 13 01 0125
 10 4C 01 07 01 0112            27 4C 01 14 01 011D
 11 4C 01 08 01 0125            28 4C 01 15 01 0116
 12 4C 01 09 01 011E            29 4C 01 08 03 00A3  DATA CRC
 13 4C 01 04 03 00A6  DATA CRC  30 4C 01 16 01 0124
 14 4C 01 0A 01 0116            31 4C 01 17 01 0126
 15 4C 01 0B 01 0116            32 4C 01 18 01 011D
 16 4C 01 0C 01 0125            33 4C 01 19 01 0117
 17 4C 01 05 03 00A1  DATA CRC  34 4C 01 1A 01 07C4

댓글 남기기