Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.65 - CLIENT : 54.162.227.37

 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 

Thexder v2.7 IIgs (Sierra, 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: 2928
Localisation: Le Chesnay, France

MessagePosté le: Sam 27 Fév 2016, 22:36    Sujet du message: Thexder v2.7 IIgs (Sierra, 1987) Répondre en citant

#789 - Aaaaahhhh, Thexder. I do not want to take the box, turn it and write down the first two sentences I always do. I don't like that game, I love it. And it is dated 1987 and it is fast and the music is great, the atmosphere is great and it is thanks to Game Arts, again.

I've decided to crack Thexder because Static Vengeance from Club 96 wrote to me today asking for a copy of the original of the game. I've decided to send two disk images of it: the original and a cracked one. I'm happy!

Another candidate for a hack. Let's use the shadowing screen instead of the slow SHR screen...

Protection type
It is a bad block check. The bad block is number #$634. If the returned error after the READ_BLOCK call is #$27, then we have an original, otherwise we have a copy and the program requests you to insert the original disk. Please note that you can install the game on your HDD and use the original disk as a key disk or you can use a clean cracked version Smile

How to copy
Use ZZCopy or Photonix II to copy your original disk, you'll have a I/O error, then store your original disk in a dry and safe place.

Boot trace
Today, we'll do disassembly thanks to the Flaming Bird Disassembler, the best disassembler of the world Smile and we search for the READ_BLOCK GS/OS (here ProDOS 16) call: 22 A8 00 E1 22 00 and we find some in segment 1 (main) at offset $AEB.
The code read block #$634 from the original disk, if I/O error reads block #$62C that must generate no err at all, then it checks block #$634 again from another device and the routine returns with the carry clear (but not used) is that is OK.
It does not do more with the carry because, if the protection fails, you are requested to insert the original disk, if you don't, your option is to quit and return to your favorite launcher.
The protection routine starts at $01/0A8D. It is called in the same segment at offset $15. That's all.

How to crack
Launch Block.Warden
Code:

Prefix /THEXDER
Follow file THEXDER.SYS16
At offset $5A: 22 -> AF

Write the block back onto disk.

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

Reboot and... enjoy,

LoGo
2/2016


Dernière édition par toinet le Dim 28 Fév 2016, 11:22; é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: 2928
Localisation: Le Chesnay, France

MessagePosté le: Sam 27 Fév 2016, 22:37    Sujet du message: Répondre en citant

The protection routine

Code:

The protection routine
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
01/0A8D: C230                       REP   #$30            ; Entry point         
01/0A8F: AA                         TAX                                         
01/0A90: F40000                     PEA   $0000                                 
01/0A93: F40000                     PEA   $0000                                 
01/0A96: F40000                     PEA   $0000                                 
01/0A99: F40002                     PEA   $0200                                 
01/0A9C: DA                         PHX                                         
01/0A9D: F40000                     PEA   $0000                                 
01/0AA0: F40000                     PEA   $0000                                 
01/0AA3: F40000                     PEA   $0000                                 
01/0AA6: A202092200                 _NewHandle            ; Get some RAM       
01/0AAD: 68                         PLA                                         
01/0AAE: FA                         PLX                                         
01/0AAF: 850E                       STA   $0E                                   
01/0AB1: 8610                       STX   $10                                   
01/0AB3: 8500                       STA   $00                                   
01/0AB5: 8602                       STX   $02                                   
01/0AB7: A00400                     LDY   #$0004                               
01/0ABA: B700                       LDA   [$00],Y                               
01/0ABC: 090080                     ORA   #$8000          ; Lock handle         
01/0ABF: 9700                       STA   [$00],Y                               
01/0AC1: 88                         DEY                                         
01/0AC2: 88                         DEY                                         
01/0AC3: B700                       LDA   [$00],Y                               
01/0AC5: 8D3607                     STA   $030736                               
01/0AC8: A700                       LDA   [$00]                                 
01/0ACA: 8D3407                     STA   $030734                               
01/0ACD: 22A800E1                   JSL   GSOS                                 
01/0AD1: 2000                       DW    $0020           ; GetDevNumber       
01/0AD3: 2C070300                   ADRL  $0003072C                             
01/0AD7: 9006                       BCC   $0ADF                                 
01/0AD9: 225F0B01                   JSL   $010B5F                               
01/0ADD: 80EE                       BRA   $0ACD                                 
01/0ADF: AD3007                     LDA   $030730                               
01/0AE2: 8D3207                     STA   $030732                               
01/0AE5: A93406                     LDA   #$0634          ; Block #$634         
01/0AE8: 8D3807                     STA   $030738                               
01/0AEB: 22A800E1                   JSL   GSOS                                 
01/0AEF: 2200                       DW    $0022           ; READ_BLOCK         
01/0AF1: 32070300                   ADRL  $00030732                             
01/0AF5: B006                       BCS   $0AFD                                 
01/0AF7: 225F0B01                   JSL   $010B5F         ; Insert disk         
01/0AFB: 80D0                       BRA   $0ACD                                 
01/0AFD: C92700                     CMP   #$0027          ; I/O ERR is OK       
01/0B00: F006                       BEQ   $0B08                                 
01/0B02: 225F0B01                   JSL   $010B5F                               
01/0B06: 80C5                       BRA   $0ACD                                 
01/0B08: A92C06                     LDA   #$062C          ; Block #$62C         
01/0B0B: 8D3807                     STA   $030738                               
01/0B0E: 22A800E1                   JSL   GSOS                                 
01/0B12: 2200                       DW    $0022           ; READ_BLOCK         
01/0B14: 32070300                   ADRL  $00030732                             
01/0B18: 9006                       BCC   $0B20           ; Must be no err     
01/0B1A: 225F0B01                   JSL   $010B5F                               
01/0B1E: 80AD                       BRA   $0ACD                                 
01/0B20: 22021302                   JSL   $021302         ; GetDevNumber       
01/0B24: AD0ABE                     LDA   $03BE0A         ; Save new dev       
01/0B27: 8D3207                     STA   $030732                               
01/0B2A: A93406                     LDA   #$0634          ; Block #$634         
01/0B2D: 8D3807                     STA   $030738                               
01/0B30: 22A800E1                   JSL   GSOS                                 
01/0B34: 2200                       DW    $0022           ; READ_BLOCK         
01/0B36: 32070300                   ADRL  $00030732                             
01/0B3A: 9004                       BCC   $0B40                                 
01/0B3C: 228C0B01                   JSL   $010B8C         ; Insert...           
01/0B40: A50E                       LDA   $0E                                   
01/0B42: A610                       LDX   $10                                   
01/0B44: 8500                       STA   $00                                   
01/0B46: 8602                       STX   $02                                   
01/0B48: A00400                     LDY   #$0004                               
01/0B4B: B700                       LDA   [$00],Y                               
01/0B4D: 29FF7F                     AND   #$7FFF          ; Unlock handle       
01/0B50: 9700                       STA   [$00],Y                               
01/0B52: 18                         CLC                   ; Clear!             
01/0B53: 6B                         RTL                                         
01/0B54: 22A800E1                   JSL   GSOS                                 
01/0B58: 0A00                       DW    $000A           ; GetPrefix           
01/0B5A: EF060300                   ADRL  $000306EF                             
01/0B5E: 6B                         RTL                                         
01/0B5F: F40000                     PEA   $0000                                 
01/0B62: F40300                     PEA   ^$030668                             
01/0B65: F46806                     PEA   $030668                               
01/0B68: F40300                     PEA   ^$030687                             
01/0B6B: F48706                     PEA   $030687                               
01/0B6E: F40300                     PEA   ^$0306D4                             
01/0B71: F4D406                     PEA   $0306D4                               
01/0B74: F40300                     PEA   ^$0306E3                             
01/0B77: F4E306                     PEA   $0306E3                               
01/0B7A: A201122200                 _TLTextMountVolume                         
01/0B81: 68                         PLA                                         
01/0B82: C90100                     CMP   #$0001                               
01/0B85: F004                       BEQ   $0B8B                                 
01/0B87: 22700401                   JSL   $010470         ; Quit               
01/0B8B: 6B                         RTL                                         
01/0B8C: F40000                     PEA   $0000                                 
01/0B8F: F40300                     PEA   ^$030690                             
01/0B92: F49006                     PEA   $030690                               
01/0B95: F40300                     PEA   ^$0306B2                             
01/0B98: F4B206                     PEA   $0306B2                               
01/0B9B: F40300                     PEA   ^$0306D4                             
01/0B9E: F4D406                     PEA   $0306D4                               
01/0BA1: F40300                     PEA   ^$0306E3                             
01/0BA4: F4E306                     PEA   $0306E3                               
01/0BA7: A201122200                 _TLTextMountVolume                         
01/0BAE: 68                         PLA                                         
01/0BAF: C90100                     CMP   #$0001                               
01/0BB2: F004                       BEQ   $0BB8                                 
01/0BB4: 22700401                   JSL   $010470         ; Quit               
01/0BB8: 6B                         RTL                                         
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS


I do not present the main call because there is a single call within the first lines of the programs, it is trivial.

Same for the Block.Warden view. Just add $15 to the OMF header length and you'll get file offset $5A where you replace the 22 (JSL) with a AF (LDAL)
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