Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.65 - CLIENT : 54.221.147.93

 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 

Leisure suit Larry 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: 2949
Localisation: Le Chesnay, France

MessagePosté le: Jeu 28 Jan 2016, 21:23    Sujet du message: Leisure suit Larry IIgs (Sierra, 1987) Répondre en citant

#719 - ...in the land of the lounge lizards. Thanks to 4am for the disk image.

Protection type
For once, it is not a password protection scheme but a bad block ($634) that read and generates a I/O error with the original and no error at all with a copy.

Sort sort of reverse boot-tracing
The great advantage of cracking on the Apple IIgs is that some software use the tools to display the error messages, just like this one. An Apple IIgs programmer knows the tool called, that eases the search for the protection routine. Here, the _TLTextMountVolume is used. That tool call displays a text window asking the user to make a selection. We have the text, we have the call number, we also know the block number and we find the three parameters in bank $D. Good. It is now a matter of understanding the routine and determine what to do depending on the code.
As you will see in the next message, the block is read, the error code is then checked. If it is #$00 (no error), the message is displayed asking to quit or insert the original disk. If the error is #$27 (I/O) then we continue. What we will do is just change the branch to take whatever the result: we'll change a BEQ (branch if equal to #$27) to a BRA (branch always whatever the error code).

How to copy
Use ZZCopy or Photonix II to copy your original disk that you'll put in a dry and safe place.

How to crack
Launch Block.Warden
Prefix /LL1
Follow LL.SYS16
At offset $D52B: F0 -> 80
Write the block back

As the game is for adults, there are 5 questions once the game is launched. We can consider it as being an off-disk protection or a protection for minors. I've decided to let that available.

The disk is available 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: 2949
Localisation: Le Chesnay, France

MessagePosté le: Jeu 28 Jan 2016, 21:25    Sujet du message: Répondre en citant

The message displayed in the _TLTextMountVolume call

Code:

The Flaming Bird Disassembler    Written by Ferox - (c) 1994 Phoenix corporation
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
03/0A63: 0D506C6561                 STR   'Please insert'                       
03/0A71: 00                         DB    $00                                   
03/0A72: 102050726F                 STR   ' Program Disk 1.'                   
03/0A83: 1C74686520                 STR   'the Original Program Disk 1.'       
03/0AA0: 00                         ASC   00                                   
03/0AA1: 2049662079                 STR   'If you don't want to play on tI     
03/0AC2: 00                         DB    $00                                   
03/0AC3: 224F726967                 STR   'Original disk, insert Backup dI     
03/0AE6: 00                         DB    $00                                   
03/0AE7: 0E41636365                 STR   'Accept: return'                     
03/0AF6: 00                         DB    $00                                   
03/0AF7: 0951756974                 STR   'Quit: Esc'                           
03/0B01: 00                         DB    $00                                   
03/0B02: 022A2F                     STR   '*/'                                 


The code that displays the error window

Code:

The Flaming Bird Disassembler    Written by Ferox - (c) 1994 Phoenix corporation
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
0D/0517: 0B                         PHD                                         
0D/0518: 3B                         TSC                                         
0D/0519: 38                         SEC                                         
0D/051A: E9FB00                     SBC   #$00FB                               
0D/051D: 5B                         TCD                                         
0D/051E: 69F400                     ADC   #$00F4                               
0D/0521: 1B                         TCS                                         
0D/0522: A90100                     LDA   #$0001                               
0D/0525: 85F6                       STA   $F6                                   
0D/0527: F40300                     PEA   ^$0311FD                             
0D/052A: F4FD11                     PEA   $0311FD                               
0D/052D: 22432401                   JSL   $012443                               
0D/0531: 7A                         PLY                                         
0D/0532: 7A                         PLY                                         
0D/0533: 48                         PHA                                         
0D/0534: F40300                     PEA   ^$030A63                             
0D/0537: F4630A                     PEA   $030A63                               
0D/053A: F40300                     PEA   ^$030A83                             
0D/053D: F4830A                     PEA   $030A83                               
0D/0540: F40300                     PEA   ^$030AE7                             
0D/0543: F4E70A                     PEA   $030AE7                               
0D/0546: F40300                     PEA   ^$030AF7                             
0D/0549: F4F70A                     PEA   $030AF7                               
0D/054C: A201122200                 _TLTextMountVolume                         
0D/0553: 8F020002                   STAL  $020002                               
0D/0557: 68                         PLA                                         
0D/0558: 85F6                       STA   $F6                                   
0D/055A: F40300                     PEA   ^$0311FD                             
0D/055D: F4FD11                     PEA   $0311FD                               
0D/0560: 22C72301                   JSL   $0123C7                               
0D/0564: 7A                         PLY                                         
0D/0565: 7A                         PLY                                         
0D/0566: A5F6                       LDA   $F6                                   
0D/0568: C90100                     CMP   #$0001                               
0D/056B: D00C                       BNE   $0579                                 
0D/056D: F40300                     PEA   ^$0311FD                             
0D/0570: F4FD11                     PEA   $0311FD                               
0D/0573: 22CE020D                   JSL   $0D02CE                               
0D/0577: 7A                         PLY                                         
0D/0578: 7A                         PLY                                         
0D/0579: A5F6                       LDA   $F6                                   
0D/057B: A8                         TAY                                         
0D/057C: 7B                         TDC                                         
0D/057D: 18                         CLC                                         
0D/057E: 69FB00                     ADC   #$00FB                               
0D/0581: 1B                         TCS                                         
0D/0582: 98                         TYA                                         
0D/0583: 2B                         PLD                                         
0D/0584: 6B                         RTL                                         


The protection check: read the bad block and jumps if there is an error

Code:

The Flaming Bird Disassembler    Written by Ferox - (c) 1994 Phoenix corporation
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
0D/162B: A20000                     LDX   #$0000          ; BLOCK NUMBER       
0D/162E: A93406                     LDA   #$0634                               
0D/1631: 48                         PHA                                         
0D/1632: 8A                         TXA                                         
0D/1633: 8FB21203                   STAL  $0312B2                               
0D/1637: 68                         PLA                                         
0D/1638: 8FB01203                   STAL  $0312B0                               
0D/163C: F42200                     PEA   $0022                                 
0D/163F: F40300                     PEA   ^$0312AA                             
0D/1642: F4AA12                     PEA   $0312AA                               
0D/1645: 22362D01                   JSL   $012D36         ; READ BLOCK         
0D/1649: AD0200                     LDA   $020002                               
0D/164C: C92700                     CMP   #$0027          ; I/O ERROR           
0D/164F: F01E                       BEQ   $166F           ; ORIGINAL           
0D/1651: 2217050D                   JSL   $0D0517         ; COPY               
0D/1655: C90100                     CMP   #$0001                               
0D/1658: F012                       BEQ   $166C                                 
0D/165A: A90000                     LDA   #$0000                               
0D/165D: F005                       BEQ   $1664                                 
0D/165F: A90000                     LDA   #$0000                               
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