Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.65 - CLIENT : 54.226.209.201

 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 

Keef the thief IIgs (Electronic Arts, 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: 2949
Localisation: Le Chesnay, France

MessagePosté le: Lun 28 Mar 2016, 22:42    Sujet du message: Keef the thief IIgs (Electronic Arts, 1989) Répondre en citant

#818 - A game by Naughty Dog. The dangerous adventures, daring exploits, and delinquent behavior of Keef the thief. Stunning scenes of wealth beyond imagining! Cunning horrors in dungeon corridors! Running like a bunny when things get too tough!

Protection type
This is a password protection buried inside a desktop program (well-made by the way). You have two answers to provide. The computer selects three names, you search for the fourth in the manual, you click on the right one. You do that twice then you can play.

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

Annoying digging
It is a compiled program, so we're happy because we know that strings and friends are stored in a Arrays segment. One slight problem though, the arrays segment is above 64K, the limit of the Flaming Bird Disassembler. So, we used the old way: put a BRK at the beginning of the game code and we wandered into the IIgs memory and thanks to its powerful monitor options, we were successful.
Another annoying option is that the game heavily uses a jumptable segment. This is a list of pointers (JSL) to other segments, marked as dynamic, ie. loaded when necessary. That is useful when memory is tight, annoying when you have to trace because you have to jump to the jump table before reaching the right address. Grrr!
So, I tracked down the protection strings at found out that "Choose the correct card:" was at offset $F342 of the Arays segment (in my IIgs, the segment is loaded at $11/F8DF and the string is at $12/EC21, the difference is the offset).
We also noted that some of the menu items were disabled before entering the protection (slow down your machine and click on the File menu). We found out that the menus were disabled in segment 6 at $994. Here is the trace:
Code:

06/994 DISABLES THE MENUS
06/8A6 ENABLES THE MENUS < 14/03BC (JMPTBL)
05/F342 < 06/0994 < 14/0020 (JMPTBL) <01> AF
06/0000 IS THE QUIT < 14/011C

We now know that we can skip the call to the protection at $01/01D5 but I guess it is not a good option because the GUI will suffer from that. Not all graphical elements if we skip it. So, we'll focus on the menu activation at $8A6 of segment 6. And, after analysis, this is the protection check. So, we'll have it described later on.
What we will do here is that we will let the protection screen appear, the user will have to select one answer (frankly, we don't care about the answer, this is to make a click to the system and call the routine of segement 6 at $8A6) and we'll tell the program: "be happy, we have an original".
We have searched in the other segments that the different variables were not checked later in the game: no. So, we're good here.

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

Prefix /KEEF1
Follow file KEEF.SYS16
At offset $18F67:F0 03 -> 80 1B
Write the block back onto disk


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

Reboot and... enjoy,

LoGo
3/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: Lun 28 Mar 2016, 22:42    Sujet du message: Répondre en citant

Part of the Arrays segment... in memory!

Code:

        00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
12/EB00:00 FE 00 95 01 03 31 01 00 00 00 00 63 00 FE 00-.~....1.....c.~.       
12/EB10:98 01 03 2F 01 02 00 C0 00 5C 00 E8 00 98 01 03-.../...@.\.h....       
12/EB20:37 01 26 00 78 00 3D 00 90 00 98 01 03 53 01 1A-7.&.x.=......S..       
12/EB30:00 0F 00 4A 00 1E 00 98 01 08 09 04 02 00 1E 00-...J............       
12/EB40:63 00 69 00 BD 01 08 07 04 19 00 64 00 54 00 94-c.i.=......d.T..       
12/EB50:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00-................       
12/EB60:05 00 09 00 0B 00 10 00 17 00 1E 00 26 00 2A 00-............&.*.       
12/EB70:2C 00 2F 00 34 00 4D 65 6D 00 00 00 00 00 00 00-,./.4.Mem.......       
12/EB80:00 00 00 00 00 00 00 00 00 00 54 68 65 20 45 6D-..........The Em       
12/EB90:70 65 72 6F 72 00 00 00 00 00 00 00 00 00 54 68-peror.........Th       
12/EBA0:65 20 50 72 6F 70 68 65 74 00 00 00 00 00 00 00-e Prophet.......       
12/EBB0:00 00 54 68 65 20 4D 61 67 69 63 69 61 6E 20 4B-..The Magician K       
12/EBC0:69 6E 67 00 00 00 4D 65 6D 27 73 20 46 69 72 73-ing...Mem's Firs       
12/EBD0:74 00 00 00 00 00 00 00 00 00 54 68 65 20 4C 6F-t.........The Lo       
12/EBE0:72 64 20 6F 66 20 4D 65 72 63 6F 6E 00 00 54 68-rd of Mercon..Th       
12/EBF0:65 20 54 68 69 65 66 00 00 00 00 00 00 00 00 00-e Thief.........       
12/EC00:00 00 00 00 00 00 00 00 00 00 00 00 4F 6E 65 20-............One         
12/EC10:6D 6F 6D 65 6E 74 20 70 6C 65 61 73 65 2E 2E 2E-moment please...       
12/EC20:00 43 68 6F 6F 73 65 20 74 68 65 20 63 6F 72 72-.Choose the corr       
12/EC30:65 63 74 20 63 61 72 64 3A 00 4B 65 65 66 20 54-ect card:.Keef T       
12/EC40:68 65 20 54 68 69 65 66 20 76 65 72 73 69 6F 6E-he Thief version       
12/EC50:20 31 2E 30 00 50 72 6F 67 72 61 6D 3A 20 41 6E- 1.0.Program: An       
12/EC60:64 79 20 47 61 76 69 6E 00 47 72 61 70 68 69 63-dy Gavin.Graphic       
12/EC70:73 3A 20 4A 61 73 6F 6E 20 52 75 62 69 6E 00 44-s                       
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: Lun 28 Mar 2016, 22:43    Sujet du message: Répondre en citant

The password protection check in segment 6

Code:

The password protection check
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
06/08A6: 0B                         PHD                                         
06/08A7: 3B                         TSC                                         
06/08A8: 38                         SEC                                         
06/08A9: E9F900                     SBC   #$00F9                               
06/08AC: 5B                         TCD                                         
06/08AD: 69F200                     ADC   #$00F2                               
06/08B0: 1B                         TCS                                         
06/08B1: AECC00                     LDX   $0400CC                               
06/08B4: ADCA00                     LDA   $0400CA                               
06/08B7: DA                         PHX                                         
06/08B8: 48                         PHA                                         
06/08B9: A2041B2200                 _SetPort                                   
06/08C0: B003                       BCS   $08C5                                 
06/08C2: A90000                     LDA   #$0000                               
06/08C5: 8F020004                   STAL  $040002                               
06/08C9: A5FF                       LDA   $FF                                   
06/08CB: CD9E00                     CMP   $04009E                               
06/08CE: F003                       BEQ   $08D3           ; BRA $8EB
06/08D0: 829A00                     BRL   $096D           ; Bad answer
06/08D3: EEA000                     INC   $0400A0                               
06/08D6: ADA000                     LDA   $0400A0                               
06/08D9: C90100                     CMP   #$0001                               
06/08DC: D00D                       BNE   $08EB           ; BRA                 
06/08DE: 22280800                   JSL   $060828         ; Answer please       
06/08E2: A90100                     LDA   #$0001          ; 1 good answer?
06/08E5: 8DA200                     STA   $0400A2                               
06/08E8: 829F00                     BRL   $098A                                 
06/08EB: F45D00                     PEA   $005D           ; To activate menus   
06/08EE: F44400                     PEA   $0044                                 
06/08F1: F48B00                     PEA   $008B                                 
06/08F4: F47800                     PEA   $0078                                 
06/08F7: F47A00                     PEA   $007A                                 
06/08FA: F40000                     PEA   $0000                                 
06/08FD: F4E100                     PEA   $00E1                                 
06/0900: F40020                     PEA   $2000                                 
06/0903: AEB600                     LDX   $0400B6                               
06/0906: ADB400                     LDA   $0400B4                               
06/0909: DA                         PHX                                         
06/090A: 48                         PHA                                         
06/090B: 22960214                   JSL   $140296                               
06/090F: A8                         TAY                                         
06/0910: 3B                         TSC                                         
06/0911: 18                         CLC                                         
06/0912: 691400                     ADC   #$0014                               
06/0915: 1B                         TCS                                         
06/0916: 98                         TYA                                         
06/0917: F40401                     PEA   $0104                                 
06/091A: A20F302200                 _EnableMItem                               
06/0921: B003                       BCS   $0926                                 
06/0923: A90000                     LDA   #$0000                               
06/0926: 8F020004                   STAL  $040002                               
06/092A: F40501                     PEA   $0105                                 
06/092D: A20F302200                 _EnableMItem                               
06/0934: B003                       BCS   $0939                                 
06/0936: A90000                     LDA   #$0000                               
06/0939: 8F020004                   STAL  $040002                               
06/093D: F40601                     PEA   $0106                                 
06/0940: A20F302200                 _EnableMItem                               
06/0947: B003                       BCS   $094C                                 
06/0949: A90000                     LDA   #$0000                               
06/094C: 8F020004                   STAL  $040002                               
06/0950: F41001                     PEA   $0110                                 
06/0953: A20F302200                 _EnableMItem                               
06/095A: B003                       BCS   $095F                                 
06/095C: A90000                     LDA   #$0000                               
06/095F: 8F020004                   STAL  $040002                               
06/0963: F46900                     PEA   $0069                                 
06/0966: 22C2040E                   JSL   $0E04C2                               
06/096A: 7A                         PLY                                         
06/096B: 801D                       BRA   $098A           
06/096D: EE9600                     INC   $040096         ; Next try           
06/0970: AD9600                     LDA   $040096                               
06/0973: C90200                     CMP   #$0002                               
06/0976: D008                       BNE   $0980                                 
06/0978: A90100                     LDA   #$0001          ; Force Quit         
06/097B: 8D1001                     STA   $040110                               
06/097E: 800A                       BRA   $098A           ; Bye                 
06/0980: 22280800                   JSL   $060828         ; Answer please       
06/0984: A90200                     LDA   #$0002          ; 2 good answers?
06/0987: 8DA200                     STA   $0400A2                               
06/098A: A8                         TAY                                         
06/098B: 3B                         TSC                                         
06/098C: 18                         CLC                                         
06/098D: 690600                     ADC   #$0006                               
06/0990: 1B                         TCS                                         
06/0991: 98                         TYA                                         
06/0992: 2B                         PLD                                         
06/0993: 6B                         RTL                                         
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: 2949
Localisation: Le Chesnay, France

MessagePosté le: Lun 28 Mar 2016, 22:44    Sujet du message: Répondre en citant

And the Block.Warden view from my /SANDBOX disk. This is where I copy the disk images and "play" with them.

Code:

Block: $7B2C (31532)    Volume name: SANDBOX         Thursday   25-Mar-16 12:18
Prefix: /SANDBOX/KEEF1/                                                         
Following: KEEF.SYS16, Type S16, Rel block 200, Byte $018F67                   
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 100: 18 69 03 00 48 AD 98 00 18 69 02 00 38 22 FF 06   .i..H-...i..8".   
  b Z 110: 03 68 38 22 FF 06 03 68 38 ED 9A 00 18 6D 9C 00   .h8"..h8m...m..   
B y Z 120: 38 22 7E 05 03 7A 38 22 7E 05 03 68 8D 9E 00 22   8"~..z8"~..h..."   
L   Z 130: 88 02 14 22 A8 01 14 3B 18 69 06 00 1B 2B 6B 0B   ..."(..;.i...+k.   
O G Z 140: 3B 38 E9 F9 00 5B 69 F2 00 1B AE CC 00 AD CA 00   ;8iy.[ir...L.-J.   
C l Z 150: DA 48 A2 04 1B 22 00 00 E1 B0 03 A9 00 00 8F 02   ZH".."..a0.)....   
K e Z 160: 00 04 A5 FF CD 9E 00>F0 03<82 9A 00 EE A0 00 AD   ..%M..p....n .-   
  n Z 170: A0 00 C9 01 00 D0 0D 22 28 08 00 A9 01 00 8D A2    .I..P."(..)..."   
W   Z 180: 00 82 9F 00 F4 5D 00 F4 44 00 F4 8B 00 F4 78 00   ....t].tD.t..tx.   
A B Z 190: F4 7A 00 F4 00 00 F4 E1 00 F4 00 20 AE B6 00 AD   tz.t..ta.t. .6.-   
R r Z 1A0: B4 00 DA 48 22 96 02 14 A8 3B 18 69 14 00 1B 98   4.ZH"...(;.i....   
D e Z 1B0: F4 04 01 A2 0F 30 22 00 00 E1 B0 03 A9 00 00 8F   t..".0"..a0.)...   
E d Z 1C0: 02 00 04 F4 05 01 A2 0F 30 22 00 00 E1 B0 03 A9   ...t..".0"..a0.)   
N o Z 1D0: 00 00 8F 02 00 04 F4 06 01 A2 0F 30 22 00 00 E1   ......t..".0"..a   
  n Z 1E0: B0 03 A9 00 00 8F 02 00 04 F4 10 01 A2 0F 30 22   0.)......t..".0"   
    Z 1F0: 00 00 E1 B0 03 A9 00 00 8F 02 00 04 F4 69 00 22   ..a0.)......ti."   
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