Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.129 - CLIENT : 54.198.205.153

 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 

Mancala IIgs (California Dreams, 1988)

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

MessagePosté le: Mer 24 Fév 2016, 23:53    Sujet du message: Mancala IIgs (California Dreams, 1988) Répondre en citant

#786 (because #785 will come later) - Mancala is an African game from the ancient times and, despite the documentation, I will not be able to explain that board game...

Protection type
On a standard ProDOS 16 3.5" disk, we have a really really well-designed game. In all aspects: gfx, sounds, animation. The game is beautiful. And we have... a password protection title: "What is the 1..4th letter in line X...". You have two tries. If you fail after the second one, the game ends.

There could be a fun way to bypass the protection check: search in the code for where the number of tries is located and replaced it with 27. That's more letters than the alphabet Wink

How to copy
Use ZZCopy or Photonix II then put your original disk in a dry and safe place.

Some sort of reverse engineering
As usual, we have a compiled program with segments well separated: code / data / direct page & stack / arrays / globals. That's great.
1. We search for our text strings in the arrays segment. We find them at $02/8C7B. Where is that offset called?
2. It is called in segment 4 (MAIN1) at $04/0D36. The entry point of the routine is at $04/0D26. Where is that offset called?
3. It is called in segment 4 (MAIN1) by a routine that begins at $04/0BEC. Where is that offset called (interesting? huh)?
4. It is called *TWICE* in segment 1 (MAIN) at $01/14F7 and $01/3861. And both do not use nor check the result value.
=> So, we'll patch the routine that is called twice and we'll put a RTL at its first byte.

How to crack
Launch Block.Warden and:
Code:

Prefix /MANCALA.1.0
File MANCALA.SYS16
At offset $13C31: 0B -> 6B

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 Jeu 25 Fév 2016, 0:01; é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: 2945
Localisation: Le Chesnay, France

MessagePosté le: Mer 24 Fév 2016, 23:56    Sujet du message: Répondre en citant

And as usual, some code...

Code:

The arrays with the strings used by the protection routine
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
02/8C7B: 31737400                   ASC   '1st'00                               
02/8C7F: 326E6400                   ASC   '2nd'00                               
02/8C83: 33726400                   ASC   '3rd'00                               
02/8C87: 34746800                   ASC   '4th'00                               
02/8C8B: 5768617420                 ASC   'What is the %s letter'00             
02/8CA1: 696E206C69                 ASC   'in line %d on page %d ?'00           
02/8CB9: 4F4B00                     ASC   'OK'00                               
02/8CBC: 00                         DB    $00                                   
02/8CBD: 00                         DB    $00                                   
02/8CBE: 00                         DB    $00                                   
02/8CBF: 456E746572                 ASC   'Enter:'00                           
02/8CC6: 00                         DB    $00                                   
02/8CC7: 00                         DB    $00                                   
02/8CC8: 00                         DB    $00                                   
02/8CC9: 00                         DB    $00                                   
02/8CCA: 00                         DB    $00                                   
02/8CCB: 00                         DB    $00                                   
02/8CCC: 00                         DB    $00                                   
02/8CCD: 00                         DB    $00                                   
02/8CCE: 00                         DB    $00                                   
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The password protection display routine
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
04/0D26: 0B                         PHD                   ; ENTRY POINT         
04/0D27: 3B                         TSC                                         
04/0D28: 38                         SEC                                         
04/0D29: E9F300                     SBC   #$00F3                               
04/0D2C: 5B                         TCD                                         
04/0D2D: 69BDFF                     ADC   #$FFBD                               
04/0D30: 1B                         TCS                                         
04/0D31: A5F9                       LDA   $F9                                   
04/0D33: 827F00                     BRL   $0DB5                                 
04/0D36: F40200                     PEA   ^$028C7B                             
04/0D39: F47B8C                     PEA   $028C7B                               
04/0D3C: F40000                     PEA   $0000                                 
04/0D3F: 7B                         TDC                                         
04/0D40: 18                         CLC                                         
04/0D41: 698900                     ADC   #$0089                               
04/0D44: 48                         PHA                                         
04/0D45: 22E48F01                   JSL   $018FE4                               
04/0D49: 7A                         PLY                                         
04/0D4A: 7A                         PLY                                         
04/0D4B: 7A                         PLY                                         
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

Its caller
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
04/0BEC: 0B                         PHD                   ; Upper entry point   
04/0BED: 3B                         TSC                                         
04/0BEE: 38                         SEC                                         
04/0BEF: E9FB00                     SBC   #$00FB                               
04/0BF2: 5B                         TCD                                         
04/0BF3: 69B000                     ADC   #$00B0                               
04/0BF6: 1B                         TCS                                         
04/0BF7: F41800                     PEA   $0018                                 
04/0BFA: 221C0704                   JSL   $04071C                               
04/0BFE: 7A                         PLY                                         
04/0BFF: 38                         SEC                                         
04/0C00: E90100                     SBC   #$0001                               
04/0C03: 85F0                       STA   $F0                                   
04/0C05: 228D6501                   JSL   $01658D                               
04/0C09: F48200                     PEA   $0082                                 
04/0C0C: F4A000                     PEA   $00A0                                 
04/0C0F: 221C0F04                   JSL   $040F1C                               
04/0C13: 7A                         PLY                                         
04/0C14: 7A                         PLY                                         
04/0C15: 22131C01                   JSL   $011C13                               
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The first call in segment 1
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
01/14E6: 48                         PHA                                         
01/14E7: 22F22201                   JSL   $0122F2                               
01/14EB: 7A                         PLY                                         
01/14EC: 7A                         PLY                                         
01/14ED: F43901                     PEA   $0139                                 
01/14F0: 22941D01                   JSL   $011D94                               
01/14F4: 7A                         PLY                                         
01/14F5: 8004                       BRA   $14FB                                 
01/14F7: 22EC0B04                   JSL   $040BEC         ; Call protection     
01/14FB: 22A60404                   JSL   $0404A6                               
01/14FF: 22111401                   JSL   $011411                               
01/1503: 7B                         TDC                                         
01/1504: 18                         CLC                                         
01/1505: 69FB00                     ADC   #$00FB                               
01/1508: 1B                         TCS                                         
01/1509: 2B                         PLD                                         
01/150A: 6B                         RTL                                         
01/150B: 0B                         PHD                                         
01/150C: 3B                         TSC                                         
01/150D: 38                         SEC                                         
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

The second and last call in segment 1
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
01/3845: 82A500                     BRL   $38ED                                 
01/3848: 22943201                   JSL   $013294                               
01/384C: 829E00                     BRL   $38ED                                 
01/384F: 22CF0504                   JSL   $0405CF                               
01/3853: 22FB3801                   JSL   $0138FB                               
01/3857: 829700                     BRL   $38F1                                 
01/385A: 829000                     BRL   $38ED                                 
01/385D: 22CF0504                   JSL   $0405CF                               
01/3861: 22EC0B04                   JSL   $040BEC         ; Call protection     
01/3865: 828900                     BRL   $38F1                                 
01/3868: 828200                     BRL   $38ED                                 
01/386B: D4FB                       PEI   $FB                                   
01/386D: 22B73501                   JSL   $0135B7                               
01/3871: 7A                         PLY                                         
01/3872: 827C00                     BRL   $38F1                                 
01/3875: 22CF0504                   JSL   $0405CF                               
01/3879: 827100                     BRL   $38ED                                 
01/387C: A5FB                       LDA   $FB                                   
01/387E: 38                         SEC                                         
01/387F: E90500                     SBC   #$0005                               
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS


And the Block.Warden view:

Code:

Block: $0A03 (2563)     Volume name: SANDBOX         Tuesday    24-Feb-16 11:25
Prefix: /SANDBOX/MANCALA.1.0/                                                   
Following: MANCALA.SYS16, Type S16, Rel block 159, Byte $013C00                 
                                                                               
1031: 0B          PHD             .     1058: 7A          PLY             z     
1032: 3B          TSC             ;     1059: 7A          PLY             z     
1033: 38          SEC             8     105A: 22 13 1C 00 JSL  $001C13    "... 
1034: E9 FB       SBC  #$FB       i{    105E: 64 F2       STZ  $F2        dr   
1036: 00          BRK             .     1060: A5 F0       LDA  $F0        %p   
1037: 5B          TCD             [     1062: 48          PHA             H     
1038: 69 B0       ADC  #$B0       i0    1063: A9 07       LDA  #$07       ).   
103A: 00          BRK             .     1065: 00          BRK             .     
103B: 1B          TCS             .     1066: 18          CLC             .     
103C: F4 18 00    PEA  $0018      t..   1067: 22 5C 71 00 JSL  $00715C    "\q. 
103F: 22 1C 07 00 JSL  $00071C    "...  106B: 68          PLA             h     
1043: 7A          PLY             z     106C: A2 00       LDX  #$00       ".   
1044: 38          SEC             8     106E: 00          BRK             .     
1045: E9 01       SBC  #$01       i.    106F: DA          PHX             Z     
1047: 00          BRK             .     1070: 48          PHA             H     
1048: 85 F0       STA  $F0        .p    1071: A9 D3       LDA  #$D3       )S   
104A: 22 8D 65 00 JSL  $00658D    ".e.  1073: 8B          PHB             .     
104E: F4 82 00    PEA  $0082      t..   1074: A2 00       LDX  #$00       ".   
1051: F4 A0 00    PEA  $00A0      t .   1076: 00          BRK             .     
1054: 22 1C 0F 00 JSL  $000F1C    "...  1077: 22 C0 6F 00 JSL  $006FC0    "@o. 


Block: $0A03 (2563)     Volume name: SANDBOX         Tuesday    24-Feb-16 11:26
Prefix: /SANDBOX/MANCALA.1.0/                                                   
Following: MANCALA.SYS16, Type S16, Rel block 159, Byte $013C31                 
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 000: 18 69 FB 00 1B 2B 6B 0B 3B 38 E9 FB 00 5B 69 F4   .i{..+k.;8i{.[it   
  b Z 010: 00 1B F4 00 00 AD 66 02 48 A2 04 0F 22 00 00 E1   ..t..-f.H".."..a   
B y Z 020: B0 03 A9 00 00 8F 02 00 00 7B 18 69 FB 00 1B 2B   0.)......{.i{..+   
L   Z 030: 6B>6B<3B 38 E9 FB 00 5B 69 B0 00 1B F4 18 00 22   kk;8i{.[i0..t.."   
O G Z 040: 1C 07 00 7A 38 E9 01 00 85 F0 22 8D 65 00 F4 82   ...z8i...p".e.t.   
C l Z 050: 00 F4 A0 00 22 1C 0F 00 7A 7A 22 13 1C 00 64 F2   .t ."...zz"...dr   
K e Z 060: A5 F0 48 A9 07 00 18 22 5C 71 00 68 A2 00 00 DA   %pH)..."\q.h"..Z   
  n Z 070: 48 A9 D3 8B A2 00 00 22 C0 6F 00 68 FA 85 F6 86   H)S.".."@o.hz.v.   
W   Z 080: F8 A0 06 00 B7 F6 29 FF 00 48 A5 F0 48 A9 07 00   x ..7v).H%pH)..   
A B Z 090: 18 22 5C 71 00 68 A2 00 00 DA 48 A9 D3 8B A2 00   ."\q.h"..ZH)S.".   
R r Z 0A0: 00 22 C0 6F 00 68 FA 85 F6 86 F8 A0 06 00 B7 F6   ."@o.hz.v.x ..7v   
D e Z 0B0: 29 FF 00 48 A5 F0 48 A9 07 00 18 22 5C 71 00 68   ).H%pH)..."\q.h   
E d Z 0C0: A2 00 00 DA 48 A9 D3 8B A2 00 00 22 C0 6F 00 68   "..ZH)S.".."@o.h   
N o Z 0D0: FA 85 F6 86 F8 A7 F6 48 A5 F0 48 A9 07 00 18 22   z.v.x'vH%pH)..."   
  n Z 0E0: 5C 71 00 68 A2 00 00 DA 48 A9 D3 8B A2 00 00 22   \q.h"..ZH)S.".."   
    Z 0F0: C0 6F 00 68 FA 85 F6 86 F8 A0 02 00 B7 F6 48 A5   @o.hz.v.x ..7vH%   
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