Microzine8

From DaphneWiki

Jump to: navigation, search

Contents

Microzine #8 (Zazoo)

The copy of Microzine #8 which I have access to uses a very similar copy protection scheme as Microzine #19 (and #17) does.

Recovering the data

The disk has non-standard formatting but can still be read properly as long as a copy program ignores non-fatal errors. To copy the disk,

  1. Boot a DOS 3.3 system master disk
  2. type the following at the BASIC prompt:
    1. "call -151"
    2. "b942: 18"
    3. "RUN COPYA"
  3. copy the microzine disk to a duplicate

The Copy Protection Routine

I cracked this disk after having cracked #19 and if you read what I wrote for microzine19 you'll remember that the copy protection routine is stored in a small file called W.SPC . By chance I happened to catalog the disk before attempting to crack it and found W.SPC, so I was suspicious. I located its track/sector number using Copy ][+'s Disk Mapping feature, and then went to that spot and sure enough, there was the copy protection routine.

Here is the relevant code:

00/9000: 20 e3 03       JSR     $03e3
00/9003: 85 fb          STA     $fb
00/9005: 84 fa          STY     $fa
00/9007: a9 c5          LDA     #$c5
00/9009: 48             PHA
00/900a: a9 00          LDA     #$00
00/900c: 85 fc          STA     $fc
00/900e: a2 03          LDX     #$03
00/9010: bc 35 90       LDY     $9035,X
00/9013: 91 fa          STA     ($fa),Y
00/9015: ca             DEX
00/9016: 10 f8          BPL     $9010
00/9018: 8a             TXA
00/9019: 48             PHA
00/901a: 20 28 90       JSR     $9028
00/901d: a0 01          LDY     #$01
00/901f: b1 fa          LDA     ($fa),Y
00/9021: aa             TAX
00/9022: 20 39 90       JSR     $9039
00/9025: 68             PLA
00/9026: 68             PLA
00/9027: 60             RTS
00/9028: 20 e3 03       JSR     $03e3
00/902b: 20 d9 03       JSR     $03d9
00/902e: a9 00          LDA     #$00
00/9030: 85 48          STA     $48
00/9032: b0 52          BCS     $9086
00/9034: 60             RTS

The nibble check is at $9039.

00/9039: bd 89 c0       LDA     $c089,X
00/903c: a9 56          LDA     #$56
00/903e: 85 fd          STA     $fd
00/9040: a9 08          LDA     #$08
00/9042: c6 fc          DEC     $fc
00/9044: d0 04          BNE     $904a
00/9046: c6 fd          DEC     $fd
00/9048: f0 3c          BEQ     $9086
00/904a: bc 8c c0       LDY     $c08c,X
00/904d: 10 fb          BPL     $904a
00/904f: c0 fb          CPY     #$fb
00/9051: d0 ed          BNE     $9040
00/9053: f0 00          BEQ     $9055
00/9055: ea             NOP
00/9056: ea             NOP
00/9057: bc 8c c0       LDY     $c08c,X
00/905a: c0 08          CPY     #$08
00/905c: 2a             ROL
00/905d: b0 0b          BCS     $906a
00/905f: bc 8c c0       LDY     $c08c,X
00/9062: 10 fb          BPL     $905f
00/9064: c0 ff          CPY     #$ff
00/9066: d0 d8          BNE     $9040
00/9068: f0 eb          BEQ     $9055
00/906a: bc 8c c0       LDY     $c08c,X
00/906d: 10 fb          BPL     $906a
00/906f: 84 fc          STY     $fc
00/9071: c9 0a          CMP     #$0a
00/9073: d0 cb          BNE     $9040
00/9075: bd 8c c0       LDA     $c08c,X
00/9078: 10 fb          BPL     $9075
00/907a: 38             SEC
00/907b: 2a             ROL
00/907c: 25 fc          AND     $fc
00/907e: 49 ff          EOR     #$ff
00/9080: d0 04          BNE     $9086
00/9082: dd 88 c0       CMP     $c088,X
00/9085: 60             RTS
00/9086: a8             TAY
00/9087: dd 88 c0       CMP     $c088,X
00/908a: 68             PLA
00/908b: 68             PLA
00/908c: 99 00 90       STA     $9000,Y
00/908f: c8             INY
00/9090: c0 8b          CPY     #$8b
00/9092: d0 f8          BNE     $908c
00/9094: 60             RTS

If the nibble check passes, it goes to $9082, otherwise it ends up at $9086 on failure.

This is very similar to the Microzine #19 code except the JSR to the nibble checker goes to $9039 (at $9022) instead of $9073.

The Crack

I will use the same method I used for #19 and change the JSR at $9022 to a LDA.

With a sector editor

Search for "20 39 90 68 68". I found mine on track $2, sector $2, byte $26. Simply change the $20 to an $AD and the copy protection will be bypassed.

Personal tools