Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.129 - CLIENT : 54.80.247.119

 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 

Test Drive II "The duel" IIgs (Accolade, 1989)

 
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: 2928
Localisation: Le Chesnay, France

MessagePosté le: Mar 26 Jan 2016, 22:30    Sujet du message: Test Drive II "The duel" IIgs (Accolade, 1989) Répondre en citant

#717 - Head-to-head racing with the world's fastest production cars! Accolade's top-speed shootout (to be honest, not on the IIgs. C compiled games are not so reactive)

Protection type
The same early protection type used by Mindscape and Electronic Arts: count your nibbles (the length of two tracks) and if not within the authorized range then we know we have a copy.

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

Some sort of boot trace
That one was annoying because some segments are at fixed memory location, others are dynamically loaded. But, as the original disk was copiable but the copy failed to work (and after some games, you know there is no password off-disk protection), you may guess that you are in front of the usual on-disk protection check. And what was common since we face that count protection? A jump to subroutine long address in bank 0, always at a fixed low address, eg. JSL $009000, JSL $009900, JSL $00xx00.
So... I searched for the 22 00 pattern and found it in segment 6 (master), then I reverse boot-traced the calls (real addresses given):
- 03/FC76 <- 03/C540 <- 03/C4E3
There are three calls to $03/C4E3 meaning there are three calls to the protection check:
- in segment 7 (CPART2) at segment offset $2F93
- in segment 5 (INSTALL) at segment offsets $2F56 & $2FAE
This time, instead of replacing the JSL with a LDAL three times, I've decided to put a RTL at the beginning of the routine at real address $03/C4E3

Note for those who want to crack the 5.25" version of the game. It is a 18-sec protection Wink

How to crack
Launch Block.Warden
Prefix /TD2.MASTER
Follow file TD2.SYS16
At offset $11728: 08 -> 6B
Write the block back onto disk.

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

Reboot and... enjoy,

LoGo
1/2016


Dernière édition par toinet le Mar 26 Jan 2016, 22:34; é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: 2928
Localisation: Le Chesnay, France

MessagePosté le: Mar 26 Jan 2016, 22:31    Sujet du message: Répondre en citant

The code of the different calls from the protection to the main entry point called three times.

One interesting thing to note is that, with a copy, the value #$D000 is stored in memory. After a deeper analysis, that variable is used to set the direct page address to the game. A condition of failure!!!!!

Code:

The Flaming Bird Disassembler    Written by Ferox - (c) 1994 Phoenix corporation
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
03/FC31: 00                         DB    $00                                   
03/FC32: 08                         PHP                   ; ENTRY POINT         
03/FC33: 0B                         PHD                                         
03/FC34: 8B                         PHB                                         
03/FC35: 4B                         PHK                                         
03/FC36: AB                         PLB                                         
03/FC37: 2041FC                     JSR   $FC41           ; Prepare the install
03/FC3A: 2060FC                     JSR   $FC60           ; Copy the protection
03/FC3D: AB                         PLB                                         
03/FC3E: 2B                         PLD                                         
03/FC3F: 28                         PLP                                         
03/FC40: 6B                         RTL                                         
03/FC41: 204FFC                     JSR   $FC4F                                 
03/FC44: A90023                     LDA   #$2300                               
03/FC47: 85E6                       STA   $E6                                   
03/FC49: A00000                     LDY   #$0000                               
03/FC4C: 84E8                       STY   $E8                                   
03/FC4E: 60                         RTS                                         
03/FC4F: 78                         SEI                                         
03/FC50: A6E2                       LDX   $E2                                   
03/FC52: A4E4                       LDY   $E4                                   
03/FC54: A90023                     LDA   #$2300                               
03/FC57: 18                         CLC                                         
03/FC58: 692001                     ADC   #$0120          ; $2420
03/FC5B: 8D74FC                     STA   $FC74                                 
03/FC5E: 5B                         TCD                                         
03/FC5F: 60                         RTS                                         
03/FC60: A2A49D                     LDX   #$9DA4          ; source
03/FC63: 18                         CLC                                         
03/FC64: A5E6                       LDA   $E6                                   
03/FC66: 692002                     ADC   #$0220                               
03/FC69: 8D8AFC                     STA   $FC8A           ; $2520
03/FC6C: A8                         TAY                   ; destination
03/FC6D: A9FE02                     LDA   #$02FE          ; length
03/FC70: 540003                     MVN   $030000,$000000 ; from bank 3 to 0
03/FC73: 60                         RTS                                         
03/FC74: 0000                       BRK   $00                                   
03/FC76: 08                         PHP                   ; This one calls it! 
03/FC77: 0B                         PHD                   ; So, from where is it called?
03/FC78: 8B                         PHB                                         
03/FC79: C230                       REP   #$30                                 
03/FC7B: 4B                         PHK                                         
03/FC7C: AB                         PLB                                         
03/FC7D: 3B                         TSC                                         
03/FC7E: 18                         CLC                                         
03/FC7F: 690800                     ADC   #$0008                               
03/FC82: A8                         TAY                                         
03/FC83: AD74FC                     LDA   $FC74           ; stack pointer
03/FC86: 5B                         TCD                                         
03/FC87: 84E0                       STY   $E0             ; save some room
03/FC89: 22002300                   JSL   $002300         ; does not really call $2300
03/FC8D: C230                       REP   #$30                                 
03/FC8F: AB                         PLB                                         
03/FC90: 2B                         PLD                                         
03/FC91: 28                         PLP                                         
03/FC92: 6B                         RTL                                         

---

The parent call that calls $FC76 - We read the data

The Flaming Bird Disassembler    Written by Ferox - (c) 1994 Phoenix corporation
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
03/C540: 8E5FC5                     STX   $C55F           ; Save source data
03/C543: 8C60C5                     STY   $C560                                 
03/C546: 5A                         PHY                                         
03/C547: DA                         PHX                                         
03/C548: F40300                     PEA   $0003                                 
03/C54B: F46DC5                     PEA   $C56D                                 
03/C54E: 2276FC03                   JSL   $03FC76         ; Read disk please                     
03/C552: 8D61C5                     STA   $C561           ; Store result
03/C555: 68                         PLA                                         
03/C556: 68                         PLA                                         
03/C557: 68                         PLA                                         
03/C558: 68                         PLA                                         
03/C559: 68                         PLA                                         
03/C55A: 68                         PLA                                         
03/C55B: AD61C5                     LDA   $C561           ; Pull result
03/C55E: 60                         RTS                                         
03/C55F: 20                         DB    $20                                   
03/C560: 01                         DB    $01                                   
03/C561: 00                         DB    $00                                   
03/C562: 5444324D41                 ASC   'TD2MASTER'                           
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
:_                                                                             

Parent call that calls $C540 - We analyze the results

The Flaming Bird Disassembler    Written by Ferox - (c) 1994 Phoenix corporation
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
03/C4E3: 08                         PHP                   ; Main prot check     
03/C4E4: C230                       REP   #$30                                 
03/C4E6: 5A                         PHY                                         
03/C4E7: 8B                         PHB                                         
03/C4E8: 4B                         PHK                                         
03/C4E9: AB                         PLB                                         
03/C4EA: 9C97C5                     STZ   $C597           ; Nibble length       
03/C4ED: E230                       SEP   #$30                                 
03/C4EF: A220                       LDX   #$20                                 
03/C4F1: A001                       LDY   #$01                                 
03/C4F3: 2040C5                     JSR   $C540           ; Read track         
03/C4F6: 8E97C5                     STX   $C597                                 
03/C4F9: 8C98C5                     STY   $C598                                 
03/C4FC: C230                       REP   #$30                                 
03/C4FE: AD97C5                     LDA   $C597           ; compare length     
03/C501: C96C20                     CMP   #$206C                               
03/C504: 9029                       BCC   $C52F                                 
03/C506: C90221                     CMP   #$2102                               
03/C509: B024                       BCS   $C52F                                 
03/C50B: E230                       SEP   #$30                                 
03/C50D: A221                       LDX   #$21                                 
03/C50F: A001                       LDY   #$01                                 
03/C511: 2040C5                     JSR   $C540           ; Read track         
03/C514: 8E97C5                     STX   $C597                                 
03/C517: 8C98C5                     STY   $C598                                 
03/C51A: C230                       REP   #$30                                 
03/C51C: AD97C5                     LDA   $C597           ; compare length     
03/C51F: C9B01D                     CMP   #$1DB0                               
03/C522: 900B                       BCC   $C52F                                 
03/C524: C9781E                     CMP   #$1E78                               
03/C527: B006                       BCS   $C52F                                 
03/C529: C230                       REP   #$30                                 
03/C52B: AB                         PLB                   ; We're good         
03/C52C: 7A                         PLY                                         
03/C52D: 28                         PLP                                         
03/C52E: 6B                         RTL                                         
03/C52F: C230                       REP   #$30            ; We're bad!         
03/C531: A900D0                     LDA   #$D000                               
03/C534: 8FAB3502                   STAL  $0235AB         ; This is the DP pointer used later in the game
03/C538: AB                         PLB                   ; If the copy crashes, don't
03/C539: 7A                         PLY                   ; be surprized!!!!
03/C53A: 28                         PLP                                         
03/C53B: 6B                         RTL                                         


Dernière édition par toinet le Mar 26 Jan 2016, 22: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: 2928
Localisation: Le Chesnay, France

MessagePosté le: Mar 26 Jan 2016, 22:32    Sujet du message: Répondre en citant

The Block.Warden view before and after the change marked between > and <

Code:

Block: $016E (366)      Volume name: TD2MASTER       Monday     26-Jan-16  2:48
Prefix: /TD2MASTER/                                                             
Following: TD2.SYS16, Type S16, Rel block 140, Byte $011728                     
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 100: AA 20 2A C3 68 8F AE C3 03 68 8F B0 C3 03 68 8F   * *Ch..C.h.0C.h.   
  b Z 110: B2 C3 03 7A 6B 8B 4B AB A2 1E 00 BD 0B D1 9F 00   2C.zk.K+"..=.Q..   
B y Z 120: 9E E1 CA CA 10 F5 AB 6B>08<C2 30 5A 8B 4B AB 9C   .aJJ.u+k.B0Z.K+.   
L   Z 130: 97 C5 E2 30 A2 20 A0 01 20 40 C5 8E 97 C5 8C 98   .Eb0"  . @E..E..   
O G Z 140: C5 C2 30 AD 97 C5 C9 6C 20 90 29 C9 02 21 B0 24   EB0-.EIl .)I.!0$   
C l Z 150: E2 30 A2 21 A0 01 20 40 C5 8E 97 C5 8C 98 C5 C2   b0"! . @E..E..EB   
K e Z 160: 30 AD 97 C5 C9 B0 1D 90 0B C9 78 1E B0 06 C2 30   0-.EI0...Ix.0.B0   
  n Z 170: AB 7A 28 6B C2 30 A9 00 D0 8F AB 35 02 AB 7A 28   +z(kB0).P.+5.+z(   
W   Z 180: 6B E2 30 00 00 8E 5F C5 8C 60 C5 5A DA F4 03 00   kb0..._E.`EZZt..   
A B Z 190: F4 6D C5 22 76 FC 03 8D 61 C5 68 68 68 68 68 68   tmE"v|..aEhhhhhh   
R r Z 1A0: AD 61 C5 60 20 01 00 54 44 32 4D 41 53 54 45 52   -aE` ..TD2MASTER   
D e Z 1B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
E d Z 1C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
N o Z 1D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C2 30   ..............B0   
  n Z 1E0: F1 B4 09 00 00 F2 81 00 00 00 2A 00 22 00 1C 00   q4...r....*."...   
    Z 1F0: 18 00 15 00 13 00 11 00 0F 00 0E 00 0D 00 0C 00   ................   
                                                                               
Arrows move cursor, ESC for command mode, \ = flip, ^F = find (RTN to cancel), 
^S = search, ^X = cancel chg, TAB = toggle hex/ascii, A for hi bit.             

Block: $016E (366)      Volume name: TD2MASTER       Monday     26-Jan-16  2:49
Prefix: /TD2MASTER/                                                             
Following: TD2.SYS16, Type S16, Rel block 140, Byte $011728                     
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 100: AA 20 2A C3 68 8F AE C3 03 68 8F B0 C3 03 68 8F   * *Ch..C.h.0C.h.   
  b Z 110: B2 C3 03 7A 6B 8B 4B AB A2 1E 00 BD 0B D1 9F 00   2C.zk.K+"..=.Q..   
B y Z 120: 9E E1 CA CA 10 F5 AB 6B>6B<C2 30 5A 8B 4B AB 9C   .aJJ.u+kkB0Z.K+.   
L   Z 130: 97 C5 E2 30 A2 20 A0 01 20 40 C5 8E 97 C5 8C 98   .Eb0"  . @E..E..   
O G Z 140: C5 C2 30 AD 97 C5 C9 6C 20 90 29 C9 02 21 B0 24   EB0-.EIl .)I.!0$   
C l Z 150: E2 30 A2 21 A0 01 20 40 C5 8E 97 C5 8C 98 C5 C2   b0"! . @E..E..EB   
K e Z 160: 30 AD 97 C5 C9 B0 1D 90 0B C9 78 1E B0 06 C2 30   0-.EI0...Ix.0.B0   
  n Z 170: AB 7A 28 6B C2 30 A9 00 D0 8F AB 35 02 AB 7A 28   +z(kB0).P.+5.+z(   
W   Z 180: 6B E2 30 00 00 8E 5F C5 8C 60 C5 5A DA F4 03 00   kb0..._E.`EZZt..   
A B Z 190: F4 6D C5 22 76 FC 03 8D 61 C5 68 68 68 68 68 68   tmE"v|..aEhhhhhh   
R r Z 1A0: AD 61 C5 60 20 01 00 54 44 32 4D 41 53 54 45 52   -aE` ..TD2MASTER   
D e Z 1B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
E d Z 1C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
N o Z 1D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C2 30   ..............B0   
  n Z 1E0: F1 B4 09 00 00 F2 81 00 00 00 2A 00 22 00 1C 00   q4...r....*."...   
    Z 1F0: 18 00 15 00 13 00 11 00 0F 00 0E 00 0D 00 0C 00   ................   
                                                                               
Arrows move cursor, ESC for command mode, \ = flip, ^F = find (RTN to cancel), 
^S = search, ^X = cancel chg, TAB = toggle hex/ascii, A for hi bit.             
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