Index du Forum
IDENTIFICATION SERVEUR : 10.14.20.168 - CLIENT : 3.237.94.109

 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 

GBA Championship Basketball IIgs (Activision, 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: 3055
Localisation: Le Chesnay, France

MessagePosté le: Dim 10 Jan 2016, 17:27    Sujet du message: GBA Championship Basketball IIgs (Activision, 1987) Répondre en citant

Six seconds left. Down by two. You steal the ball and pass it to your teammante. You both race down the court. He flips you a quick, behind-the-back pass. The defense closes in. You dribble around your man, turn, shoot and... Yes!!!

OK, OK. That's enough for the introduction. The complete title is GBA Championship Basketball Two-on-Two(tm) by Gamestar, Activision. Pfew!

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.

How to crack
The protection check is in the SOUNDPLAY2 file (and you know what, that is the first file I opened because I was surprized to see two SOUNDPLAY files)
From Basic.System under ProDOS 8:
[code]
]PREFIX /GBA
]BLOAD SOUNDPLAY2
]RENAME SOUNDPLAY2,SOUNDPLAY3
]MTR
*1800:08 AF 56 18 00 E2 30 A2 E4 A0 1F 2C 34 18 B0 00
*181A:A2 36 A0 1E 2C 34 18 B0 00
*BSAVE SOUNDPLAY2,A$1800,L1506
[code]

The explanations of the protection and the reason of the bytes above are described below.

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

Reboot and... enjoy,

LoGo
1/2016


Dernière édition par toinet le Dim 10 Jan 2016, 17:36; édité 1 fois
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: 3055
Localisation: Le Chesnay, France

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

This is part of GBA.LOADER that loads all files before jumping into the game. As we found that the protection lies in SOUNDPLAY2, here is the code that loads it:

Code:

00/0B29: A9 71 14     LDA #1471        ; Load Soundplay2
00/0B2C: 85 16        STA 16                                                   
00/0B2E: A9 FF FF     LDA #FFFF                                                 
00/0B31: 85 14        STA 14                                                   
00/0B33: 20 A3 0D     JSR 0DA3                                                 
00/0B36: 20 00 18     JSR 1800         ; Do the protection check
00/0B39: A9 84 14     LDA #1484                                                 
00/0B3C: 85 16        STA 16                                                   
00/0B3E: A9 FF FF     LDA #FFFF                                                 
00/0B41: 85 14        STA 14                                                   
00/0B43: A9 00 38     LDA #3800                                                 
00/0B46: 85 1C        STA 1C                                                   
00/0B48: 20 A3 0D     JSR 0DA3                                                 
00/0B4B: A9 00 18     LDA #1800                                                 
00/0B4E: 85 1C        STA 1C                                                   
00/0B50: A9 7D 14     LDA #147D                                                 
00/0B53: 85 16        STA 16                                                   
00/0B55: A9 FF FF     LDA #FFFF                                                 
00/0B58: 85 14        STA 14                                                   
00/0B5A: 20 A3 0D     JSR 0DA3                                                 
                                                                               
*                                                                               

IN THE BASIC PROGRAM STARTUP
WE'LL ADD A LINE TO BREAK THE LOADER AFTER THE PROTECTION HAS RUN
AT ADDRESS $B39 WE'LL PUT A BRK
PREFIX /GBA
LOAD STARTUP
25 POKE 2873,0
RUN

ON A COPY, WE GET:
02/2987: FD 1E FD 1E

ON AN ORIGINAL, WE GET:
02/2987: E4 1F 36 1E
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: 3055
Localisation: Le Chesnay, France

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

This is the code of the protection before and after the modification.

The protection is set up at 1856 and run twice. Result values of the protection check in X and Y are stored in bank 2.

Before (I had no hair)
Code:

00/1800:                            ORG   $001800                               
00/1800: 08                         PHP                                         
00/1801: 22561800                   JSL   $001856                               
00/1805: E230                       SEP   #$30                                 
00/1807: A220                       LDX   #$20                                 
00/1809: A001                       LDY   #$01                                 
00/180B: 203418                     JSR   $1834                                 
00/180E: B01F                       BCS   $182F                                 
00/1810: 8A                         TXA                                         
00/1811: 8F872902                   STAL  $022987                               
00/1815: 98                         TYA                                         
00/1816: 8F882902                   STAL  $022988                               
00/181A: A221                       LDX   #$21                                 
00/181C: A001                       LDY   #$01                                 
00/181E: 203418                     JSR   $1834                                 
00/1821: B00C                       BCS   $182F                                 
00/1823: 8A                         TXA                                         
00/1824: 8F892902                   STAL  $022989                               
00/1828: 98                         TYA                                         
00/1829: 8F8A2902                   STAL  $02298A                               
00/182D: 28                         PLP                                         
00/182E: 60                         RTS                                         


After (I have plenty of hair) - Mods are in the comments section
Code:

00/1800:                            ORG   $001800                               
00/1800: 08                         PHP                                         
00/1801: 22561800                   JSL   $001856         ; LDAL               
00/1805: E230                       SEP   #$30                                 
00/1807: A220                       LDX   #$20            ; <= E4               
00/1809: A001                       LDY   #$01            ; <= 1F               
00/180B: 203418                     JSR   $1834           ; BIT                 
00/180E: B01F                       BCS   $182F           ; BCS *+0             
00/1810: 8A                         TXA                                         
00/1811: 8F872902                   STAL  $022987                               
00/1815: 98                         TYA                                         
00/1816: 8F882902                   STAL  $022988                               
00/181A: A221                       LDX   #$21            ; <= 36               
00/181C: A001                       LDY   #$01            ; <= 1E               
00/181E: 203418                     JSR   $1834           ; BIT                 
00/1821: B00C                       BCS   $182F           ; BCS *+0             
00/1823: 8A                         TXA                                         
00/1824: 8F892902                   STAL  $022989                               
00/1828: 98                         TYA                                         
00/1829: 8F8A2902                   STAL  $02298A                               
00/182D: 28                         PLP                                         
00/182E: 60                         RTS                                         


Dernière édition par toinet le Dim 10 Jan 2016, 17:39; édité 2 fois
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: 3055
Localisation: Le Chesnay, France

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

And this is where the values are checked in the game...

Code:

THERE IS A BIG FILE "GBA". IT IS THE GAME ENGINE.
A ROUTINE AT 309D CHECKS THE VALUES READ BY THE DISK...

00/309D: 9C8C5E                     STZ   $5E8C                                 
00/30A0: 08                         PHP                                         
00/30A1: C230                       REP   #$30                                 
00/30A3: AF872902                   LDAL  $022987                               
00/30A7: C9401F                     CMP   #$1F40                               
00/30AA: 9015                       BCC   $30C1                                 
00/30AC: C90920                     CMP   #$2009                               
00/30AF: B010                       BCS   $30C1                                 
00/30B1: AF892902                   LDAL  $022989                               
00/30B5: C9B01D                     CMP   #$1DB0                               
00/30B8: 9007                       BCC   $30C1                                 
00/30BA: C9791E                     CMP   #$1E79                               
00/30BD: B002                       BCS   $30C1                                 
00/30BF: 28                         PLP                                         
00/30C0: 60                         RTS                                         
00/30C1: E230                       SEP   #$30                                 
00/30C3: 4C555B                     JMP   $5B55                                 

IT JUMPS TO 5B55 IF THE VALUES ARE NOT IN THE ORIGINAL RANGE

00/5B55: 78 20 4D 50 20 F6 4F 35 20 49 4C 4C 45 47 41 4C    x MP vO5 ILLEGAL   
00/5B65: 20 43 4F 50 59 20 20 C2 30 A9 00 02 85 10 64 12     COPY  B0)....d.   
00/5B75: A9 78 59 20 CF 5B A9 E6 5B 85 10 A9 1A 54 20 CF    )xY O[)f[..).T O   
00/5B85: 5B 64 10 A9 01 00 85 12 A9 00 20 20 CF 5B A9 20    [d.)....).  O[)     
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