Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.129 - 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 

The Immortal IIgs (Electronic Arts, 1990)

 
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: Mar 22 Mar 2016, 11:26    Sujet du message: The Immortal IIgs (Electronic Arts, 1990) Répondre en citant

#814 - When nightmares come to life... You discover you're not immortal. 3-D adventure like you've never seen! A Sandcastle production, you know, Will Harvey and friends!

Protection type
The sticker on the box says it all: "manual required". OK, we will deal with a password protection, confirmed by the chapter "Copy protection" on page 16 of the manual. A picture is displayed, a row and a column also. You must find the letter in the corresponding box in the manual. If you miss, the game ends...

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

esreveR...
As they did with their other titles, we have a ProDOS disk loader, all files loaded in memory without using the Memory Manager, preventing the game from being compatible with the System. Paths are hardcoded, preventing it from being installed on a HDD. Too bad for a 1990 title.
The DOS8.SYSTEM system file loads CODE at $03/0100 and CODE2 at $02/5400.
We search for the string "Look in" in both files and find it in file CODE2. More digging shows that there are two tables that contain the indexes to the strings at $58D0 and $59CA (note that I've put the correct ORG of the file). Considering that there is an index to the protection string, after counting, we find #$24 for "Look in..." and #$2A if the answer is wrong.
Now, we have to find if we have references to A2 24 or A0 24 or A9 24 (LDX, LDY or LDA).
Gotcha! We find the LDX #$24 in file CODE at address $CEBB and the second variable at $CEDD.
Going back at the start of the routine, we find the entry point at $CE9B and some tables above. The routine gets a random value, displays the strings and waits for the letter ($CEF5), then the comparison is done at $CF0A. The routine returns with a RTS at $CF28 if the answer is correct or plays with the stack at $CF1F if the answer is false.
In the code, we find two calls to $CE9B but no uses of the returned value. So patching and putting a RTS at the entry of the routine should do the trick.

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

Prefix /DISK
Follow file CODE
At offset $CD9B: AD -> 60
Write the block back onto disk


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

Reboot and... enjoy,

LoGo
3/2016


Dernière édition par toinet le Mar 22 Mar 2016, 19:08; édité 1 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: Mar 22 Mar 2016, 11:26    Sujet du message: Répondre en citant

And some code...

Code:

The index to the strings in CODE2
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
00/58D0: C4 94 FD 48 D5 FD 95 30 68 73 AC 81 85 8D 9F AD    D.}HU}.0hs,....-   
00/58E0: E3 8B 8F 9D B9 E4 0C 1B 3E C8 D2 D5 FB 01 07 17    c...9d..>HRU{...   
00/58F0: 29 33 53 75 99 C9 DE F4 0A 1F 2A 4F 5E 68 1F 71    )3Su.I^t..*O^h.q   
00/5900: CB 3E 8A 64 F2 31 DF 29 32 3A 51 D6 1E 6E 97 B9    K>.dr1_)2:QV.n.9   
00/5910: 07 13 63 AD 27 AE 8D 25 28 4E 99 AB C5 D1 F0 FB    ..c-'..%(N.+EQp{   
00/5920: 79 4A 01 C3 9A 35 4F 73 7D AC 8B 27 A4 BA 5D D6    yJ.C.5Os},.'$:]V   
00/5930: EA 6B 75 80 A9 B4 BF CC 09 4C 56 74 89 3F FF 28    jku.)4?L.LVt.?(   
00/5940: F1 B8 40 56 12 7D 4C E9 B8 C2 CA 81 E5 15 3A 43    q8@V.}Li8BJ.e.:C   
00/5950: 70 82 D0 1F 28 5A 7D B7 44 B5 BE C6 F7 02 03 0A    p.P.(Z}7D5>Fw...   
00/5960: 12 1A 2D 52 5D 66 7E A9 D1 1C 26 44 45 6A A2 5C    ..-R]f~)Q.&DEj"\   
00/5970: C9 11 CB E1 F3 FC 1D 46 5D 7B 94 9E B1 BA CF D7    I.Kas|.F]{..1:OW   
00/5980: 00 0A 37 3F 48 99 E1 EA 54 74 7E A3 D6 10 32 3D    ..7?H.ajTt~#V.2=   
00/5990: 51 5C 66 80 C6 CF 5C 82 8B 94 37 BC 0C D9 F4 94    Q\f.FO\...7<.Yt.   
00/59A0: 52 B3 8B 68 72 9B B4 BE D3 E8 12 14 6D 00 00 00    R3.hr.4>Sh..m...   
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
00/59CA: 5A 5B 5B 5C 5C 5C 5D 5E 5E 5E 5E 5F 5F 5F 5F 5F    Z[[\\\]^^^^_____   
00/59DA: 5F 60 60 60 60 60 61 61 61 61 61 61 61 62 62 62    _`````aaaaaaabbb   
00/59EA: 62 62 62 62 62 62 62 62 63 63 63 63 63 63 64 64    bbbbbbbbccccccdd   
00/59FA: 64 65 65 66 66 67 67 68 68 68 68 68 69 69 69 69    deeffgghhhhhiiii   
00/5A0A: 6A 6A 6A 6A 6B 6B 6C 6D 6D 6D 6D 6D 6D 6D 6D 6D    jjjjkklmmmmmmmmm   
00/5A1A: 6E 6F 70 70 71 72 72 72 72 72 73 74 74 74 75 75    noppqrrrrrstttuu   
00/5A2A: 75 76 76 76 76 76 76 76 77 77 77 77 77 78 78 79    uvvvvvvvwwwwwxxy   
00/5A3A: 79 7A 7B 7B 7C 7C 7D 7D 7E 7E 7E 7F 7F 80 80 80    yz{{||}}~~~...   
00/5A4A: 80 80 80 81 81 81 81 81 82 82 82 82 82 83 83 83    ................   
00/5A5A: 83 83 83 83 83 83 83 83 83 84 84 84 84 84 84 85    ................   
00/5A6A: 85 86 86 86 86 86 87 87 87 87 87 87 87 87 87 87    ................   
00/5A7A: 88 88 88 88 88 88 88 88 89 89 89 89 89 8A 8A 8A    ................   
00/5A8A: 8A 8A 8A 8A 8A 8A 8B 8B 8B 8B 8C 8C 8D 8D 8D 8E    ................   
00/5A9A: 8F 8F 90 91 91 91 91 91 91 91 92 92 92 00 00 00    ................   
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The strings                                                             INDEX \/
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
00/6201: 02F648385C                 HEX   02F648385C24                        1D
00/6207: 01C0000201                 HEX   01C00002010001007444E4F4B898143C    1E
00/6217: 01C0000101                 HEX   01C0000101010200A414EE8430E014I     1F
00/6229: 01C0000000                 HEX   01C0000000000100147C                20
00/6233: 0A0003282C                 HEX   0A0003282CFF208002243003480805I     21
00/6253: 1000246C3C                 HEX   1000246C3C645CA448B888589C44A8I     22
00/6275: 110028583C                 HEX   110028583C4448585C447C6468787CI     23
00/6299: 4C6F6F6B20                 ASC   'Look in your manual for this&pI    24*
00/62C9: 6669727374                 ASC   'first&letter on row ='             25
00/62DE: 7365636F6E                 ASC   'second&letter on row ='            26
00/62F4: 666F757274                 ASC   'fourth&letter on row ='            27
00/630A: 7369787468                 ASC   'sixth&letter on row ='             28
00/631F: 2C2062656C                 ASC   ', below.&&='                       29
00/632A: 4E6F2C2074                 ASC   'No, that+s not it.&One more trI    2A*
00/634F: 4120636F66                 ASC   'A coffee pot? @'                   2B
00/635E: 230520636F                 ASC   '#'05' coffee@'                     2C
00/6368: 5F7D284865                 ASC   '_}(Hey, what+s this?&&The wizaI    2D
00/641F: 5F7D28446F                 ASC   '_}(Don+t try to fool me, I wroI    2E
00/6471: 5F7D285765                 ASC   '_}(Well, toodle-oo then. We+veI    2F
00/64CB: 5F7D284E6F                 ASC   '_}(Now there+s a good sport. HI    30
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The protection routine
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
00/CE07: 0E0D1336     LCE07         HEX   0E0D1336                             
00/CE0B: 1610291D                   HEX   1610291D                             
00/CE0F: 25262728     LCE0F         HEX   25262728        ; msg list index     
00/CE13: 02040507     LCE13         HEX   02040507                             
00/CE17: 5955424F59                 ASC   'YUBOYVNOQJDAUSXCFJKXXUEZSKIQFBI     
00/CE97: CC                         ASC   "L"                                   
00/CE98: 47                         ASC   'G'                                   
00/CE99: 00                         DB    $00                                   
00/CE9A: 00                         DB    $00                                   
00/CE9B: AD99CE                     LDA   $CE99           ; Do prot?           
00/CE9E: F001                       BEQ   $CEA1                                 
00/CEA0: 60                         RTS                                         
00/CEA1: EE99CE                     INC   $CE99           ; We're good         
00/CEA4: 20ABCE                     JSR   $CEAB           ; do it               
00/CEA7: 20ABCE                     JSR   $CEAB           ; again?             
00/CEAA: 60                         RTS                                         
00/CEAB: A900                       LDA   #$00            ; nb of tries         
00/CEAD: 8D8919                     STA   $1989                                 
00/CEB0: 20DF54                     JSR   $54DF           ; random value       
00/CEB3: 4D97CE                     EOR   $CE97           ; w/mod value         
00/CEB6: 297F                       AND   #$7F                                 
00/CEB8: 8D6119                     STA   $1961           ; our index           
00/CEBB: A224                       LDX   #$24                                 
00/CEBD: 201255                     JSR   $5512           ; show msg           
00/CEC0: AD6119                     LDA   $1961                                 
00/CEC3: 2903                       AND   #$03                                 
00/CEC5: A8                         TAY                                         
00/CEC6: BE0FCE                     LDX   LCE0F,Y         ; get first           
00/CEC9: 204155                     JSR   $5541                                 
00/CECC: AD6119                     LDA   $1961                                 
00/CECF: 4A                         LSR                                         
00/CED0: 4A                         LSR                                         
00/CED1: 2903                       AND   #$03                                 
00/CED3: A8                         TAY                                         
00/CED4: B913CE                     LDA   LCE13,Y         ; get second         
00/CED7: 18                         CLC                                         
00/CED8: 6930                       ADC   #$30                                 
00/CEDA: 20C0D3                     JSR   $D3C0                                 
00/CEDD: A229                       LDX   #$29                                 
00/CEDF: 204155                     JSR   $5541           ; show msg           
00/CEE2: 201DD3                     JSR   $D31D                                 
00/CEE5: AD6119                     LDA   $1961                                 
00/CEE8: 4A                         LSR                                         
00/CEE9: 4A                         LSR                                         
00/CEEA: 4A                         LSR                                         
00/CEEB: 4A                         LSR                                         
00/CEEC: 2907                       AND   #$07                                 
00/CEEE: A8                         TAY                                         
00/CEEF: B907CE                     LDA   LCE07,Y                               
00/CEF2: 2045D3                     JSR   $D345                                 
00/CEF5: 20B9D5                     JSR   $D5B9           ; Get a key           
00/CEF8: C900                       CMP   #$00                                 
00/CEFA: F0F9                       BEQ   $CEF5                                 
00/CEFC: C961                       CMP   #$61                                 
00/CEFE: 9007                       BCC   $CF07                                 
00/CF00: C97B                       CMP   #$7B                                 
00/CF02: B003                       BCS   $CF07                                 
00/CF04: 38                         SEC                                         
00/CF05: E920                       SBC   #$20                                 
00/CF07: AE6119                     LDX   $1961           ; our index           
00/CF0A: DD17CE                     CMP   $CE17,X         ; good key?           
00/CF0D: F019                       BEQ   $CF28           ; yes, leave         
00/CF0F: AD8919                     LDA   $1989           ; next try?           
00/CF12: D00B                       BNE   $CF1F                                 
00/CF14: EE8919                     INC   $1989                                 
00/CF17: A22A                       LDX   #$2A                                 
00/CF19: 201255                     JSR   $5512           ; display msg         
00/CF1C: 4CBBCE                     JMP   $CEBB           ; loop               
00/CF1F: 68                         PLA                   ; bing               
00/CF20: 68                         PLA                                         
00/CF21: 8A                         TXA                   ; copy               
00/CF22: 48                         PHA                                         
00/CF23: 98                         TYA                                         
00/CF24: 48                         PHA                                         
00/CF25: 4CBC74                     JMP   $74BC                                 
00/CF28: 60                         RTS                   ; just RTS?           
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: 2928
Localisation: Le Chesnay, France

MessagePosté le: Mar 22 Mar 2016, 11:27    Sujet du message: Répondre en citant

And the Block.Warden view:

Code:

Block: $0072 (114)      Volume name: DISK            Monday     22-Mar-16 11:25
Prefix: /DISK/                                                                 
Following: CODE, Type BIN, Rel block 103, Byte $00CD9B                         
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 100: D3 A9 0C 20 45 D3 60 0E 0D 13 36 16 10 29 1D 25   S). ES`...6..).%   
  b Z 110: 26 27 28 02 04 05 07 59 55 42 4F 59 56 4E 4F 51   &'(....YUBOYVNOQ   
B y Z 120: 4A 44 41 55 53 58 43 46 4A 4B 58 58 55 45 5A 53   JDAUSXCFJKXXUEZS   
L   Z 130: 4B 49 51 46 42 48 59 48 44 47 59 42 58 43 4E 4E   KIQFBHYHDGYBXCNN   
O G Z 140: 44 45 47 46 48 47 59 4E 4E 48 4A 46 51 59 48 46   DEGFHGYNNHJFQYHF   
C l Z 150: 42 48 48 4B 52 4E 48 47 49 4E 48 48 42 47 52 45   BHHKRNHGINHHBGRE   
K e Z 160: 46 41 43 42 59 46 55 4B 44 47 4F 50 45 44 43 58   FACBYFUKDGOPEDCX   
  n Z 170: 58 4C 43 4B 44 46 52 49 47 4A 4E 52 48 47 43 44   XLCKDFRIGJNRHGCD   
W   Z 180: 42 48 4A 53 51 53 47 55 4B 4E 4C 4C 4B 4B 4A 42   BHJSQSGUKNLLKKJB   
A B Z 190: 48 42 4A 51 4A 47 47 CC 47 00 00>AD<99 CE F0 01   HBJQJGGLG..-.Np.   
R r Z 1A0: 60 EE 99 CE 20 AB CE 20 AB CE 60 A9 00 8D 89 19   `n.N +N +N`)....   
D e Z 1B0: 20 DF 54 4D 97 CE 29 7F 8D 61 19 A2 24 20 12 55    _TM.N).a."$ .U   
E d Z 1C0: AD 61 19 29 03 A8 BE 0F CE 20 41 55 AD 61 19 4A   -a.).(>.N AU-a.J   
N o Z 1D0: 4A 29 03 A8 B9 13 CE 18 69 30 20 C0 D3 A2 29 20   J).(9.N.i0 @S")   
  n Z 1E0: 41 55 20 1D D3 AD 61 19 4A 4A 4A 4A 29 07 A8 B9   AU .S-a.JJJJ).(9   
    Z 1F0: 07 CE 20 45 D3 20 B9 D5 C9 00 F0 F9 C9 61 90 07   .N ES 9UI.pyIa..   
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