Jump to content
IGNORED

Barbarian 2 by Palace interesting copy prot.


Recommended Posts

Did not see such protection, even if saw really plenty of them. Copy protection self is Rob Northen Copylock, early version. What is interesting is that disks are actually FAT12 with regular files, but all it is encrypted, so can not see anything of files when looking with some hex viewer for instance. 

Game code self using regular Trap #1 calls for file access, but there is shorter decrypt code, hooked to RWABS (trap #13  4), what restores normal floppy content. Of course, it will be good only when copy protection is passed, which is encrypted too.

 

The decrypt code self:

  * Barbarian 2 Palace
  * RWABS for floppy decrypter code


   org  $300


	movem.l d0-4/a0/a6,-(a7)                         ; 000300: 48E7 F882 
	lea 34(a7),a6                                    ; 000304: 4DEF 0022 
	btst #$d,28(a7)                                  ; 000308: 082F 000D 001C 
	bne.s l312                               	 ; 00030E: 6602 
	move usp,a6                                      ; 000310: 4E6E 
l312	cmpi.w #$4,(a6)                                  ; 000312: 0C56 0004 
	bne.s l374                          		 ; 000316: 665C 
	btst #$0,3(a6)                    * odd address ?; 000318: 082E 0000 0003 
	beq.s l33E                           		 ; 00031E: 671E 

	bsr.s l380                            		 ; 000320: 615E 
l322	move.l $7c,d3                                    ; 000322: 2639 0000 007C 
	add.w d2,d3                                      ; 000328: D642 
	moveq #127,d0                                    ; 00032A: 707F 
l32C	bsr.s  l38E                             	 ; 00032C: 6160 
	move.l (a0),d4                                   ; 00032E: 2810 
	sub.l d3,(a0)+                                   ; 000330: 9798 
	add.l d4,d3                                      ; 000332: D684 
	dbra d0,l32C                      		 ; 000334: 51C8 FFF6 
	addq.w #1,d2                                     ; 000338: 5242 
	subq.w #1,d1                                     ; 00033A: 5341 
	bne.s l322                         		 ; 00033C: 66E4 
l33E	lea 14(a6),a0                                    ; 00033E: 41EE 000E 
	moveq #6,d0                                      ; 000342: 7006 
l344	move.w -(a0),-(a7)                               ; 000344: 3F20 
	dbra d0,l344                         		 ; 000346: 51C8 FFFC 
	trap #15                                         ; 00034A: 4E4F 
	lea 14(a7),a7                                    ; 00034C: 4FEF 000E 
	move.l d0,(a7)                                   ; 000350: 2E80 
	bsr.s l380                           		 ; 000352: 612C 
l354	move.l $7c,d3                                    ; 000354: 2639 0000 007C 
	add.w d2,d3                                      ; 00035A: D642 
	moveq #127,d0                                    ; 00035C: 707F 
l35E	bsr.s  l38E                             	 ; 00035E: 612E 
	add.l d3,(a0)                                    ; 000360: D790 
	add.l (a0)+,d3                                   ; 000362: D698 
	dbra d0,-l35E                           	 ; 000364: 51C8 FFF8 
	addq.w #1,d2                                     ; 000368: 5242 
	subq.w #1,d1                                     ; 00036A: 5341 
	bne.s l354                         		 ; 00036C: 66E6 
	movem.l (a7)+,d0-4/a0/a6                         ; 00036E: 4CDF 411F 
	rte                                              ; 000372: 4E73 

l374	movem.l (a7)+,d0-4/a0/a6                         ; 000374: 4CDF 411F 
	move.l $bc,-(a7)                                 ; 000378: 2F39 0000 00BC 
	rts    * ret via trap #15 what goes via trap #13 vector

                                         
l380	move.w 10(a6),d2                                 ; 000380: 342E 000A 
	move.w 8(a6),d1                                  ; 000384: 322E 0008 
	movea.l 4(a6),a0                                 ; 000388: 206E 0004 
	rts                                              ; 00038C: 4E75 

l38E	lsl.l #1,d3                                      ; 00038E: E38B 
	btst #$1,d3                                      ; 000390: 0803 0001 
	beq.s l39E                               	 ; 000394: 6708 
	btst #$15,d3                                     ; 000396: 0803 0015 
	beq.s l3A4                               	 ; 00039A: 6708 
	bra.s l3A6                            	 	 ; 00039C: 6008 
l39E	btst #$15,d3                                     ; 00039E: 0803 0015 
	beq.s l3A6                           		 ; 0003A2: 6702 
l3A4	addq.l #1,d3                                     ; 0003A4: 5283 
l3A6	rts                                              ; 0003A6: 4E75 

At address $7C decrypt key value is placed, and if it is set properly, + vectors for trap #13 and #15 too,  files can be accessed and copied.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...