Index du Forum
IDENTIFICATION SERVEUR : 51.77.218.153 - CLIENT : 34.226.244.70

 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Marble Madness IIgs (EA, 1987)

 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Dim 10 Jan 2016, 19:01    Sujet du message: Marble Madness IIgs (EA, 1987) Répondre en citant

Go-ahead! Lose your marbles!!! - The game that drove them crazy at the arcades now comes home. Ultimate competition, spectacular animation, intense action and incredible madness!

Protection type
The 3.5" disk is a standard one. You can boot your copy, select the kind of play, etc. But, when it comes to play... "Illegal copy" is displayed where the score is supposed to be drawn.
A disk that can be copied, a program that does ask for a password, then there are hidden nibbles or track sync somewhere, so it's an on-disk protection scheme.

How to copy
Use ZZCopy or Photonix II to copy your disk and put it in a dry and safe place.

Sort of boot trace
If you launch your copy, you will crash to the monitor really soon, the ProDOS splash screen is even visible, that means the protection check is early in the first .SYSTEM file. The DOS8.SYSTEM file is loaded: $2000 -> $21FD -> $20DD to load a file and JSR $3700 inside. It is weird, isn't it?
If you want to hide a protection, don't make it visible by calling it at the end of the loader... So, it is here and is called at $20F3.

You'll note a small bug, you enter in full 16-bit at $20DD but at $20EE, there is a 8-bit accumulator instead of a 16-bit one, we'll correct it in the crack. That means the TCD (opcode $5B at $20F0) is considered as the highest 8-bit of A instead of the TCD opcode...

How to crack
The protection check is in the DOS8.SYSTEM file.
[code]
Launch Block.Warden
Prefix /MUSICGS
Follow DOS8.SYSTEM
At offset $F0, replace 5B E2 30 20 00 37 with 00 5B E2 30 EA 38
Write the block
[code]

The explanations of the protection and the reason of the bytes above are described below. This is the same protection as Activision's GBA Championship Basketball(tm)

The disk image is at http://www.brutaldeluxe.fr/crack/

Reboot and... enjoy,

LoGo
1/2016
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Dim 10 Jan 2016, 19:05    Sujet du message: Répondre en citant

In the loader, this is where the protection is called

Code:

00/20DD: AF852000                   LDAL  $002085         ; LOAD FILE ENTRY     
00/20E1: D004                       BNE   $20E7           ; IN PURE 16-BIT     
00/20E3: 5CB53B02                   JMPL  $023BB5                               
00/20E7: 8B                         PHB                                         
00/20E8: 4B                         PHK                                         
00/20E9: AB                         PLB                                         
00/20EA: 7B                         TDC                                         
00/20EB: 8DFB21                     STA   $21FB                                 
00/20EE: A9005B                     LDA   #$5B00          ; A BUG HERE...       
00/20F1: E230                       SEP   #$30            ; A IS 8-BIT INSTEAD 
00/20F3: 200037                     JSR   $3700           ; CALL THE PROTECTION
00/20F6: B00C                       BCS   $2104           ; ORIGINAL           
00/20F8: 68                         PLA                   ; ...A COPY           
00/20F9: 68                         PLA                                         
00/20FA: 68                         PLA                                         
00/20FB: A900                       LDA   #$00                                 
00/20FD: 48                         PHA                                         
00/20FE: 48                         PHA                                         
00/20FF: 48                         PHA                                         
00/2100: DC0421                     JML   ($2104)                               
00/2103: 00                         DB    $00                                   
00/2104: 18                         CLC                   ; LOAD FILE PLEASE   
00/2105: FB                         XCE                                         
00/2106: C230                       REP   #$30                                 
00/2108: ADFB21                     LDA   $21FB                                 
00/210B: 5B                         TCD                                         
00/210C: 08                         PHP                                         
00/210D: 78                         SEI                                         
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Dim 10 Jan 2016, 19:08    Sujet du message: Répondre en citant

This is the main part of the protection: I set up things, I read twice, I compare values.

Let's compare:
w/an original disk: the carry is set and zero page values $00..$03:3A 1E E6 1F
w/a copy: the carry is clear and zero page values $00..$03:2B 1F E6 1F

The routine below wants a range of $1D80..$1E78 for the first read and a range of $1F40..$2008 for the second read.

If the returned values match the range, then we return with a carry set (not clear)

Code:

00/3700:                            MX    %11                                   
00/3700: 38                         SEC                   ; PROTECTION CHECK   
00/3701: FB                         XCE                                         
00/3702: 200338                     JSR   $3803                                 
00/3705: 0078                       DA    $7800           ; BUFFER             
00/3707: 3F37                       DA    $373F           ; EXIT PTR           
00/3709: 2101                       DW    $0121           ; T/S                 
00/370B: B031                       BCS   $373E                                 
00/370D: 8600                       STX   $00             ; W/ORIGINAL         
00/370F: 8401                       STY   $01             ; $00:3A 1E           
00/3711: E0B0                       CPX   #$B0                                 
00/3713: 98                         TYA                                         
00/3714: E91D                       SBC   #$1D            ; RANGE: $1DB0       
00/3716: 9028                       BCC   $3740                                 
00/3718: E078                       CPX   #$78                                 
00/371A: 98                         TYA                                         
00/371B: E91E                       SBC   #$1E            ; ..$1E78             
00/371D: B023                       BCS   $3742                                 
00/371F: 200338                     JSR   $3803                                 
00/3722: 0078                       DA    $7800           ; BUFFER             
00/3724: 3F37                       DA    $373F           ; EXIT PTR           
00/3726: 2001                       DW    $0120           ; T/S                 
00/3728: B014                       BCS   $373E                                 
00/372A: 8602                       STX   $02             ; W/ORIGINAL         
00/372C: 8403                       STY   $03             ; $02:E6 1F           
00/372E: E040                       CPX   #$40                                 
00/3730: 98                         TYA                                         
00/3731: E91F                       SBC   #$1F            ; RANGE: $1F40       
00/3733: 900B                       BCC   $3740                                 
00/3735: E008                       CPX   #$08                                 
00/3737: 98                         TYA                                         
00/3738: E920                       SBC   #$20            ; ..$2008             
00/373A: B006                       BCS   $3742                                 
00/373C: 38                         SEC                   ; ORIGINAL           
00/373D: 60                         RTS                                         
00/373E: 18                         CLC                   ; COPY               
00/373F: 60                         RTS                                         
00/3740: 18                         CLC                   ; COPY               
00/3741: 60                         RTS                                         
00/3742: 18                         CLC                   ; COPY               
00/3743: 60                         RTS                                         
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Dim 10 Jan 2016, 19:10    Sujet du message: Répondre en citant

This is the Block.Warden view, before and after the change. The bug is corrected, A is now 16-bit and the TCD opcode is used correctly.

See the changes at offset $F0.

Code:

Block: $0381 (897)      Volume name: MUSICGS         Saturday   10-Jan-16  6:42
Prefix: /MUSICGS/                                                               
Following: DOS8.SYSTEM, Type SYS, Rel block 1, Byte $0000F3                     
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 000: 4C FD 21 00 00 00 00 00 00 00 00 00 00 00 00 00   L}!.............   
  b Z 010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
B y Z 020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
L   Z 030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
O G Z 040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
C l Z 050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
K e Z 060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
  n Z 070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
W   Z 080: 00 00 00 00 00 01 00 0D 2F 4D 55 53 49 43 47 53   ......../MUSICGS   
A B Z 090: 2F 43 4F 44 45 13 2F 4D 55 53 49 43 47 53 2F 53   /CODE./MUSICGS/S   
R r Z 0A0: 4F 55 4E 44 52 41 4D 2E 31 13 2F 4D 55 53 49 43   OUNDRAM.1./MUSIC   
D e Z 0B0: 47 53 2F 53 4F 55 4E 44 52 41 4D 2E 32 AD CC 20   GS/SOUNDRAM.2-L   
E d Z 0C0: 8D D6 20 8D CE 20 60 03 03 20 00 33 FE 03 00 00   .V .N `.. .3~...   
N o Z 0D0: 00 01 00 01 00 04 00 00 23 00 10 00 00 AF 85 20   ........#..../.   
  n Z 0E0: 00 D0 04 5C B5 3B 02 8B 4B AB 7B 8D FB 21 A9 00   .P.\5;..K+{.{!).   
    Z 0F0:>5B E2 30 20 00 37<B0 0C 68 68 68 A9 00 48 48 48   [b0 .70.hhh).HHH   

AFTER

Block: $0381 (897)      Volume name: MUSICGS         Saturday   10-Jan-16  6:44
Prefix: /MUSICGS/                                                               
Following: DOS8.SYSTEM, Type SYS, Rel block 1, Byte $0000F0                     
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 000: 4C FD 21 00 00 00 00 00 00 00 00 00 00 00 00 00   L}!.............   
  b Z 010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
B y Z 020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
L   Z 030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
O G Z 040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
C l Z 050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
K e Z 060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
  n Z 070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
W   Z 080: 00 00 00 00 00 01 00 0D 2F 4D 55 53 49 43 47 53   ......../MUSICGS   
A B Z 090: 2F 43 4F 44 45 13 2F 4D 55 53 49 43 47 53 2F 53   /CODE./MUSICGS/S   
R r Z 0A0: 4F 55 4E 44 52 41 4D 2E 31 13 2F 4D 55 53 49 43   OUNDRAM.1./MUSIC   
D e Z 0B0: 47 53 2F 53 4F 55 4E 44 52 41 4D 2E 32 AD CC 20   GS/SOUNDRAM.2-L   
E d Z 0C0: 8D D6 20 8D CE 20 60 03 03 20 00 33 FE 03 00 00   .V .N `.. .3~...   
N o Z 0D0: 00 01 00 01 00 04 00 00 23 00 10 00 00 AF 85 20   ........#..../.   
  n Z 0E0: 00 D0 04 5C B5 3B 02 8B 4B AB 7B 8D FB 21 A9 00   .P.\5;..K+{.{!).   
    Z 0F0:>00 5B E2 30 EA 38<B0 0C 68 68 68 A9 00 48 48 48   .[b0j80.hhh).HHH   
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com