Index du Forum
IDENTIFICATION SERVEUR : 51.83.10.223 - CLIENT : 3.214.224.224

 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 

Shadowgate IIgs (Mindscape, 1988)

 
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: Sam 09 Avr 2016, 20:57    Sujet du message: Shadowgate IIgs (Mindscape, 1988) Répondre en citant

#832 - By ICOM Simulations, Inc. - Enter Shadowgate's diabolical fantasy world filled with dragons, demons, wizards, trolls and more than a little mayhem. A tangled web of intrigue draws you in, until it's too late and you're trapped. Like Deja vu and Uninvited before it, Shadowgate has earned the praises of game players everywhere.

Protection type
This is a bad block check on disk 2, the disk of the program. The difference with the other titles is that there are multiple calls of the protection check in the code, seven in that game.

How to copy
Use ZZCopy or Photonix II to copy both disks. Then, store them in a dry and safe place.

Let's dig into the code
As usual, we get a compiled program. For once, code and data are in the same segment (segment 2 of program file SHADOWGATE). We search for the string pattern "original program" and we find it at $3D7B. Used by a routine at $3D53. This code is executed if the accumulator contains #$80, the entry point of the alert routine is at $3AFB.
Now, we search for the pattern A9 80 00 20 FB 3A (LDA #$0080 / JSR $3AFB) in the code and we find numerous calls, not only one.
As you can see in the next messages, there is an init of the protection, a call to it and then a comparison with value at $BEBB (default and fixed value of #$0021), we return with the carry clear (we know that because the last call of the protection is to dispose memory, so we'll get the carry set only if we have a Memory Manager error, otherwise it is clear).
As there are numerous calls to the protection, we'll change some bytes at the entry point of the protection (at $E755) and return #$20 in the accumulator and the carry clear.

How to crack
Launch Block.Warden and...
Code:

Prefix /SHADOWGATE
Follow file SHADOWGATE
At offset $DA8D: 18 FB C2 30 0B -> A9 21 00 18 6B


The disk images are at http://www.brutaldeluxe.fr/crack/

Reboot and... enjoy,

LoGo
4/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: Sam 09 Avr 2016, 20:58    Sujet du message: Répondre en citant

And some code...

Code:

Please insert the original disk, you evil pirate!
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
02/3D53: 48                         PHA                                         
02/3D54: F41500                     PEA   $0015                                 
02/3D57: F44600                     PEA   $0046                                 
02/3D5A: F40200                     PEA   ^$3D7B                               
02/3D5D: F47B3D                     PEA   $3D7B                                 
02/3D60: F40200                     PEA   ^$3D8D                               
02/3D63: F48D3D                     PEA   $3D8D                                 
02/3D66: F40200                     PEA   ^$3E6D                               
02/3D69: F46D3E                     PEA   $3E6D                                 
02/3D6C: F40200                     PEA   ^$C521                               
02/3D6F: F421C5                     PEA   $C521                                 
02/3D72: A201112200                 _TLMountVolume                             
02/3D79: 68                         PLA                                         
02/3D7A: 60                         RTS                                         
02/3D7B: 11506C6561                 STR   'Please insert the'                   
02/3D8D: 166F726967                 STR   'original program disk.'             
02/3DA4: A00100                     LDY   #$0001                               
02/3DA7: A904C2                     LDA   #$C204                               
02/3DAA: 85F2                       STA   $F2                                   
02/3DAC: A90200                     LDA   #^$C204                               
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The alert routine (if A = #$0080, then insert original disk)
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
02/3AFB: 29FF00                     AND   #$00FF                               
02/3AFE: 8D243E                     STA   $3E24                                 
02/3B01: A204CA2200                 _InitCursor                                 
02/3B08: AD243E                     LDA   $3E24                                 
02/3B0B: A20000                     LDX   #$0000                               
02/3B0E: DD1A3E                     CMP   $3E1A,X                               
02/3B11: F02A                       BEQ   $3B3D                                 
02/3B13: E8                         INX                                         
02/3B14: E8                         INX                                         
02/3B15: E00A00                     CPX   #$000A                               
02/3B18: D0F4                       BNE   $3B0E                                 
02/3B1A: C92B00                     CMP   #$002B                               
02/3B1D: D003                       BNE   $3B22                                 
02/3B1F: 4C763B                     JMP   $3B76                                 
02/3B22: C94800                     CMP   #$0048                               
02/3B25: D003                       BNE   $3B2A                                 
02/3B27: 4C863C                     JMP   $3C86                                 
02/3B2A: C94900                     CMP   #$0049                               
02/3B2D: D003                       BNE   $3B32                                 
02/3B2F: 4C863C                     JMP   $3C86                                 
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

One of the numerous protection checks (seven in the code)
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
02/0601: F40200                     PEA   ^$C9DA          ; init               
02/0604: F4DAC9                     PEA   $C9DA                                 
02/0607: 20A735                     JSR   $35A7                                 
02/060A: A2E2BF                     LDX   #$BFE2                               
02/060D: A00200                     LDY   #^$BFE2                               
02/0610: 2255E702                   JSL   $02E755         ; call protection     
02/0614: CDBBBE                     CMP   $BEBB                                 
02/0617: F008                       BEQ   $0621                                 
02/0619: A98000                     LDA   #$0080          ; check failed       
02/061C: 20FB3A                     JSR   $3AFB                                 
02/061F: 80E0                       BRA   $0601                                 
02/0621: 9C72BF                     STZ   $BF72           ; original disk       
02/0624: 9C74BF                     STZ   $BF74                                 
02/0627: 2077AD                     JSR   $AD77                                 
02/062A: 202D1D                     JSR   $1D2D                                 
02/062D: 206D42                     JSR   $426D                                 
02/0630: 207516                     JSR   $1675                                 
02/0633: 20240C                     JSR   $0C24                                 
02/0636: 200A0D                     JSR   $0D0A                                 
02/0639: AD20BF                     LDA   $BF20                                 
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The value to find is #$0021
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
02/BEBB:>21 00<00 00 00 00 00 00 00 00 00 00 00 00 01 00    !...............   
02/BECB: 10 4F 70 65 6E 20 77 68 69 63 68 20 66 69 6C 65    .Open which file   
02/BEDB: 3A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    :...............   
02/BEEB: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BEFB: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BF0B: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BF1B: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BF2B: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BF3B: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BF4B: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BF5B: 00 00 00 00 00 19 C7 00 00 00 00 00 00 00 00 00    ......G.........   
02/BF6B: 00 00 00 00 00 00 00 02 00 40 00 FF 00 00 00 00    .........@.....   
02/BF7B: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BF8B: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BF9B: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BFAB: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BFBB: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
02/BFCB: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E2    ...............b   
02/BFDB: BF 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............   
02/BFEB: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................   
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
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: Sam 09 Avr 2016, 20:58    Sujet du message: Répondre en citant

And the Block.Warden view

Code:

Block: $0076 (118)      Volume name: SHADOWGATE      Friday      9-Apr-16  9:49
Prefix: /SHADOWGATE/                                                           
Following: SHADOWGATE, Type S16, Rel block 110, Byte $00DA8D                   
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 000: DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD   ]]]]]]]]]]]]]]]]   
  b Z 010: DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD   ]]]]]]]]]]]]]]]]   
B y Z 020: DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD   ]]]]]]]]]]]]]]]]   
L   Z 030: DD DD DD DD DD DD DD DD DD DD D6 00 00 D6 66 66   ]]]]]]]]]]V..Vff   
O G Z 040: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66   ffffffffffffffff   
C l Z 050: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66   ffffffffffffffff   
K e Z 060: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66   ffffffffffffffff   
  n Z 070: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66   ffffffffffffffff   
W   Z 080: 66 66 66 66 66 66 66 66 66 66 66 66 66>18 FB C2   fffffffffffff.{B   
A B Z 090: 30 0B<8B DA 5A 20 D9 E9 7A FA 22 E1 EA 00 B0 07   0..ZZ Yizz"aj.0.   
R r Z 0A0: 22 90 E8 00 20 D3 EA AB 2B 6B C2 30 0B 68 18 69   ".h. Sj++kB0.h.i   
D e Z 0B0: 00 01 60 08 DA 5A C2 30 A2 00 00 A0 08 00 18 2A   ..`.ZZB0".. ...*   
E d Z 0C0: 2A 48 8A 2A AA 68 88 D0 F5 8A 29 FF 00 7A FA 28   *H.**h.Pu.).zz(   
N o Z 0D0: 60 C2 30 08 DA 5A E2 30 9C FE E7 A2 0F DD DE E7   `B0.ZZb0.~g".]^g   
  n Z 0E0: F0 05 CA 10 F8 80 28 8E FE E7 A2 0F EB DD EE E7   p.J.x.(.~g".k]ng   
    Z 0F0: F0 05 CA 10 F8 80 18 8A 0A 0A 0A 0A 18 6D FE E7   p.J.x........m~g   
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