Index du Forum
IDENTIFICATION SERVEUR : 51.77.218.217 - CLIENT : 3.233.215.231

 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 

Le temple d'Apshai (Sogiciel, 1979)

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

MessagePosté le: Dim 05 Juin 2011, 8:29    Sujet du message: Le temple d'Apshai (Sogiciel, 1979) Répondre en citant

This is the French version of the temple of Apshai, the world-famous game from Automated Simulations, which later became Epyx.


PROTECTION TYPE
On a standard DOS 3.3 16-sector disk, the final header markers have been changed:
- D5 AA 96 DE DE
- D5 AA AD DE AA


DISK COPY
Launch Advanced Demuffin
Insert the Temple d'Apshai disk into drive 1
Press B to boot
Copy first side


REMOVE THE PROTECTION
We need to apply the standard final markers values at the right places.
Launch your favorite disk editor
- T0/S3/9B: DE => AA
- T0/S6/B3: DE => AA


Reboot and... aarrggghhhhh... it does not work! It launches a program then reboots... There's a check someplace...


REMOVE THE CHECK OF THE PROTECTION
OK. First, we need to find the boot program: use either Copy II plus (command CHANGE BOOT PROGRAM) or DiskFixer (wander through track 1 where the boot program name is stored)... the file name is VP.

Now, launch Disk Fixer and follow the VP file, command is D (for Directory). You will discover some 65x02 code at $900, called by a CALL 2304 in the BASIC program.

At $900, there's a jump to $918 which 1/ inits an IOB table and 2/ performs the check of the protection and 3/ sets a flag at $08 if process ends correctly.

The code will be described in the next message but, for now, let's see what to do to remove the check:
- T18/S3/1C: 20 => 2C

That change just removes the call to the protection (step 2 above) but leaves all other parts of the protection. You know, the flag may be useful!


Toinet
6/2011
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: 3043
Localisation: Le Chesnay, France

MessagePosté le: Dim 05 Juin 2011, 8:38    Sujet du message: Répondre en citant

Code:


*
* Le temple d'Apshai
* VP - VerifProtect
*

         ORG   $000900
         MX    %11

L1000    =     $1000

         JMP   L0918      ; ENTRY POINT

L0903    DB    $01
L0904    DB    $60
L0905    DB    $01
L0906    DB    $00
L0907    DB    $00
L0908    DB    $00
L0909    DS    2
L090B    DS    2
         DB    $00
         DB    $00
L090F    DB    $00
         DB    $00
         DB    $00
         DB    $60
         DB    $01

L0914    DB    $00
         DB    $01
         DB    $EF
         DB    $D8

L0918    JSR   L0923      ; INIT IOB TABLE
         JSR   L0AA5      ; PERFORM CHECK
         LDA   #$08       ; SET OK FLAG
         STA   $FF
         RTS

L0923    LDA   #$01       ; INIT IOB TABLE
         STA   L0903
         STA   L090F
         STA   L0905
         LDA   #$60
         STA   L0904
         LDA   #$00
         STA   L0906
         LDA   #$02
         STA   L0907
         LDA   #$0F
         STA   L0908
         LDA   #<L0914
         STA   L0909
         LDA   #>L0914
         STA   L0909+1
         LDA   #<L1000
         STA   L090B
         LDA   #>L1000
         STA   L090B+1
         LDA   #$09
         LDY   #$03
         JSR   $03D9
         BCC   L0962
         JMP   $C600      ; I/O ERROR, REBOOT

L0962    LDY   #$00
         LDA   #<L1000
         STA   $FB
         LDA   #>L1000
         STA   $FB+1
         LDA   ($FB),Y
         STA   $EF
         INY
         LDA   ($FB),Y
         STA   $F9
         RTS

L0976    LDA   #$00
         STA   $06
         JSR   L098E
         LDA   $FA
         STA   $ED
         RTS

L0982    LDA   #$01
         STA   $06
         JSR   L098E
         LDA   $FA
         STA   $EE
         RTS

L098E    JSR   $03E3      ; READ NIBBLES
         STY   $EB
         STA   $EB+1
         LDA   #$60
         LDY   #$01
         STA   ($EB),Y
         LDA   #$01
         LDY   #$02
         STA   ($EB),Y
         LDA   $06
         LDY   #$04
         STA   ($EB),Y
         LDA   #$00
         LDY   #$03
         STA   ($EB),Y
         LDA   #$00
         LDY   #$0C
         STA   ($EB),Y
         JSR   $03E3
         JSR   $03D9

         LDA   #$00
         STA   $48
         LDY   #$00
         LDY   #$01
         LDA   ($EB),Y
         TAX
         LDA   $C089,X    ; TURN DRIVE ON
         PHA
         LDA   #<L1000
         STA   $08
         LDA   #>L1000
         STA   $08+1

L09D0    INC   $08
         BNE   L09D0
         DEC   $08+1
         BNE   L09D0

         PLA
         LDA   $C08E,X

         LDA   #<L1000
         STA   $EB
         LDA   #>L1000
         STA   $EB+1

         LDY   #$00       ; READ SYNC NIBBLES
L09E6    LDA   $C08C,X
         BPL   L09E6
         CMP   #$FF
         BNE   L09E6
L09EF    LDA   $C08C,X
         BPL   L09EF
         CMP   #$FF
         BNE   L09E6
L09F8    LDA   $C08C,X
         BPL   L09F8
         CMP   #$FF
         BEQ   L09F8
         BNE   L0A08

L0A03    LDA   $C08C,X    ; READ NIBBLES
         BPL   L0A03
L0A08    STA   ($EB),Y
         INC   $EB
         BNE   L0A03
         INC   $EB+1
         LDA   $EB+1
         CMP   #$40       ; UNTIL $4000
         BCC   L0A03

         LDA   $C088,X    ; TURN DRIVE OFF

         LDA   #<L1000    ; NOW CHECK NIBBLES
         STA   $EB
         LDA   #>L1000
         STA   $EB+1
         LDA   $EB
         CLC
         ADC   #$0A
         STA   $EB
         LDA   $EB+1
         ADC   #$00
         STA   $EB+1

         LDY   #$00
L0A30    LDA   ($EB),Y
L0A32    CMP   #$D5       ; D5
         BEQ   L0A3C
         JSR   L0A9E
         JMP   L0A30

L0A3C    JSR   L0A9E
         LDA   ($EB),Y
         CMP   #$AA       ; AA
         BEQ   L0A47
         BNE   L0A32
L0A47    JSR   L0A9E
         LDA   ($EB),Y
         CMP   #$96       ; 96
         BEQ   L0A52
         BNE   L0A32

L0A52    LDA   $EB
         CLC
         ADC   #$04
         STA   $EB
         LDA   $EB+1
         ADC   #$00
         STA   $EB+1
         JSR   L0A9E
         LDA   ($EB),Y
         CMP   #$AA       ; AA FOUND, GRR!!
         BEQ   L0A6A      ; ORIGINAL DISK HAS DE
         BNE   L0A32

L0A6A    JSR   L0A9E
         LDA   ($EB),Y
         CMP   #$AA       ; AA FOUND, GRR!!
         BNE   L0A32      ; ORIGINAL DISK HAS DE
         CLD
         SEC
         LDA   $EB
         SBC   #$09
         STA   $EB
         LDA   $EB+1
         SBC   #$00
         STA   $EB+1

         LDA   #$00
         STA   $FA
L0A85    LDA   ($EB),Y
         CMP   #$FF
         BNE   L0A9D
         INC   $FA
         SEC
         LDA   $EB
         SBC   #$01
         STA   $EB
         LDA   $EB+1
         SBC   #$00
         STA   $EB+1
         JMP   L0A85
L0A9D    RTS

L0A9E    INC   $EB
         BNE   L0AA4
         INC   $EB+1
L0AA4    RTS

L0AA5    JSR   L0976      ; READ NIBBLES 1
         JSR   L0982      ; READ NIBBLES 2
         LDA   $ED        ; COMPARE ADDRESSES
         CMP   $EF
         BNE   L0AB8
         LDA   $EE
         CMP   $F9
         BNE   L0AB8
         RTS

L0AB8    JMP   $C600      ; VP FAILED, REBOOT
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Archange427



Inscrit le: 01 Avr 2011
Messages: 535
Localisation: 92

MessagePosté le: Dim 05 Juin 2011, 8:51    Sujet du message: Répondre en citant

Même si je ne réponds pas systématiquement, je surveille bien entendu toujours de près cette section et notamment tes posts Antoine !

Et quand il y a du code en plus, quel délice !
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: 3043
Localisation: Le Chesnay, France

MessagePosté le: Dim 05 Juin 2011, 9:03    Sujet du message: Répondre en citant

Archange427 a écrit:
Même si je ne réponds pas systématiquement, je surveille bien entendu toujours de près cette section et notamment tes posts Antoine !

Et quand il y a du code en plus, quel délice !


You're welcome. Quand il s'agit d'une protection on-disk basique (changement de markers), je ne fais plus de grand discours, ce n'est pas passionnant. Ah, il faut que je boote Conan...

Deux infos :
- les images sont disponibles @ http://www.brutaldeluxe.fr/crack/
- j'ai dix explications de cracks en retard

av
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Archange427



Inscrit le: 01 Avr 2011
Messages: 535
Localisation: 92

MessagePosté le: Dim 05 Juin 2011, 9:20    Sujet du message: Répondre en citant

Avec le recul, forcément que tu dois commencer à être blasé. Pour moi tout est presque "neuf" Wink

Et puis pour un jeu de 79 (en BASIC), je trouve que ce n'était pas si mal, avec la petite vérif en ASM.

T'es bien placé pour savoir que pas mal de jeux bien des années plus tard, utiliseront encore uniquement un changement de markers comme protection... Shocked
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