Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.1 - CLIENT : 54.159.113.182

 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 

Oils well (Sierra, 1983)

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

MessagePosté le: Sam 02 Juil 2016, 15:07    Sujet du message: Oils well (Sierra, 1983) Répondre en citant

#891 - This is an arcade game from Sierra. Sorry, I do not have the original box nor the manual and cannot tell what to do!

Disk format
This is a standard 16-sec 5.25" disk that can be copied.

Protection type
When we boot the copy, the game hangs before playing. The HGR screen displays a pattern of weird characters.
As we have a Sierra title, we guess we are in front of a nibble protection type. The one on BC's Quest for tires and so many other games (Ultima II, Time zone...)

Let's disk trace
The first pattern to check is CE 03 for DEC $xx03. If we find one at offset $00 on a sector, then we know we have the protection check.
We boot my copy disk and launch DiskFixer. We Find the Hex pattern CE03 and find an answer on T10/SF. We believe that the protection resides in $1F00 as the third value is $1F. We will validate that:
Now, enter 00 at offset $00 and save the sector on disk. We will force a break.
We boot the disk, select the number of players and other data and *beep* we crash!
Type C054 then return, we crashed at address $1F00.
We confirm that the protection check lies at $1F00. Let's try to find where it is called.

Boot my copy disk, select DiskFixer, reset the original value at T10/SF/0:CE then search for the Hex pattern 20 00 1F or 4C 00 1F and we find... none on the disk.
Ah! Too bad! There are two options now:
1. Follow the Computist route: put a 60 and AD in T10/SF/0
2. Try to find how the code is called.

For 1, some explanations must be given:
- 60 means RTS or Return from subroutine.
- AD means LDA. That is normally useless but Sierra titles have a check of the protection code to ensure that the added bytes or each pair of bytes has one with bit 7 on and one with bit 7 off. I have not checked here but you can crack it easily by
Code:

Reading T10/SF
At offset $00: CE 03 -> 60 AD
Writing the sector back onto disk


We'll go the second route and try to kill the protection check call. Let's return to our 1F00 values. Now, we'll search for A9 1F and we find an answer at T16/S7/C7. The code analysis is really interesting:
Code:

----------- DISASSEMBLY MODE -----------
00B8:A9 10          LDA   #$10          ; is that our track?
00BA:8D C2 03       STA   $03C2         
00BD:A9 0F          LDA   #$0F          ; is that our sector?
00BF:8D C3 03       STA   $03C3         
00C2:A9 00          LDA   #$00          ; our low address?
00C4:8D C6 03       STA   $03C6         
00C7:A9 1F          LDA   #$1F          ; and high address?
00C9:8D C7 03       STA   $03C7         
00CC:A9 10          LDA   #$10         
00CE:8D C4 03       STA   $03C4         
00D1:A9 00          LDA   #$00         
00D3:8D C5 03       STA   $03C5         
00D6:A9 00          LDA   #$00         
00D8:8D C8 03       STA   $03C8         
00DB:A9 83          LDA   #$83         
00DD:8D C9 03       STA   $03C9         
00E0:A9 00          LDA   #$00         
00E2:8D 30 02       STA   $0230         
00E5:20 CC 73       JSR   $73CC         ; a read call maybe?


In that short routine, we have the data we have already seen: the track/sector of the protection check and its load address. That one is stored at $3C6..$3C7.

So, now, Find Hex values C603 ($03C6) on disk. The answers are on:
- T10/SA/7: there is an indirect jump to the values of $3C6..$3C7
- T10/SB/AB: $3C6 sets the RWTS load address
- T16/7/C5: where we were, so we do not care

The first answer is probably (surely) our protection call, let's bypass it:
Code:

Read T10/SA
At offset $6: 6C -> 2C
Write T10/SA

Gotcha!

The next messages will show some code.

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

Reboot and... enjoy,

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

MessagePosté le: Sam 02 Juil 2016, 15:08    Sujet du message: Répondre en citant

The nibble count on T10/SF:

Code:

-------------- DISK EDIT ---------------
TRACK $10/SECTOR $0F/VOLUME $FE/BYTE $00
----------------------------------------
$00:>CE<03 1F EF 03 1F AD 28    NC_/C_-(
$08: 1F 49 C9 D0 01 20 8D 28    _IIPA .(
$10: 1F 18 D0 01 4C A0 29 98    _XPAL ).
$18: 90 01 20 59 00 1F 99 00    .A Y@_.@
$20: 1F C8 D0 F3 98 10 01 4C    _HP3.PAL
$28: 60 29 A6 DF 9B A0 C2 98    `)&_. B.
$30: 99 86 92 DB 14 35 8B 8A    ...[T5..
$38: B1 F9 93 3E B1 3D 85 1F    19.>1=._
$40: D0 5E 52 42 64 8D 86 77    P^RB$..7
$48: 15 C5 8A DB B4 F0 C2 8F    UE.[40B.
$50: 40 5B 9B 9A 84 58 EB DF    @[...X+_
$58: 98 15 5A 44 B6 B7 E3 D3    .UZD67#S
$60: A0 51 8D AD 64 DE B6 B0     Q.-$^60
$68: CA 76 F0 D6 1B 72 F3 6F    J60V[23/
$70: 71 BB 62 84 38 75 77 DE    1;".857^
$78: 77 E4 7A 79 94 AD 84 91    7$:9.-..
----------------------------------------
BUFFER 0/SLOT 6/DRIVE 1/MASK OFF/NORMAL
----------------------------------------
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: 2886
Localisation: Le Chesnay, France

MessagePosté le: Sam 02 Juil 2016, 15:09    Sujet du message: Répondre en citant

The call of the protection check

Code:

----------- DISASSEMBLY MODE -----------
00DA:A9 40          LDA   #$40         
00DC:D0 02          BNE   $00E0         
00DE:A9 20          LDA   #$20         
00E0:8D F1 B7       STA   $B7F1         
00E3:A9 01          LDA   #$01         
00E5:8D F4 B7       STA   $B7F4         
00E8:A9 20          LDA   #$20         
00EA:8D A9 03       STA   $03A9         
00ED:20 0A 14       JSR   $140A         
00F0:AD 47 03       LDA   $0347         
00F3:2C 7A 13       BIT   $137A         
00F6:F0 01          BEQ   $00F9         
00F8:60             RTS                 
00F9:A9 6B          LDA   #$6B         
00FB:8D F1 B7       STA   $B7F1         
00FE:A9 04          LDA   #$04         
0100:8D A9 03       STA   $03A9         
0103:20 0A 14       JSR   $140A         
0106:6C C6 03       JMP   ($03C6)       ; call protection
0109:60             RTS                 
010A:CE A9 03       DEC   $03A9         ; read T/S
010D:10 01          BPL   $0110         
010F: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