Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.65 - CLIENT : 54.224.121.67

 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 

Mickey's crossword puzzle maker (Walt Disney Company)

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

MessagePosté le: Lun 10 Avr 2017, 18:33    Sujet du message: Mickey's crossword puzzle maker (Walt Disney Company) Répondre en citant

#914 - Build reading, spelling and vocabulary skills with Mickey's crossword puzzle maker. Create, play, and print!

Disk structure
The package comes with one 3.5" and two double-sided 5.25" disks. None are protected. A sticker on the box states that there is no on-disk protection (ie. there is a password protection somewhere)

How to copy
Copy the 3.5" disk with ZZCopy or Photonix II and the two double-sided 5.25" disks with The Locksmith Fast Disk Backup. Store your original disks in a dry and safe place.

Some digging into the code
When you boot the disk from an original Apple II computer (why do I write this? Because all my IIgs emulators fail to load the program and crash into the monitor whereas it boots correctly on a real machine...), ProDOS 8 is loaded then LS.SYSTEM then LEGACY.SOFTWARE and LEGACY at $6000.

You must enter a word from the manual from a series of different words (row or column), you have an infinite number of tries and the maximum length of your answer is 10 characters (you'll see how important it is)

A disassembly of the LEGACY program shows the different strings displayed by the protection part. We find the usual read of the KBD softswitch at $C000 but we find no logical call of it. Remember that there are two ways of finding a password protection check:
- option 1: the bottom-up approach: from the low-level calls to the main routine
- option 2: the top-down approach: from the main routine to the low-level ones.

Here, we have used a third option: the check of the length of the string. I wrote earlier that the max length of your answer was 10 characters, so the idea was to search for C9 0A (CMP #$0A or compare #10) and we found one at $7D97 (routine at $7D78 called at $7D3F). Now, going with the bottom-up approach, the previous routine starts at $7D05 and is called at $6C42 and just after, we find a comparison between data at $1000 and some stored at ($6C..$6D). It looks like $1000 stores the length of the answer and at $1001++ we store the characters of our answer.

From the code, we see that the main loop is at $6C08 and ends at $6C54 if the string entered matches the correct value to provide. So, let's patch the code at $6C08 and jump at $6C54 directly... That works...

How to crack
For the 3.5" disk:
Prefix /LEGACY00
Follow file LEGACY
At offset $C08: 20 75 E0 -> 4C 54 6C

For the 5.25" disk:
Prefix /LEGACY00.A1
Follow file LEGACY
At offset $C08: 20 75 E0 -> 4C 54 6C

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

Reboot and... enjoy,

LoGo
4/2017
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: 2893
Localisation: Le Chesnay, France

MessagePosté le: Lun 10 Avr 2017, 18:35    Sujet du message: Répondre en citant

Some code

The main protection check code
Code:

00/6C08: 2075E0                     JSR   $E075                                 ; Entry point
00/6C0B: A900                       LDA   #$00                                  ; Clear string
00/6C0D: 8D0010                     STA   $1000                                 
00/6C10: 8D0110                     STA   $1001                                 
00/6C13: 8D0210                     STA   $1002                                 
00/6C16: AD436B                     LDA   $6B43                                 
00/6C19: 4A                         LSR                                         
00/6C1A: CDF76C                     CMP   $6CF7                                 
00/6C1D: B00D                       BCS   $6C2C                                 
00/6C1F: A9D9                       LDA   #$D9                                 
00/6C21: A26C                       LDX   #$6C                                 
00/6C23: 2063E0                     JSR   $E063                                 
00/6C26: A206                       LDX   #$06                                 
00/6C28: A002                       LDY   #$02                                 
00/6C2A: D00B                       BNE   $6C37                                 
00/6C2C: A9E8                       LDA   #$E8                                 
00/6C2E: A26C                       LDX   #$6C                                 
00/6C30: 2063E0                     JSR   $E063                                 
00/6C33: A205                       LDX   #$05                                 
00/6C35: A003                       LDY   #$03                                 
00/6C37: A975                       LDA   #$75                                 
00/6C39: 86C2                       STX   $C2                                   
00/6C3B: 84C3                       STY   $C3                                   
00/6C3D: 8556                       STA   $56                                   
00/6C3F: AD10C0                     LDA   KBDSTROBE                             
00/6C42: 20057D                     JSR   $7D05                                 
00/6C45: AC0010                     LDY   $1000                                 ; Length is 0
00/6C48: F0BE                       BEQ   $6C08                                 
00/6C4A: B16C                       LDA   ($6C),Y                               
00/6C4C: D90010                     CMP   $1000,Y                               
00/6C4F: D0B7                       BNE   $6C08                                 ; string is different
00/6C51: 88                         DEY                                         
00/6C52: 10F6                       BPL   $6C4A                                 
00/6C54: 2075E0                     JSR   $E075                                 ; answer is OK
00/6C57: AD83C0                     LDA   LCBANK2                               
00/6C5A: AD83C0                     LDA   LCBANK2                               
00/6C5D: A902                       LDA   #$02                                 
00/6C5F: 8D426B                     STA   $6B42                                 
00/6C62: ADE0DF                     LDA   $DFE0                                 
00/6C65: CDF96C                     CMP   $6CF9                                 

Some subroutines:
00/7D05: AE0010                     LDX   $1000                                 ; Length
00/7D08: E8                         INX                                         
00/7D09: 86C4                       STX   $C4                                   
00/7D0B: A900                       LDA   #$00                                 
00/7D0D: 9D0010                     STA   $1000,X                               
00/7D10: 20467D                     JSR   $7D46                                 
00/7D13: C988                       CMP   #$88                                 
00/7D15: D006                       BNE   $7D1D                                 
00/7D17: 20527C                     JSR   $7C52                                 
00/7D1A: 4C107D                     JMP   $7D10                                 
00/7D1D: C995                       CMP   #$95                                 
00/7D1F: D006                       BNE   $7D27                                 
00/7D21: 20667C                     JSR   $7C66                                 
00/7D24: 4C107D                     JMP   $7D10                                 
00/7D27: C9FF                       CMP   #$FF                                 
00/7D29: D006                       BNE   $7D31                                 
00/7D2B: 20787C                     JSR   $7C78                                 
00/7D2E: 4C107D                     JMP   $7D10                                 
00/7D31: C98D                       CMP   #$8D                                  ; Return
00/7D33: F010                       BEQ   $7D45                                 
00/7D35: C9FB                       CMP   #$FB                                 
00/7D37: B006                       BCS   $7D3F                                 
00/7D39: C9E1                       CMP   #$E1                                 
00/7D3B: 9002                       BCC   $7D3F                                 
00/7D3D: E920                       SBC   #$20                                 
00/7D3F: 20787D                     JSR   $7D78                                 
00/7D42: 4C107D                     JMP   $7D10                                 
00/7D45: 60                         RTS                                         
00/7D46: A980                       LDA   #$80                                 
00/7D48: 200FE0                     JSR   $E00F                                 
00/7D4B: 20A67D                     JSR   $7DA6                                 
00/7D4E: A4C4                       LDY   $C4                                   
00/7D50: B90010                     LDA   $1000,Y                               
00/7D53: 2009E0                     JSR   $E009                                 
00/7D56: A557                       LDA   $57                                   
00/7D58: 8550                       STA   $50                                   
00/7D5A: A558                       LDA   $58                                   
00/7D5C: 8551                       STA   $51                                   
00/7D5E: A55B                       LDA   $5B                                   
00/7D60: 2015E0                     JSR   $E015                                 
00/7D63: A657                       LDX   $57                                   
00/7D65: A558                       LDA   $58                                   
00/7D67: 8653                       STX   $53                                   
00/7D69: 8554                       STA   $54                                   
00/7D6B: 18                         CLC                                         
00/7D6C: A556                       LDA   $56                                   
00/7D6E: 8552                       STA   $52                                   
00/7D70: 655A                       ADC   $5A                                   
00/7D72: 8555                       STA   $55                                   
00/7D74: 2030E0                     JSR   $E030                                 
00/7D77: 60                         RTS                                         
00/7D78: C9A0                       CMP   #$A0                                 
00/7D7A: 9029                       BCC   $7DA5                                 
00/7D7C: 38                         SEC                                         
00/7D7D: E9A0                       SBC   #$A0                                 
00/7D7F: A8                         TAY                                         
00/7D80: E4C4                       CPX   $C4                                   
00/7D82: 9009                       BCC   $7D8D                                 
00/7D84: BD0010                     LDA   $1000,X                               
00/7D87: 9D0110                     STA   $1001,X                               
00/7D8A: CA                         DEX                                         
00/7D8B: D0F3                       BNE   $7D80                                 
00/7D8D: 98                         TYA                                         
00/7D8E: 9D0110                     STA   $1001,X                               
00/7D91: EE0010                     INC   $1000                                 
00/7D94: AD0010                     LDA   $1000                                 
00/7D97: C90A                       CMP   #$0A                                  ; Max length
00/7D99: 9005                       BCC   $7DA0                                 
00/7D9B: E6C4                       INC   $C4                                   
00/7D9D: 4C787C                     JMP   $7C78                                 
00/7DA0: 20AF7C                     JSR   $7CAF                                 
00/7DA3: E6C4                       INC   $C4                                   
00/7DA5: 60                         RTS                                         
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