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

World Tour Golf IIgs (Electronic Arts, 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: 2928
Localisation: Le Chesnay, France

MessagePosté le: Lun 11 Jan 2016, 17:42    Sujet du message: World Tour Golf IIgs (Electronic Arts, 1987) Répondre en citant

#712 - "Cath 'Ya On the Back Nine". Real golf action, become a master course architect and visit the driving range!

Disk structure
This is a standard 3.5" disk with ProDOS 16 on it.

Protection type
Sort of password protected. If you fail in answering to the question (one hole is displayed, you must tell the name of the course) but if you fail, after X attempts, you can still play the game but as the demo version (two holes per course only)

Sort of reverse engineering
The "Please type the name of the..." is located at $02/1558 (means, segment 2, offset $1558)
That address is used in a routine at $01/0B05 (this is the protection routine) called by a JSL at $01/603C. And that's all.

Within the code at $01/0B05, there are two variables used that I will describe now:
Code:

- $02/13EB: default value 0001, on entry set to $0000, on exit to $0001
This is the demo flag. 1 means game, 0 means demo
- $02/1705: default value 0000, on entry set to $0001, on exit to $0000
This is the protection run flag. 0 means "I've run the protection"

The values mean that the protection check routine sets the variables to play the demo whereas the default values mean play the game...

How to crack
With our beloved Block.Warden
Code:

Prefix /WTG
Follow GOLF
At offset $6074: 22 -> AF
Write block


Note for the protection coder: do not set the useful values in the variables at compile time, that will allow the pirate to bypass the protection check easily...

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

MessagePosté le: Lun 11 Jan 2016, 17:43    Sujet du message: Répondre en citant

This is the C strings of the program (yes, it is a program written in C)

Code:

02/1558: 506C656173                 ASC   'Please type the name of the coI     
02/157B: 66726F6D20                 ASC   'from which this hole was takenI     
02/159B: 0D312F706C                 STR   '1/players.dat'                       
02/15A9: 00                         ASC   00                                   
02/15AA: 556E61626C                 ASC   'Unable to save PLAYERS.DAT'00       
02/15C5: 0000                       BRK   $00                                   
02/15C7: 0000                       BRK   $00                                   
02/15C9: 0000                       BRK   $00                                   
02/15CB: 0000                       BRK   $00                                   
02/15CD: 0000                       BRK   $00                                   
02/15CF: 0000                       BRK   $00                                   
02/15D1: 0000                       BRK   $00                                   
02/15D3: 0000                       BRK   $00                                   
02/15D5: 0000                       BRK   $00                                   
02/15D7: 0000                       BRK   $00                                   
02/15D9: 0000                       BRK   $00                                   
02/15DB: 0000                       BRK   $00                                   
02/15DD: 0000                       BRK   $00                                   
02/15DF: 0000                       BRK   $00                                   
02/15E1: 0000                       BRK   $00                                   


And the protection routine

Code:

01/0B05: 0B                         PHD                   ; The protection rout
01/0B06: 3B                         TSC                                         
01/0B07: 38                         SEC                                         
01/0B08: E9FB00                     SBC   #$00FB                               
01/0B0B: 5B                         TCD                                         
01/0B0C: 69D800                     ADC   #$00D8                               
01/0B0F: 1B                         TCS                                         
01/0B10: 64F0                       STZ   $F0                                   
01/0B12: 9CEB13                     STZ   $0213EB         ; Demo flag (was $0001)
01/0B15: A90100                     LDA   #$0001          ; Protection run flag (was $0000)
01/0B18: 8D0517                     STA   $021705                               
01/0B1B: F40800                     PEA   $0008                                 
01/0B1E: A204152200                 _ClearScreen                               
01/0B25: 8D1700                     STA   $020017                               
01/0B28: 227D6F03                   JSL   $036F7D                               
01/0B2C: F44E00                     PEA   $004E                                 
01/0B2F: F43C00                     PEA   $003C                                 
01/0B32: F40200                     PEA   ^$021558        ; "Please type the..."
01/0B35: F45815                     PEA   $021558                               
01/0B38: 227CA101                   JSL   $01A17C                               


And the call to the protection

Code:

01/6022: 69EE00                     ADC   #$00EE                               
01/6025: 1B                         TCS                                         
01/6026: 220E6201                   JSL   $01620E                               
01/602A: 225C0301                   JSL   $01035C                               
01/602E: 226DA801                   JSL   $01A86D                               
01/6032: 48                         PHA                                         
01/6033: 22CC8303                   JSL   $0383CC                               
01/6037: 7A                         PLY                                         
01/6038: 22050B01                   JSL   $010B05         ; Call the protection
01/603C: 22F76003                   JSL   $0360F7                               
01/6040: 64F0                       STZ   $F0                                   
01/6042: 8010                       BRA   $6054                                 
01/6044: A5F0                       LDA   $F0                                   
01/6046: AA                         TAX                                         
01/6047: A90000                     LDA   #$0000                               
01/604A: E220                       SEP   #$20                                 
01/604C: 9FCE4802                   STAL  $0248CE,X                             
01/6050: C220                       REP   #$20                                 
01/6052: E6F0                       INC   $F0                                   
01/6054: A5F0                       LDA   $F0                                   
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: Lun 11 Jan 2016, 17:44    Sujet du message: Répondre en citant

The Block.Warden view. See the > and < at offset $74

Before:

Code:

Block: $01A8 (424)      Volume name: WTG             Sunday     11-Jan-16  5:25
Prefix: /WTG/                                                                   
Following: GOLF, Type S16, Rel block 49, Byte $006074                           
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 000: 86 F4 18 65 F4 48 22 00 00 00 7A 7A 85 E8 A5 E8   .t.etH"...zz.h%h   
  b Z 010: C9 02 00 D0 2E A9 C3 00 38 E5 EE 48 A9 02 00 48   I..P.)C.8enH)..H   
B y Z 020: A5 EC 38 22 00 00 00 68 48 A9 01 01 FA 86 F4 18   %l8"...hH)..z.t.   
L   Z 030: 65 F4 48 F4 00 00 F4 00 00 22 00 00 00 7A 7A 7A   etHt..t.."...zzz   
O G Z 040: 7A 80 0C F4 00 00 F4 00 00 22 00 00 00 7A 7A 7B   z..t..t.."...zz{   
C l Z 050: 18 69 F7 00 1B 2B 6B 0B 3B 38 E9 FB 00 5B 69 EE   .iw..+k.;8i{.[in   
K e Z 060: 00 1B 22 00 00 00 22 00 00 00 22 00 00 00 48 22   .."..."..."...H"   
  n Z 070: 00 00 00 7A>22<00 00 00 22 00 00 00 64 F0 80 10   ...z"..."...dp..   
W   Z 080: A5 F0 AA A9 00 00 E2 20 9F 00 00 00 C2 20 E6 F0   %p*)..b ....B fp   
A B Z 090: A5 F0 38 E9 34 00 70 03 49 00 80 10 E3 22 00 00   %p8i4.p.I...c"..   
R r Z 0A0: 00 A8 D0 03 82 0D 01 A9 01 00 D0 03 82 02 01 AD   .(P....)..P....-   
D e Z 0B0: 00 00 D0 03 82 4F 00 9C 00 00 A9 02 00 E2 20 8D   ..P..O....)..b .   
E d Z 0C0: 00 00 C2 20 29 FF 00 8D 00 00 9C 00 00 A9 03 00   ..B ).......)..   
N o Z 0D0: 8D 00 00 F4 02 00 22 00 00 00 7A E2 20 8D 00 00   ...t.."...zb ...   
  n Z 0E0: C2 20 22 00 00 00 9C 00 00 A9 00 00 8D 00 00 8D   B "......)......   
    Z 0F0: 00 00 A9 01 00 8D 00 00 E2 20 9C 00 00 C2 20 22   ..).....b ...B "   


After:

Code:

Block: $01A8 (424)      Volume name: WTG             Sunday     11-Jan-16  5:25
Prefix: /WTG/                                                                   
Following: GOLF, Type S16, Rel block 49, Byte $006074                           
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 000: 86 F4 18 65 F4 48 22 00 00 00 7A 7A 85 E8 A5 E8   .t.etH"...zz.h%h   
  b Z 010: C9 02 00 D0 2E A9 C3 00 38 E5 EE 48 A9 02 00 48   I..P.)C.8enH)..H   
B y Z 020: A5 EC 38 22 00 00 00 68 48 A9 01 01 FA 86 F4 18   %l8"...hH)..z.t.   
L   Z 030: 65 F4 48 F4 00 00 F4 00 00 22 00 00 00 7A 7A 7A   etHt..t.."...zzz   
O G Z 040: 7A 80 0C F4 00 00 F4 00 00 22 00 00 00 7A 7A 7B   z..t..t.."...zz{   
C l Z 050: 18 69 F7 00 1B 2B 6B 0B 3B 38 E9 FB 00 5B 69 EE   .iw..+k.;8i{.[in   
K e Z 060: 00 1B 22 00 00 00 22 00 00 00 22 00 00 00 48 22   .."..."..."...H"   
  n Z 070: 00 00 00 7A>AF<00 00 00 22 00 00 00 64 F0 80 10   ...z/..."...dp..   
W   Z 080: A5 F0 AA A9 00 00 E2 20 9F 00 00 00 C2 20 E6 F0   %p*)..b ....B fp   
A B Z 090: A5 F0 38 E9 34 00 70 03 49 00 80 10 E3 22 00 00   %p8i4.p.I...c"..   
R r Z 0A0: 00 A8 D0 03 82 0D 01 A9 01 00 D0 03 82 02 01 AD   .(P....)..P....-   
D e Z 0B0: 00 00 D0 03 82 4F 00 9C 00 00 A9 02 00 E2 20 8D   ..P..O....)..b .   
E d Z 0C0: 00 00 C2 20 29 FF 00 8D 00 00 9C 00 00 A9 03 00   ..B ).......)..   
N o Z 0D0: 8D 00 00 F4 02 00 22 00 00 00 7A E2 20 8D 00 00   ...t.."...zb ...   
  n Z 0E0: C2 20 22 00 00 00 9C 00 00 A9 00 00 8D 00 00 8D   B "......)......   
    Z 0F0: 00 00 A9 01 00 8D 00 00 E2 20 9C 00 00 C2 20 22   ..).....b ...B "   
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