Cours de déplombage 14



Ecran
Ecran
Ecran
Ecran


Disk : Gdf14.dsk
"-" files are DELETED files | "*" files are LOCKED files
----------------------------------------------------------------------
 B A$0800 (002048) L$14FB (005371) 022 ADVANCED DEMUFFIN 1.1
 B A$5000 (020480) L$009D (000157) 002 GHOSTBUSTERS.DECODE
 B A$0901 (002305) L$0FD2 (004050) 017 GHOSTBUSTERS.DECODE.S
 B A$4F00 (020224) L$00D1 (000209) 002 GHOSTBUSTERS.READ NIBB
 B A$0901 (002305) L$11D8 (004568) 019 GHOSTBUSTERS.READ NIBB.S
 B A$2700 (009984) L$0057 (000087) 002 GHOSTBUSTERS.RWTS
 B A$0901 (002305) L$04C1 (001217) 006 GHOSTBUSTERS.RWTS.S
 A A$0000 (000000) L$0460 (001120) 006 HELLO
 T A$0000 (000000) L$4100 (016640) 065 T.APPENDIX COURS
 T A$0000 (000000) L$B900 (047360) 185 T.COURS 14 REVISION 2.00
 T A$0000 (000000) L$0600 (001536) 006 T.ET LA PROCHAINE FOIS...
 T A$0000 (000000) L$1700 (005888) 023 T.GHOSTBUSTERS.DECODE
 T A$0000 (000000) L$1B00 (006912) 027 T.GHOSTBUSTERS.READ NIBB
 T A$0000 (000000) L$0800 (002048) 008 T.GHOSTBUSTERS.RWTS
 T A$0000 (000000) L$1600 (005632) 022 T.GODFATHER RACONTE...       
 T A$0000 (000000) L$0D00 (003328) 013 T.INTRODUCTION
 T A$0000 (000000) L$0500 (001280) 005 T.LES PROGRAMMES DE CE DISK
 T A$0000 (000000) L$0D00 (003328) 013 T.APPENDIX ORIGINAUX
 B A$6D00 (027904) L$0500 (001280) 007 MUSIQUE

This catalog contains 19 files. 0 were DELETED.
----------------------------------------------------------------------


Floppy
DOS 3.3
Download Cours GDF 14 rev 2.00 (gzipped)


Sommaire


Lien Article
Voir Introduction.
Voir Cours 14 révision 2.00.
Voir Les programmes de ce disk.
Voir Et la prochaine fois.
Voir Appendix originaux.
Voir Appendix cours.

hr cours GDF

Introduction.


===============================================================================
INTRODUCTION COURS 14                  Godfather, le 11/9/87, Devon. Angleterre
===============================================================================

Salut et salut tout le monde,

 ..ca va ?? jusque là vous avez bien digéré tous les cours précédents ??
alors okay!.. on continue.. on continue avec un gros morceau :

                         LES PLOMBAGES ACTIVISION

Activision a utilisé 3 protections différentes depuis 3 ans...
Elles sont toutes trois très différentes, avec des qualités et des défauts
pour l'une que l'on ne retrouve pas dans l'autre et inversement, et toutes
trois très interessantes...

Je vous propose donc de TOUT vous dire sur ces 3 plombages et sur les méthodes
de déplombages à utiliser pour en venir à bout !

Les 3 protections pourraient se nommer (chronologiquement) : 1. Nibble key
                                                             2. Tracks format
                                                             3. Nibble count

Elles seront le sujet de 3 cours différents, dont voici le premier !!...

Voici, pour vous réjouir, la liste des programmes Activision utilisant telle
ou telle protection, que vous auriez su déplomber à ma place lors de leur
sortie... mais rassurez vous, je parie ma chemise que leurs prochains softs
seront plombés d'une de ces 3 façons !...

1ere protection : Nibble key    - Ghostbusters
                                - Space Shuttle

2eme protection : Tracks Format - Mindshadow
                                - Tracer Sanction
                                - Borrowed Time

3eme protection : Nibble count  - Hacker
                                - Garry Kitchen Game Maker
                                - Murder on the Mississippi
                                - Little People Computer
                                - Shangai

Il y a aussi : Hero, Master of the lamps.. que je n'ai pas étudié !!

Tous leurs jeux sont des Best-Sellers !... alors, je ne peux m'empecher de vous
donner leur adresse, si vous souhaitez obtenir la liste des nouveautés qui
sont annoncées, ou si vous voulez leur commander un soft...

                       ******************************
                       *                            *
                       *   Activision, Inc.         *
                       *   P.O. Box 7287            *
                       *   Mountain View, CA 94039  *
                       *                            *
                       ******************************

On commence donc tout de suite avec "Nibble key", la première protection
Activision de la série !...

                                                        Amicalement, GODFATHER
==============================================================================


Retour sommaire

hr cours GDF

Cours 14 révision 2.00.


===============================================================================
COURS 14 : Tout sur la première protection Activision "Nibble Key"    Godfather
===============================================================================
Révision 2.00                                                Devon, le 11/07/87

                               ATTENTION
                           =================
 Avant de commencer une quelconque manipulation avec les copies d'originaux de
 ce cours, protegez les contre l'écriture !!.. Ca évitera bien des problemes !
 C'est fait ..?? Okay!. alors je commence...




Salut et salut,

Comme d'habitude, je vais TOUT décortiquer à propos de ce plombage...

On va voir :

  - La théorie       : Le principe de la protection "Nibble Key"
  - La découverte    : Pour voir comment la protection se présente...
  - La pratique .1   : La conversion au format 3.3 avec Adv. Demuffin 1.1
  - La pratique .2   : La recherche de la vérif'...
  - La pratique .3   : La compréhension de toute la vérif' (lecture + décode)
  - La pratique .4   : La "déconnection" de la vérif'
  - Le parrallele    : Les adresses clé de cette protection ds les autres softs
  - La pratique .5   : Les Déplombages "cookbook fashion"
  - La conclusion    : Les critiques que l'on peut faire à cette protection
  - La copie .1      : Disk Muncher (Pourquoi ça marche ??)
  - La copie .2      : Locksmith 6.0 Fast Disk Backup (comment faire ??)
  - Le plombage      : Plombez vos disks avec cette protection !!

Ca, c'est un cours qu'il est beau...

J'ai déjà trouvé cette protection sur Ghostbusters, Space Shuttle et
The Designer's Pencil.. Je vous donnerais donc, au fur et à mesure que je
développerais ce cours du coté théorique, les résultats de la pratique pour ces
trois softs... A vous de tout bien comprendre et de vous adapter pour un
prochain Activision qui utiliserait ce plombage...
Malheureusement, je n'ai pas eu entre les mains l'original de Designer's Pencil
aussi, certains détails ne vous seront pas indiqués pour le moment en ce qui
concerne ce soft, mais le cours est là pour vous apprendre à vous adapter et
les détails données concernant ces 3 softs n'étant que des exemples, vous n'en
souffrirez pas du tout.. néanmoins, mon esprit de perfection en souffrira, lui

ATTENTION : Ces originaux Activision ont la meme protection mais pas sur
=========== les memes pistes, les vérifs sont les memes mais ne sont pas aux
memes adresses, et le programme n'étant pas le meme, il n'est pas chargé dans
le meme buffer... etc. Alors, pour pas qu'on mélange tout, je vais completement
décortiquer Ghostbusters et à la fin de ce fichier, je vous dirais les adresses
clés de la protection dans les deux autres.. J'étudie le principe puis je vous
fait bouffer du Ghostbusters.. Okay ??.. C'est parti !!!

===============================================================================
                   LE PRINCIPE DE LA PROTECTION "Nibble Key"
===============================================================================
Numéro 6 a comparé une fois mes cours de déplombage à des cours de cambriolage!
Illégals s'ils sont appliqués mais néanmoins très instructifs à lire...
Je vais prolonger cette comparaison pour vous faire comprendre toute la partie
théorique de ce cours...

Imaginez une villa sur la cote... et dans cette villa, un coffre, avec une
combinaison chiffrée (de 4 chiffres par exemple), et dans ce coffre, un
super lode runner en 3D inédit, dont vous voulez vous emparrer!.. vous etes
le cambrioleur...

Ce plombage est très similaire.. et vous etes le déplombeur !

Je vous explique quel doit etre l'effet d'une protection (cas général) :

Une routine verifie si le disk booté est l'original...
Si ce n'est pas le cas, il fait délirer le programme d'une manière ou d'une
autre. (Sinon, rien n'est modifié en mémoire)

Ici, le programme principal est codé et la routine donnera un certain
résultat A pour l'original et B pour la copie... seulement, le programme
codé ne peut se décoder qu'avec la routine de décodage ET la clé A !..
Si une copie est dans le drive, la clé sera B et le programme décodé avec
cette mauvaise clé ne correspondant à rien, ca va planter !!...

C'est exactement ce qui se passe pour Ghostbusters et Space Shuttle lorsque
vous bootez une copie faite au locksmith rapide !!...

Revenons à notre villa sur la cote...

On a d'un coté le programme convoité (à déplomber), d'un autre coté le coffre
(le plombage), et enfin la combinaison inviolable (la clé de Nibbles
ou "Nibble Key")..

Avant le seul moyen de s'approprier le programme était de connaitre la
combinaison du coffre.. là, c'est là meme chose.. le seul moyen de déplomber le
soft est de trouver la clé de nibbles qui se trouve sur l'original et qui
décode une partie indispensable du programme !...

En théorie, c'est la meme chose que la désynchro' incopiable des softs EPYX...
Une vérif' qui lit une clé de Nibbles sur le disks.. et une routine qui
décode la suite du programme avec cette clé!.... Si la clé n'est pas lue
(copie d'original?), la suite du programme ne sera jamais executable !...

But du jeu : Trouver la combinaison.. et remplacer la lecture de cette clé
============ de Nibbles dans des adresses (qui ne sera plus sur la copie), par
une routine qui a le meme effet et qui mette dans ces memes adresses, les
bonnes valeurs pour la suite..... Comprendo ??

En esperant que vous avez bien tout compris de la théorie, on va maintenant
passer à la pratique...

===============================================================================
A LA DECOUVERTE DE LA PROTECTION : Pour voir comment ça se présente !
===============================================================================
Bon.. Première chose à faire : Booter un Locksmith FDB (Fast Disk Backup) et
essayer de copier l'original !.. qu'est ce qu'on voit ???

(Ghostbusters)          => Les pistes $01, $12, $13 sont illisibles au 6.0
(Space Shuttle)         => Les pistes $04, $05, $06 sont illisibles au 6.0
(Designer's Pencil)     => Les pistes $03, $04, $05 sont illisibles au 6.0

Attention!.. Est ce que ça veut dire qu'elles ne sont pas formattées !??

NON.. ce n'est pas sur!.. Il se peut qu'elles soient formattées différemment et
pour le locksmith rapide, ça reviendrait au meme qu'elles soient formattées
autrement qu'en D5 AA 96 DE AA EB D5 AA AD DE AA EB ou qu'elles soient vierges!

Pour etre fixé, puisqu'on ne peut pas lire les secteurs de ces pistes, on va
aller lire ses nibbles avec un Nibble Editor (j'apprécie surtout Nibbles Away
II.. je m'y suis habitué avant la venue du 6.0 et j'ai toujours du mal à me
reconvertir !!.. Gnarg !).. On part à la recherche de Headers modifiés, puisque
ces pistes sont illisibles en format normal... Si on ne trouve aucun signe de
Prologue/Epilogue, on pourra alors envisager le cas "pistes pas formattées" !

On trouve facilement, en lisant au Nibbles Away II vC3 que les pistes
concernées sont en format "Patched", c'est à dire que seuls les entetes de
fin de champ (data et adresses) sont modifié (Différents de DE AA EB).

Pour vous, je suis allé voir la piste $1 de Ghostbusters au Nibbles Editor..
Voilà le résultat :

                             NIBBLES AWAY II            Vers. C3

                              TRACK EDITOR
        --------------------------------------------------------
        PTR=2200                  ADDR=2200               TRK=01
        --------------------------------------------------------
        2200 -   96969696     96969696     96969696     96969696
        2210 -   DEAAEBEB     FDFF9FE7     F9FEFFFF     FFFFFFFF
        2220 -   FFFFFFFF     FFFFFFFF     FFFFFFD5     AA96FFFE
        2230 -   AAABAFAB     FAFEDEAB     EBEBC1FE     FFFFFFFF
        2240 -   D5AAAD....

JE RESUME :

Voici ce qu'il faut remarquer :

  - En $2210 : DE AA EB   ; Fin de champ données (secteur précédent)
  - En $222B : D5 AA 96   ; Début de champ adresse
  - En $2236 : DE AB EB   ; Fin de champ adresse  ==> et pas DE AA EB !!
  - En $2240 : D5 AA AD   ; Début de champ données              ==

Seule chose qui diffère d'un format 3.3 normal (toutes les autres pistes) :

  - le AB de DE AB EB (format patched) au lieu de AA pour DE AA EB (format 3.3)

(N.B. : Les adresses ne correspondent à rien.. Ce sont les adresses ou sont
 chargées les nibbles lu sur une piste donnée.. Elles permettent d'avoir un
 point de repere mais en fait, elles ne correspondent à rien de précis!)

Vous avez donc bien compris pourquoi ces pistes NE SONT PAS DES PISTES VIERGES
mais bien des pistes contenant des données indispensables au programme...
Il faut donc les CONVERTIR au format 3.3 en passant en mode Patched !...

La piste $01 est en format patched D5 AA 96 DE AB EB D5 AA AD DE AA EB
La piste $12 est en format patched D5 AA 96 DE BC EB D5 AA AD DE AA EB
La piste $13 est en format patched D5 AA 96 DE CD EB D5 AA AD DE AA EB

On voit donc au nibble editor que les 3 pistes illisibles sont en format
patched par modification unique du second octet de l'épilogue du champ adresses
(Piste $01 = #$AB, Piste $12 = #$BC, Piste $13 = #$CD...)

===============================================================================
LA PRATIQUE .1 : Conversion des pistes au format "Patched" en format normal 3.3
===============================================================================

Il suffit de patcher le dos (CALL-151, B942:18) et de convertir le disk
original avec ADVANCED DEMUFFIN 1.1... (Le disk est en Boot 3.3, vous pouvez
aussi bien utiliser ADV DEM. BOOT TRACER 1.2 et faire le patch après...)

Pour plus de FIABILITE et pour le principe (pour etre le plus clean possible),
vous pouvez copier le disk au locksmith rapide (avec Verify) et ensuite,
convertir (de l'original à cette copie) les pistes en format "Patched".
Vous eliminez ainsi le risque d'erreur de lecture lors de la copie en Patched
pour les pistes en format normal...

Tout passe correctement...

Votre copie contient donc toutes les DONNEES de l'original mais le format de 3
de ses pistes est maintenant différent!.. le disk ne va plus booter!..
Pourquoi ??.. : Parce qu'il y a une vérif' concernant ces pistes !...
Essayez de booter la copie.. Elle a l'air de bien tout charger mais après un
moment, le programme plante...!

On passe donc à la recherche de cette vérif' !!...

===============================================================================
LA PRATIQUE .2 : Recherche de la vérif'...
===============================================================================

* On a vu (à l'instant) qu'il y avait une vérification du disk original
  (pistes au format "Patched") lors du boot de chacun de ces softs Activision.

* On veut retrouver cette vérif'...

***> Comment commence t-on la recherche ???

                   On va "BOOT-TRACER" evidemment !!!!

La vérif est au BOOT.. donc on BOOT-trace...

Il faut que ça devienne lié comme le chat et sa souris, comme Tom et Jerry,
comme Laurel et Hardy, comme Wozniak et Jobs !!... comprendo ???
Il FAUT que ça devienne un automatisme : "Vérif au boot entraine boot-tracing"
Bon.. Je continue...

Ces originaux sont basés sur un Boot 3.3 classique... On commence donc comme
toujours dans ce cas :

*1600<C600.C700M                ; Pour déplacer la Rom de boot

*16F8:A9 4C     LDA #$4C        ; On remplace le JMP ($8FD) du boot 3.3
      8D 4A 08  STA $084A       ; (correspondant à un JMP $B700) par un
      A9 59     LDA #$59        ; JMP $FF59 (MONITOR) pour reprendre la main..
      8D 4B 08  STA $084B       ;
      A9 FF     LDA #$FF        ; Remarquez, on aurait aussi bien simplement
      8D 4C 08  STA $084C       ; mis un #$00 (BRK) en $84A et ça aurait
      4C 01 08  JMP $0801       ; aussi rendu la main à l'utilisateur !!...

*1600G                          ; Pour executer le boot-tracer ainsi créé

 ...On examine ensuite le code en $B700 (On aura avant vérifié en listant les
adresses $8FD.8FE que le JMP ($8FD) remplacé correspondait bien à un JMP $B700)

On obtient ceci (source reconstitué) :

                ORG $B700

PATCH1          EQU $B7E8
PATCH2          EQU $B7FB
RWTS            EQU $B7B5
SECTEUR         EQU $B7ED
HB743           EQU $B743
HB751           EQU $B751
BUFFERHI        EQU $B7F1
RESET           EQU $3F2

                STX HB743
                STX HB751

                LDA #$15        ; Vectorise Reset sur $B715
                STA RESET       ;
                LDA #$B7        ;
                STA RESET+1     ;
                EOR #$A5        ;
                STA RESET+2     ;

HB715           LDY #$10        ; Mise en place d'une nouvelle table IOB
LOOP1           LDA NEWIOB,Y    ; pour avoir : Piste #$00
                STA PATCH1,Y    ;              Secteur #$0A
                DEY             ;              Mode LECTURE
                BPL LOOP1       ;              Buffer $4F00

                LDY #$03        ;
LOOP2           LDA NEWCART,Y   ; Nouvelle table des caracteristiques
                STA PATCH2,Y    ;
                DEY             ;
                BPL LOOP2       ;

                LDA #$B7        ; Lecture de la piste $00 0A en $4F00
                LDY #$E8        ;
                JSR RWTS        ;

                INC BUFFERHI    ; On incremente le Buffer jusqu'en $5000
                INC SECTEUR     ; On incremente le Secteur jusqu'en $0B

                LDA #$B7        ; Lecture de la piste $00 0B en $5000
                LDY #$E8        ;
                JSR RWTS        ;

$B741 ==>       JMP $4F00      ; Fin du boot2 de Ghostbusters. $4000 pour Sp.Sh

NEWIOB          HEX 01600100000AFBB7    ; Cette table IOB qui va remplacer
                HEX 004F000001000060    ; l'autre indique la piste $00 0A
                HEX 01                  ; le Buffer $4F00 et le mode Lecture

NEWCART         HEX 0001EFD8            ; Table des caractéristiques

Le boot2 charge donc (avec une RWTS 3.3) la piste $00/A en $4F00 et la piste
$00/B en $5000... ensuite, il saute au boot3 par un JMP $4F00 qui se trouve
en $B741.

On modifie donc ce JMP Boot3 pour reprendre la main dés la fin du boot2
Allons y...

*B741: A2 60 4C 59 FF   (On met #$60 dans X-reg pour les besoins de la RWTS..
*B700G                   ..comme on l'a vu dans le cours 3)

Et dés que ça plante, on va examiner le code en $4F00..puis le code en $5000...
C'est la vérif'... On va tout décortiquer maintenant.. suivez moi...

===============================================================================
LA PRATIQUE .3 : La compréhension de toute la vérification
===============================================================================

On en était à $4F00 dans Ghostbusters. ($4000 pour Space Shuttle)
La routine que l'on y a trouve va charger le boot suivant en lisant d'abord la
piste $12, $13 puis $01.. et comme par hasard, on a vu plus haut que ces 3
pistes de Ghostbusters n'étaient pas lisibles au locksmith rapide....
et comme par hasard, on remarque que cette routine modifie la RWTS en $B99A
avant d'acceder à ces pistes...

Que modifie-t-elle dans la RWTS...? Elle va modifier la routine de lecture
de l'épilogue du champ adresses après la lecture du second nibble de cet
épilogue (pour un format normal,après la lecture du #$AA de l'épilogue
#$DE AA EB du champ adresses). Ainsi modifiée, la RWTS rendra la main à
l'utilisateur avec dans l'adresse $04, la valeur de ce second Nibble qui
n'aura pas été vérifié...
Les pistes $12,$13,$01 sont de format "Patched" par modification unique de
cet octet de l'Epilogue adresses et pour chaque piste, cet octet est différent.

L'épilogue de la piste $12 est #$DE BC EB
L'épilogue de la piste $13 est #$DE CD EB
L'épilogue de la piste $01 est #$DE AB EB

Ainsi, après lecture de la piste $12, $04 contient #$BC qui sera mis en $01
Ainsi, après lecture de la piste $13, $04 contient #$CD qui sera mis en $02
Ainsi, après lecture de la piste $01, $04 contient #$AB qui sera mis en $00

Si l'on change le format de ces pistes (en le convertissant au format 3.3),
après chaque lecture, $04 contient $AA (format normal #$DE AA EB) et ainsi,
avant le décodage $00,$01,$02 contiennent #$AA.

On se posait, dans le cours 1, la question suivante :

        "Qu'est ce qui différencie un original d'une copie ???"

Ici la réponse est simple..

       * Pour que le disk soit copiable au locksmith il faut partout avoir
         un format épilogue adresses en #$DE AA EB
       * Au boot, une routine (celle qui va suivre) charge le programme et
         sauve le second de ces nibbles en $00,$01,$02
       * Pour l'original, on aura, après lecture : $00=AB, $01=BC, $02=CD.
       * Pour la copie déplombée, on aura        : $00=AA, $01=AA, $02=AA.

Voila la différence !!.. Cette différence se trouve dans les adresses $00-$02
qui peuvent etre simplement testée par une routine machine simplissime...
On va voir ce qu'il en est...

En attendant, voici LA routine de chargement de l'image et du boot4 (c'est
la boot3), avec tous les commentaires... Voici ce qu'elle fait exactement :

        * Modification de la RWTS pour lire les pistes plombées et avoir en $04
          le 2nd nibble de l'épilogue adresses du dernier secteur lu...
        * Lecture de la piste $12 du secteur $00 à $0F en $2000-2FFF
        * Sauvegarde en $01 de la valeur en $04 (#$BC)
        * Lecture de la piste $13 du secteur $00 à $0F en $3000-3FFF
        * Sauvegarde en $02 de la valeur en $04 (#$CD)
        * Lecture de la piste $01 du secteur $00 à $0F en $0800-17FF
        * Modification de la RWTS (retour au format normal)
        * Lecture de la piste $02 du secteur $00 à $0F en $6000-6FFF
        * Lecture de la piste $03 du secteur $00 à $04 en $1B00-1FFF
        * JSR à la routine de décodage (chargée avec le boot 3 en $5000)
        * JMP au boot4 (Chargé de la piste $1 en $800)

Bon.. maintenant, je vous la balance enfin cette routine extraite comme nous
l'avons vu en boot-tracant Ghostbusters...
Elle se termine par JSR $5000 JMP $0800...
On passe donc après à l'étude de la routine (incluse au boot3) en $5000...

Il n'est pas vraiment important de la comprendre à fond...
Ce qu'il faut surtout c'est comprendre la logique de la protection.. et tout
ce que je viens de vous balancer ci-dessus...
La programmation n'est en rien interessant par rapport à la logique du plombage
(Godfather a parlé!)

                ORG $4F00

START           EQU $0800
RWTS            EQU $B7B5
PISTE           EQU $B7EC
SECTEUR         EQU $B7ED
BUFFERHI        EQU $B7F1
CMD             EQU $B7F4
HB7EB           EQU $B7EB
HB7F3           EQU $B7F3
PATCHADR        EQU $B99A       ; Patch la RWTS pour lire les pistes patched
TXTCLR          EQU $C050
HIRES           EQU $C057
MIXCLR          EQU $C052
LOWSCR          EQU $C054
DECODE          EQU $5000

                LDA #$12        ; Piste $12
                STA PISTE       ;
                LDA #$00        ; Secteur $00
                STA SECTEUR     ;
                STA HB7EB       ; Volume = #$00 (pour tt lire)
                STA HB7F3       ;
                LDA #$20        ; Buffer $2000
                STA BUFFERHI    ;
                LDA #$01        ; Mode LECTURE
                STA CMD         ;

* Modifie la RWTS pour pouvoir lire les pistes "plombées"
* et sauver le nibble lu après le #$DE de l'épilogue...
* (Normalement #$DE AA...)

                LDX #$00        ; On va sauver dans la pile ce qu'il y a
H4F1C           LDA PATCHADR,X  ; en PATCH (ds la RWTS) avant de remplacer
                PHA             ; cette routine PATCH par la routine qui
                LDA PATCH,X     ; se trouve dans ce programme en H4FCD..
                STA PATCHADR,X  ;
                INX             ;
                CPX #$04        ; Il y a 4 octets à sauver et remplacer
                BNE H4F1C       ;

* Chargement de l'image contenue sur la piste $12 et $13
* dans l'ordre croissant des secteurs

H4F2B           LDA #$B7        ; Lecture de la piste $12 00 en $2000
                LDY #$E8        ; et secteurs et piste suivante...
                JSR RWTS        ; (Ghostbusters et Space Shuttle)
                LDA #$00        ;
                STA $48         ;
                INC BUFFERHI    ; On incremente le Buffer
                INC SECTEUR     ; On incremente le secteur
                LDA SECTEUR     ;
                CMP #$10        ; Il y a #$10 - 1 secteurs par pistes
                BNE H4F2B       ; (-1 car on compare après avoir incrémenté)
                LDA #$00        ; On recommence au secteur $00 de la piste
                STA SECTEUR     ; suivante...
                INC PISTE       ; Voila! On passe à la piste #$13
                LDA PISTE       ; On va jusque la piste $13
                CMP #$13        ; ($2000-3FFF correspond à 2 pistes)
                BNE H4F59       ;

* On met le second nibble de l'épilogue de la piste $13
* en $02 (il était dans $04 d'après le patch)
* L'épilogue de la piste $13 est bien #$DE CD EB...

                LDA $04         ; $01 = BC (Piste $12 : DE BC EB)
                STA $01         ;

                CLC             ;
                BCC H4F2B       ; JMP H4F2B

H4F59           LDA $04         ; $02 = CD (Piste $13 : DE CD EB)
                STA $02         ;

* Passage en page HGR format HGR2

                LDA TXTCLR      ; On passe maintenant en mode HGR puisqu'on a
                LDA HIRES       ; à l'instant chargé l'image des piste $12 et
                LDA MIXCLR      ; $13...
                LDA LOWSCR      ;

* Lecture des pistes $01, $02, $03 en $800, $6000, $1B00

                LDA #$01        ; On passe maintenant au chargement du boot4
                STA PISTE       ; qui se trouve en piste $00...
                LDA #$00        ; ..secteur $00
                STA SECTEUR     ;
                LDA #$08        ; ..et on va mettre tout ca en $800-$17FF
                STA BUFFERHI    ;

H4F78           LDA #$B7        ; et maintenant, on lit la piste $00
                LDY #$E8        ; secteur par secteur...
                JSR RWTS        ;

                LDA #$00        ;
                STA $48         ;
                INC BUFFERHI    ; On incrémente le Buffer (#$08 -> #$17)
H4F86           INC SECTEUR     ; On incrémente le secteur de la piste $00
                LDA SECTEUR     ;
                CMP #$05        ; et on s'arrete au secteur #$05 - 1
                BNE H4F97       ; de la piste $03...
                LDA PISTE       ;
                CMP #$03        ;
                BEQ H4FC7       ;

H4F97           CMP #$10        ; si on n'est pas sur la piste $03,
                BNE H4F78       ; on s'arrete au secteur #$F (#$10 - 1)

                LDA #$00        ; Quand on passe à la piste suivante, on
                STA SECTEUR     ; recommence au secteur #$00 bien sur,
                INC PISTE       ; et là, on passe à la piste suivante
                LDA PISTE       ;
                CMP #$02        ;
                BNE H4FBF       ;

* On vient de lire la piste $01.. on sauve un nibble de décodage

                LDA $04         ; Si piste = #$02, puisqu'on vient d'incré-
                STA $00         ; menter le numéro de la piste, c'est que
                                ; la derniere piste lue est la #$01 donc on
                                ; va mettre en $00 le second octet de
                                ; l'épilogue adr de la piste $01 qui est #$AB

                LDX #$03        ; On va lire la piste #$02 et comme elle
H4FB0           PLA             ; est en format 3.3 classique, on doit
                STA PATCHADR,X  ; remettre en place la partie de la RWTS 3.3
                DEX             ; que l'on avait remplacée par PATCH et mise
                BPL H4FB0       ; dans la pile...

                LDA #$60        ; On va charger la piste $2 en $6000
                STA BUFFERHI    ;

                CLC             ; et on saute en H4F78
                BCC H4F78       ;

* Après lecture de la piste $02.. On va lire la piste $03

H4FBF           LDA #$1B        ; On met le buffer à $1B00
                STA BUFFERHI    ; pour lire la piste $03

                CLC             ; et on saute en H4F78
                BCC H4F78       ;

* Après la lecture de la piste #$03...terminé

H4FC7           JSR DECODE      ; On a la "clé" des 3 nibbles, on décode tt
                JMP START       ; et on saute au prgm ainsi correctement décodé

* Routine qui remplacera la routine situé à l'adresse PATCHADR ds la RWTS

PATCH           STA $04         ; Routine qui s'implantera en $B99A
                NOP             ; (Après la lecture du second nibble #$DE .. EB
                NOP             ; qui sera sauvé en $04 !). Tout est là !!...

Bon je disais donc...
En sortant de là (H4FC7), on a :

        Avec l'original : $00 = AB, $01 = BC, $02 = CD
        Avec la copie   : $00 = AA, $01 = AA, $02 = AA

A ce niveau là, le programme pourrait simplement vérifier que les bonnes
valeurs (AB, BC, CD) sont bien dans les bonnes adresses ($00, $01, $02)
ou bien encore se compliquer plus la vie...

Et bien sur.. ils se sont compliqué la vie en se disant "Si un déplombeur
arrive jusqu'ici, ce que je lui réserve sera bien trop compliqué pour lui !"
On va voir ce qu'on peut faire pour faire tomber definitivement ce plombeur
dans le désespoir le plus noir !!...

On arrete de parler de lecture, d'accès disk et de Nibbles... tout va
désormais se dérouler en mémoire...
Si on examine le code en $800-17FF et en $6000-6FFF, on ne peut pas trouver
le moindre bout de programme et pourtant, il y a bien (en $4FC7 pour
Ghostbusters) un JMP $800 !!... et en $800 il n'y a que des octets en vrac !

C'est donc que : LE PROGRAMME (en $800 notamment) EST CODé !!...
et que le décodage se fait par le JSR $5000..

Bon.. Alors $5000 est une routine de décodage et les zones mémoires
$800-17FF, $6000-6FFF sont des programmes codés !!... ca vous va comme
hypothèse ???.. Mouais !!..
et si on étudie en détail la routine de décodage que l'on a en $5000 on voit
que c'est bien ça et que les valeurs caractéristiques UNIQUEMENT de l'original
qui se trouve en $00, $01, $02 avant le JSR $5000 sont utilisées comme
"clé" pour décoder les zones mémoire codées !!...

Donc...

 "LE PRGM NE PEUT SE DECODER CORRECTEMENT QUE SI L'ORIGINAL EST DANS LE DRIVE!"

C'est donc bien le but du jeu... le but de tout plombage !!...et c'est assez
génial!...

Pas la peine de décortiquer completement la routine de décodage puisqu'on n'a
pas la routine de plombage... on va pas avoir à la comprendre du tout pour
venir à bout d'un de ces softs Activision.. ce qu'il faut juste savoir
c'est qu'elles ont besoin des bonnes valeurs dans $00, $01, $02 avant de
s'executer, et quelles sont ces valeurs !!...

Si vous voulez vraiment (par pure masochisme) tout comprendre de ce décodage,
vous n'avez qu'à attendre le cours sur les codages/décodages qui va vous
permettre, non seulement de piger tout sur tous les codages couramment
utilisés mais aussi qui vous apprendra comment coder vos propres routines
(votre signature d'un crack, une image signée, ou quoi que ce soit d'autre..)

On va maintenant passer à la "deconnection" de la protection !!!..
Comment passer outre (puisque la routine de lecture ne va pas lire les bonnes
valeurs pour $00, $01, $02...) ???

===============================================================================
LA PRATIQUE .4 : La "déconnection" de la protection !!!!
===============================================================================

Simple.. Je vous explique comment ça se passe !...

On a dans l'ordre :     1. Lecture des nibbles "clés" de décodage en $0,$1,$2
                        2. Décodage
                        3. Execution du programme décodé

Etant donné que le programme est chargé codé, on ne peut pas purement et
simplement supprimer le décodage... alors comment faire ???
Evident ! Evident !.. Il suffit de "glisser" après la lecture des mauvaises
valeurs en $0,$1,$2 et avant le décodage, une routine qui mettrait les bonnes
valeurs en $0,$1,$2. (Les valeurs qui seraient lues si l'original était dans
le drive !).

Une fois qu'on a le raisonnement, l'application est très simple à faire !..
On recherche d'abord de la place libre pour y mettre notre routine..

Voilà où j'ai trouvé de la place libre sur ces 2 softs :
 _____________________________________________________________________________
!                                                                             !
!                                 Ghostbusters                                !
!                                                                             !
!       Piste $00 Secteur $0A Octets $CD-$FF Chargé en mémoire en $4FCD       !
!       Piste $00 Secteur $0B Octets $9D-$FF Chargé en mémoire en $509D       !
!_____________________________________________________________________________!
!                                                                             !
!                                 Space Shuttle                               !
!                                                                             !
!       Piste $00 Secteur $0B Octets $12-$47 Chargé en mémoire en $4112       !
!       Piste $00 Secteur $0B Octets $DC-$FF Chargé en mémoire en $41DC       !
!_____________________________________________________________________________!

Pour Designer's Pencil, je ne saurais vous dire où il y a de la place libre.
Y'aurais pas quelqu'un qui possederais l'original dans la foule, par hasard ??

On va déja implanter une routine qui replace les bonnes valeurs ($AB, $BC, $CD)
pour Ghostbusters dans les bonnes adresses ($01, $02, $03) :

Adresses - A9 AB   LDA #$AB
           85 00   STA $00
           A9 BC   LDA #$BC
           85 01   STA $01
           A9 CD   LDA #$CD
           85 02   STA $02
           60      RTS

Pour Ghostbusters, on va la mettre piste  $00 0A CD (ORG $4FCD)
Pour Space Shuttle, on va la mettre piste $00 0B 12 (ORG $4112)
Pour Designer's Pencil, fouillez un peu vous meme..

Bon... Alors donc, maintenant, dés que l'on bootera Ghostbusters par exemple,
la routine se chargera en $4FCD mais evidemment ne s'éxécutera pas ! (elle
n'est pas "appelée"...).

On a vu qu'il fallait l'appeler juste avant le décodage...
On n'a qu'a remplacer le JSR Décodage par un JSR Adresses et au lieu de
terminer la routine Adresses par un RTS, la terminer par un JSR Décodage
(si on remplace ce JSR par notre JSR Adresses, il faut bien en remettre un
pour effectuer le décodage une fois que l'on a remis de l'ordre dans les bonnes
adresses !!)

===============================================================================
LE PARALLELE entre les protections de Ghostbusters et de Space Shuttle
===============================================================================
 _____________________________________________________________________________
!                                      !                                      !
!           Ghostbusters               !            Space Shuttle             !
!______________________________________!______________________________________!
!                                      !                                      !
! Piste $01 en "patched" DE AB EB      ! Piste $04 en "patched" DE AB EB      !
! Piste $12 en "patched" DE BC EB      ! Piste $05 en "patched" DE BD EB      !
! Piste $13 en "patched" DE CD EB      ! Piste $06 en "patched" DE DE EB      !
!                                      !                                      !
! Chargement + lecture clé en $4F00    ! Chargement + lecture clé en $4000    !
!                                      !                                      !
! JSR Décodage en P$0 S$A B$C7 ($4FC7) ! JSR Décodage en P$0 S$A B$BC ($40BC) !
!                                      !                                      !
! Décodage en $5000                    ! Décodage en $4148                    !
!______________________________________!______________________________________!
!                                      !
!          Designer's Pencil           !
!______________________________________!
!                                      !
! Piste $03 en "patched" DE 8B EB      !
! Piste $04 en "patched" DE 9C EB      !
! Piste $05 en "patched" DE AD EB      !
!______________________________________!

===============================================================================
LA PRATIQUE .5 : Les déplombages "cookbook fashion"
===============================================================================

Convertissez les originaux au format 3.3 en utilisant *B942:18 et l'Adv.Demuff.

Ghostbusters :
--------------
Modifiez piste $00 secteur $0A octet $C7 : 20 D1 4F (20 00 50)
Modifiez piste $00 secteur $0B octet $D1 : A9 AB 85 00 A9 BC 85 01
                                           A9 CD 85 02 20 00 50 60

Space Shuttle :
---------------
Modifiez piste $00 secteur $0A octet $BC : 20 12 41 (20 48 41)
Modifiez piste $00 secteur $0B octet $12 : A9 AB 85 00 A9 BD 85 01
                                           A9 DE 85 02 20 48 41 60

Designer's Pencil :
-------------------
Modifiez piste $00 secteur $0A octet $3D : EA EA (85 00)
Modifiez piste $00 secteur $0A octet $5E : 20 A2 (EE 3E)
Modifiez piste $00 secteur $0A octet $A2 : A9 8B 85 00 A9 9C 85 01
                                           A9 AD 85 02 60

===============================================================================
LA CONCLUSION : Les critiques que l'on peut faire à cette protection
===============================================================================

On dit souvent que les meilleurs plombeurs sont les déplombeurs...
En fait, c'est assez logique.. car quand un plombeur met au point une
protection, il la connait comme sa poche et il se dit que tout est bien planqué
et que ce sera IMPOSSIBLE pour le déplombeur de localiser toutes les routines
qui forment sa protection !!..

mais c'est compter sans le "flair" du déplombeur...
et ça, seul un déplombeur chevronné qui a vu par des dizaines de déplombages,
ce qui n'allait pas dans telle ou telle protection, et pourquoi il a su
déplomber tel ou tel programme, et comment la protection pourrait etre
améliorer, et comment le plombeur aurait pu faire pour lui compliquer encore
plus le travail; peut vraiment savoir comment faire un plombage qui résisterait
ou du moins qui LUI resisterait si on lui présentait cette protection...
donc, plus balaise est le déplombeur, plus balaise est sa protection, donc
plus balaise est le plombeur !!... (ca a l'air d'un raisonnement mathématique!)

Dorénavant (et dans la mesure ou il y a des critiques constructives à faire sur
un plombage), je laisserais toujours une place pour décrire les points faibles
et les points que l'on pourrait améliorer, dans toutes les protections que l'on
rencontrera... (Vous progressez en déplombage, vous allez progresser en
plombage !!)

Allons y...

Les critiques "CONTRE" cette première protection Activision :
-------------------------------------------------------------------------------
* Première méga-critique : avoir utilisé la meme protection plusieurs fois

        Pour un soucis d'économie, ils ont acheté un plombeur pour plusieurs
        softs.. m'enfin.. c'est pas sérieux ca..
        Question, fric.. c'était surement okay.. mais pour le principe, je
        suis contre.. !!

* Cette protection, telle qu'elle, n'empeche pas la copie "intacte"

        Imaginez le scénario très fréquent... Albert a acheté dans le commerce
        un original incopiable, il va l'envoyer (l'original) à UN déplombeur
        qui, au boot de plusieurs jours, semaines (ou mois ?), lui renverra
        une version déplombée avec son original...

        Maintenant, imaginez que cet original soit copiable...
        Albert le copie.. met l'original dans sa culotte (plus de risques
        avec les PTT, le café, le chaises à roulettes ou le déplombeur ignare!)
        et en envoye une copie à CINQUANTE déplombeurs... (y'en a cinquante
        valables dans le monde entier ???). Sur le nombre, il y en a bien
        un qui va trouver tout de suite.. et trois jours après, il recevra
        une version déplombée !!!..

        Déplombé plus vite... Répandu plus vite... Aucun risque de perte...

        De plus, si ne Albert ne connait aucun déplombeur, il peut toujours
        répandre une copie plombée copiable au disk muncher qui ira vite
        jusqu'à un déplombeur si c'est vraiment un soft nouveau !!...
        Alors qu'une copie qui ne marche pas (disk original incopiable) ne se
        répandrait pas du tout... et albert pourrait garder dans sa culotte
        son original pendant des mois avant que quelqu'un d'autre achete le
        meme original et le fasse parvenir à un déplombeur !...

        Moralité : Il ne faut jamais faire une protection qui permette la copie

* Décodage de Ghostbusters repérable facilement (adresses clé $5000)

        Oui.. je parlais tout à l'heure du "flair" du déplombeur...
        Je vous parlais, il y a quelques cours, d'une piste à chercher, et d'un
        Sherlock Holmes de l'octet...
        Si vous voyez au milieu d'une routine qui devrait contenir un
        JSR protection (vous avez boot-tracez, et vous devriez logiquement vous
        approcher de ce JSR, vous en etes sur!..), un JSR à une adresse "clé"
        ($800, $5000,.. bref, une adresse "entière") au milieu d'une routine
        quelconque qui contient d'autres JSR eventuellement mais aucun vraiment
        à des adresses entières... là, vous pouvez fortement suspecter que
        c'est un appel à la routine de protection que vous cherchez...
        Bien souvent, le programme est fait par le programmeur chez lui et
        APRES le plombeur intervient... et bien souvent, il va loger sa routine
        de protection à une adresse entière (pourquoi mettre un ORG $9475 alors
        que $5000 est beaucoup plus simple ???.. ils ne pensent pas au flair !)
        et ensuite, il va glisser dans le programme normal un JSR à sa routine.
        De plus, bien souvent, il la loge tout à la fin du programme du
        programmeur.. Ce qui fait qu'en $851 par exemple, on va trouver un
        JSR $9000... il n'y a rien de plus suspect !!... et comme ça ne nous
        coute rien d'aller voir ce qu'il y a en $9000, on tape "9000L" et on
        a de fortes chances de gagner le gros lot !!!...

        Moralité : Pour ne pas eveiller le flair du déplombeur, ne mettez
        jamais une routine de protection independamment au programme.. et
        jamais à une adresse entière !... essayez de la glisser au coeur du
        programme.. au besoin, au niveau commercial, demandez le source du
        programme au programmeur pour tout reloger à votre manière...
        (9 fois sur dix, il ne comprendra pas pourquoi et gardera son source
        jalousement !!!)...

* Décodage très complexe mais court-circuitable facilement !!

        La routine de décodage du programme est très complexe mais pour tout
        vous faire comprendre de ce plombage, je n'ai meme pas eu à vous la
        lister !.. c'était inutile d'aller la décortiquer alors qu'elle est
        utilisable telle qu'elle dés qu'on a obtenu la clé de décodage !!...

        Comment faire pour améliorer ça ??
        Ils auraient du mettre DANS LE PROGRAMME CODé, une vérification
        (checksum) pour voir si l'on a modifié un quelconque octet de tout
        ce qui a été chargé précedemment... à ce niveau là, puisque le
        déplombeur est OBLIGé de modifier l'appel au décodage, il aurait
        aussi été obligé de modifier le programme codé !!...
        et comme le décodeur ne permet pas de coder, il aurait du entièrement
        le décortiquer afin de programmer lui meme tout un codeur..
        Ensuite, il aurait décodé le programme, modifié le programme, et
        recodé le programme...

        Cependant, il aurait pu (et c'est en fait surement ce que j'aurais
        fait), retrouver le programme codé sur le disk (on a tout en mémoire,
        c'est facile de tout retrouver sur le disk, non?), tout décoder en
        mémoire (facile une fois qu'on a la clé) et ensuite sauver sur le disk
        le programme décodé à l'emplacement du programme codé.. ainsi, on se
        débarassait définitivement de tout codage...

        Moralité : Ce qui compte n'est pas SEULEMENT la complexité d'un codage,
        mais aussi l'utilisation de ce codage, ce qui l'entourre.. son
        environnement... Si on fait un super décodeur et que l'on code super
        bien son programme, il faut s'arranger pour que ce super codeur soit
        le plus incompréhensible possible et que le déplombage passe
        obligatoirement par sa compréhension totale !!.. ce qui repoussera
        beaucoup de déplombeurs peu expérimentés !...

        Question Space Shuttle, la routine de décodage, au lieu de $5000
        était en $4148... je suis sur qu'ils n'ont pas fait ça contre le
        flair des déplombeurs mais simplement parce qu'ils ont modifié la
        routine qui précèdait le décodage dans le plombage de Ghostbusters
        dans le source, ce qui a repoussé le décodage.. le bloader étant logé
        en $4000, au lieu de $4F00, le décodage ne se trouve plus en $5000
        mais en $4148. (La routine précédente a été ralongée de $48 octets !!)
        Bref.. Cherchez pas à comprendre mais retenez ça : le déplombage de
        Space Shuttle m'a posé bcp plus de problemes de celui de Ghostbusters
        uniquement à cause du fait que j'avais une routine avec pleins de
        JSR partout et que aucun n'avait d'adresse entière.. j'ai tout essayé
        pour trouver le bon... Si ca avait été un JSR $5000 au lieu de $4148,
        j'aurais trouvé bcp plus facilement et rapidement !
        ..mais malheureusement, ils ne l'ont pas fait exprès !!!

* Vérif' (relativement) au boot (retrouvable en boot-tracant : facile)

        Eh! oui.. Là c'est une critique que l'on retrouve souvent !!....
        Les routine qui constituent le plombage se trouvent éxécutés dés le
        boot, alors s'ils veulent les planquer au boot, qu'ils compliquent
        le boot-tracing bordel !!...
        Là c'est comme si on boot-tracait un DOS 3.3... c'est pas plus dur que
        ça !!!...
        Je prépare depuis quelques temps un super cours concernant les boot-
        tracings balaises (comment les comprendre et en venir à bout) qui
        expliquera aussi comment compliquer un boot de manière la plus
        dingue possible (qui me caractérise!!)...

===============================================================================
LA COPIE .1 : Copiez ces originaux avec le Disk Muncher...
===============================================================================

Le Disk Muncher ne tient pas compte des Epilogues lors de la lecture mais il
les charge quand meme en mémoire pour les réécrire INTACTS sur la copie !!..
Tout ce qui est plombage par Dos Patched, s'il n'y a pas de vérif' d'une autre
sorte derriere ce format "patched", se copie au Disk Muncher sans probleme...

Attention au Disk Muncher 10.00 qui est completement bugué quand vous ne copiez
pas un disk entier mais seulement quelques pistes !

===============================================================================
LA COPIE .2 : Copiez ces originaux avec le Locksmith 6.0 rapide
===============================================================================

On va essayer de copier l'original de Ghostbusters avec le 6.0 rapide...

Commencez par faire une copie desquelles il manquera la piste $01, $12 et $13
qui sont illisibles en format normal... Maintenant, on va modifier ce format
dans le 6.0 (parametres de copie) pour copier ces 3 pistes de manière intacte
sur la copie que vous venez de faire et où elles manquent cruellement !!

Vous vous rapellez les parametres de copie du locksmith 6.0 rapide ?
Je vous en avait parlé dans le cours 6...

Pour copier une piste en format D5 AA 96 DE AA EB D5 AA AD DE AA EB, vous
n'avez rien à faire,.. juste à taper sur la barre d'espace...
mais si le format change (prenons la piste $01 de Ghostbusters qui est en
D5 AA 96 DE AB EB D5 AA AD DE AA EB), il faut adapter les parametres de copie..
Pour la copier de manière intacte, on va modifier les parametres Headers de
copie à la lecture et l'écriture pour le second octet de l'épilogue adresses.

Sous locksmith 6.0 rapide, tapez 00EC (return) puis AB (pour modifier le AA
du second octet de l'épilogue adresses à la lecture), puis 00F8 (return)
puis encore AB (pour modifier le meme Headers à l'écriture)... maintenant,
votre locksmith est pret à copier un disk entier au format D5 AA 96 DE AB EB...
mais on n'a seulement la piste $01 qui soit à ce format là...

On va donc modifier les parametres "Piste de départ" , "Piste d'arrivée"...
Pour se faire, tapez 0008 (return) puis 01 au lieu de 00 (on veut uniquement
copier la piste $01).. tapez ensuite 0009 (return) puis 01 au lieu de 22,
pour modifier la piste de fin...

Maintenant, vous n'avez qu'à introduire votre original de Ghostbusters..
taper Espace.. le locksmith va lire la piste $01 qui se lit parfaitement bien !
(enfin!) alors que toutes les autres pistes sont maintenant illisibles..
(le format de la piste $01 auquel on vient d'adapter le 6.0, n'est que sur la
piste $01 !!)...
Vous avez en drive 2 le disk copie (auquel il manque les 3 pistes)...
Le locksmith va copier au meme format que l'original (on a aussi modifié le
format à l'écriture dans le locksmith!) la piste $01 !!... la copie de cette
piste est intacte en format epilogue adresses DE AB EB...

A vous de copier pareillement les 2 autres pistes incopiables en modifiant
les parametres en fonction du format cité plus haut pour ces deux originaux !

Et la copie va marcher parfaitement.. aussi bien que l'original !

===============================================================================
LE PLOMBAGE : Comment plomber vos disks avec la meme protection
===============================================================================

D'ici peu de temps, j'aurais terminé le PLOMB DISK ACTIVISION 1 qui vous
permettra de réaliser exactement le meme plombage (vous pourrez l'améliorer
vous meme si vous le désirez !!) sur un disk à vous en boot 3.3 !!
Réalisé avec Oliver Twist, c'est vraiment un plombeur très sympa...
(Il m'a fallut 46824 caractères pour tout en décortiquer !)

===============================================================================
Bon, je vous laisse ici.. salut!.. et à la prochaine pour le second chapitre de
la série de 3 cours sur les protections Activision !... (Courage !!)

                                                         Amicalement, GODFATHER


Retour sommaire

hr cours GDF

Les programmes de ce disk.


===============================================================================
LES PROGRAMMES DE CE DISK                                              Cours 14
===============================================================================

Vous trouverez sur ce disk les sources complets et détaillés de toute la
protection décrite dans le cours !...

Ces sources sont evidemment entièrement relogeables et sont à assembler avec
Big Mac, Merlin, ou Merlin Pro.

Vous avez le source de : GHOSTBUSTERS.RWTS      ; Le boot 2
                         GHOSTBUSTERS.READ NIBB ; La lecture du format + load
                         GHOSTBUSTERS.DECODE    ; Le décodage avec la clé

Je vous ai aussi mis ou remis ADVANCED DEMUFFIN 1.1, DISK MUNCHER et le
LOCKSMITH 6.0 Fast Disk Backup qui sont utilisés dans le cours !...

===============================================================================


Retour sommaire

hr cours GDF

Et la prochaine fois.


===============================================================================
ET LA PROCHAINE FOIS..                                  Cours 15 et suivants...
===============================================================================

Ma foi.. je ne sais pas encore pour le cours 15...

Je dois faire les 2 autres cours sur les protections Activision.. mais pas tout
de suite, je voudrais souffler un peu et vous laisser souffler aussi, sinon
je vais vous inculquer la haine des protections Activision!...

Je vais donc laisser passer au moins un cours avant de m'attaquer à la seconde
protection Activision...

En attendant, il y a toujours des propositions de cours en l'air :

        * Tom E. Hawk Boot      (Chapitre Signatures de disks déplombés)
        * Tout sur Electronic Arts
        * Tout sur.. la suite du cours "Mise en catalog"
        * Tout sur les boot-tracings balaises..
        * Tout sur les images codées à signer.. et sur les codages d'images...

J'aimerais vraiment faire un de ces cours comme cours 15...
Faites moi vite votre choix...!!

                                                         Amicalement, GODFATHER

===============================================================================


Retour sommaire

hr cours GDF

Appendix originaux.


.FE1
.MD80
.PS^
.LI67
UPDATE 13/07/87

             TOUS LES ORIGINAUX DES COURS DE DEPLOMBAGE PAR GODFATHER
         ================================================================
                      BIBLIOTEQUE D'ORIGINAUX / APPENDIX

 Pour plus de renseignements, contactez moi sur minitel code ANTI bal GODFATHER


Cours 1 : Tout sur les protections par Dos Patched
-------------------------------------------------------------------------------
Temple of Apshai Trilogy..........Disk Muncher 8.00.........Patched pas vérifié
Halley Project....................Disk Muncher 8.00.........Patched pas vérifié

Cours 2 : Tout sur les protections par Dos 3.3 modifié
-------------------------------------------------------------------------------
Fortress of the Witch King........Echo + et P$0 à l'EDD4....
Tap //c...........................
Mirv..............................(n'est plus disponible en copie plombée)

Cours 3 : Tout sur la RWTS 3.3
-------------------------------------------------------------------------------

Cours 4 : Tout sur le DOS 3.3
-------------------------------------------------------------------------------

Cours 5 : Tout sur la signatures d'images non codée 32 sect. accès direct
-------------------------------------------------------------------------------

Cours 6 : Tout sur le Plombage/Deplombage par Dos Patched
-------------------------------------------------------------------------------

Cours 7 : Tous les complements des cours 1,3,5
-------------------------------------------------------------------------------

Cours 8 : Tout sur la recherche d'octets
-------------------------------------------------------------------------------

Cours 9 : Tout sur la signature d'images compressées chargées en accès direct
-------------------------------------------------------------------------------

Cours 10 : Tout sur la dernière protection EPYX
-------------------------------------------------------------------------------
Championship Wrestling............Epyx Copy 1.00....Désynchro en P$0 physiq' $8
Movie Monster Game................Epyx Copy 1.00....Désynchro en P$0 physiq' $8

Cours 11 : Tout sur la technique de mise en CATALOG simple
-------------------------------------------------------------------------------

Cours 12 : Tout sur les signatures de softs déplombés en mode TEXTE
-------------------------------------------------------------------------------

Cours 13 : Tout sur la pratique : signature de l'image compr' de M.Monst.Game
-------------------------------------------------------------------------------

Cours 14 : Tout sur les protections ACTIVISION. 1er Chapitre.
-------------------------------------------------------------------------------
Ghostbusters......................Disk Muncher 8.00.....Patched clé de décodage
Space Shuttle.....................Disk Muncher 8.00.....Patched clé de décodage


Retour sommaire

hr cours GDF

Appendix cours.


.FE1
.MD80
.PS^
.LI67
UPDATE 13/07/87

                     FICHIERS DE DEPLOMBAGE / APPENDIX
         ===============================================================
            TOUS LES COURS "PARTICULIERS" DE DEPLOMBAGE PAR GODFATHER

 Pour plus de renseignements, appelez moi sur minitel code ANTI bal GODFATHER


COURS 1 : Les Protections primaires...                   25/12/86 Par Godfather
===============================================================================
Révision 2.21

* LES PROTECTIONS 'DOS PATCHED' (Comment commencer le déplombage...)
* Un nouvel outil - ADVANCED DEMUFFIN 1.1
* A DEPLOMBER - TEMPLE OF APSHAI TRILOGY
* BONUS : Bidouilles BLACK MAGIC, BORROWED TIME, POLO, TRACER SANCTION...
* GODFATHER RACONTE, Introduction...


COURS 2 : Les Protections par DOS 3.3 Modifié...        Décembre 86 / Godfather
===============================================================================
Révision 1.0C

* LES PROTECTIONS BASEES SUR UN DOS 3.3 MODIFIE. COMMENT FAIRE ?
* LE BOOT TRACING D'UN DOS 3.3 COMMENTE EN DETAILS
* UNE PREMIERE UTILISATION DE BREAK (en dernier recours seulement !)
* Un nouvel outil - ADV DEM. BOOT TRACER 1.2
* A DEPLOMBER - THE FORTRESS OF THE WITCH KING ou TAP //c
* Les DEPLOMBAGES complets et expliqués clairement pour ces deux premiers cours
  (Différences des marqueurs analysées, la méthode la plus rapide...etc)...
* GODFATHER RACONTE : Un déplombeur, c'est quoi ?? c'est qui ??



COURS 3 : Tout ce qu'il faut savoir sur la RWTS 3.3...   Janvier 87 / Godfather
===============================================================================
Révision 1.31

* COMMENT MAITRISER TOTALEMENT LA RWTS 3.3...?? (Indispensable !!!)
* Un nouvel outil - DOS 3.3 BOOT TRACER (C) GODFATHER'S PRODUCTS
* Des EXERCICES fous sur la RWTS à faire...(pour mieux comprendre le cours!)
* GODFATHER RACONTE : Les utilisateurs d'Apple... c'est qui ??


COURS 4 : Tout ce qu'il faut savoir sur le DOS 3.3...    01/13/87 Par Godfather
===============================================================================
Révision 1.00

* L'ORGANISATION DES FICHIERS SUR UN DISK DOS 3.3.. (les plombeurs maitrisent
  totalement ces connaissances, il vous faut donc comprendre comment ils
  ont (éventuellement) réogarnisé le disk)
* DEUX nouveaux outils - DISK RECOVERY et DISK FILLER 3.1 !!!
* Un nouveau défi - Récuperer DISK RECOVERY qui n'apparait pas dans le CATALOG
* Un fichier explicatif sur DISK FILLER 3.1



COURS 5 : Signez vos disks déplombés...                  22/01/87 Par Godfather
===============================================================================
Révision 3.00

* COMMENT SIGNER LES DISKS QUE VOUS AVEZ DEPLOMBE ?!?...
  (Les images qui se chargent en accès direct du disk et nom pas en catalog)

* Pleins de nouveaux outils complètement TOP-SECRET :

        - SMART SCAN + ERROR (C) DAVID MICROCOSM
        - CHASSEUR D'IMAGES  (C) HEBDOGICIEL (Prix 10000F Concours mensuel)
        - QUICK SEEKER       (C) COCHONOU CRACK BAND
        - PICTURE FINDER     (C) MISTER DD (TMC)
        - PICSCAN            (C) THE ALIEN
 (NEW)  - AUTOSCAN           (C) CHIP SELECT
 (NEW)  - MANUAL SCAN        (C) COPYART
 (NEW)  - INDISCRETION 2.00  (C) PATCHMAN



COURS 6 : PLOMBAGE / DEPLOMBAGE                Un cours par Godfather et Kristo
===============================================================================
Révision 1.00                                                      1er Mai 1987

* Toute la théorie, toute la pratique sur le plombage, la copie plombée et le
  déplombage des disks ayant les champs de fin modifiés (Dos patched)..

* Un programme 'on ne peut plus' inédit : le PLOMB DISK GDF V1.8 qui va vous
  permettre de plomber N'IMPORTE QUEL DISK comme vous voudrez (source
  modifiable très facilement)...contrairement à tous les programmes de plombage
  actuels commerciaux (LOCK IT UP, CERBERE 2.0, PROTECTOR 3.0..etc...) qui ne
  plombent que des softs sous DOS 3.3 MASTER !!!

* Le programme 'DEFENSEUR' (MIRAGE) programmé par SAM et parut dans Hebdogiciel
  83 secteurs de language machine..le tout PLOMBé en FBoot (!) avec le GDF 1.8.

* Un locksmith rapide (FDB) modifié par votre serviteur pour plomber, déplomber
  ou copier des disks plombés en dos patched (on fixe les Headers..)



COURS 7 : LES REPONSES A VOS QUESTIONS COURS 1, 3, 5     Un cours par Godfather
===============================================================================
Révision 2.00                                                          05/06/87

Après analyse et synthèse de toutes vos questions (interessantes) à propos du
contenu des cours précédents, ce COMPLEMENT #1 regroupe toutes les réponses
vraiment très détaillées... C'est ce qu'on pourrait appeler :

* Vous n'avez pas compris la théorie.. Alors je vous l'explique par la pratique

La pratique sera, pour les differents cours :

Cours 1 : Pourquoi B942:18 permet-il de lire certains originaux...?
Cours 3 : Résolution d'exercice. Le programme de copie en basic, pas à pas
Cours 5 : Retrouvez et signez une image de boot (tout expliqué par la pratique)

Avec, pour vous simplifier la vie, deux super routines folles :

Pour détourner toutes les difficultés de la RWTS : SREAD/SWRITE
Pour éviter l'achat INDISPENSABLE d'une machine  : Convert' HEXA <--> DECIMAL

Avec tous les programmes du cours en catalog ainsi que la première application
des commandes SREAD/SWRITE : Le GDF SECTOR COPY 2.00...
(Dés le cours 9 révision 2.00 on utilisera cette routine galactique...)

+ le déplombage complet et détaillé : MIRAGE (plombé PLOMB'DISK GDF / cours 6)
+ un nouvelle épisode de la Saga épique : GODFATHER RACONTE... Radio France!!
+ une copie d'original à déplomber  : THE HALLEY PROJECT (C) MINDSCAPE



COURS 8 : TOUT SUR LA "RECHERCHE" D'OCTETS (Disk ou Ram)          Par Godfather
===============================================================================
Révision 3.00  (2 faces)                                               20/06/87

Les prochains cours necessitent certaines connaissances... alors pour bien se
préparer, ce cours va vous appendre TOUT (Absolument TOUT) sur :

* La recherche d'octets en mémoire
* La recherche d'octets sur un disk (au format normal)
* La recherche de données codées (EOR quelconque)
* La recherche d'octets "à trou"
* La recherche d'octets sur des disks plombés
* La recherche d'octets sur des disks 3.5" (pas encore testé)
* La recherche de tout un secteur (identique à celui en mémoire)

Avec un super éditeur de secteurs en 80 colonnes/Joystick/Souris/Clavier !!!!!!
Avec comme toujours pleins de nouveaux outils (Les 3 meilleurs sont inédits!) :

* Le CORE DISK SEARCHER (C) HARDCORE COMPUTIST
* ANSTROM 1.00 (C) DANNY SECTOR from PAD
* SCAN DISK EOR (C) KRISTO 1987
* Le COPY II+ 5.x
* Le FIND du DAVID DOS
* Le scanner d'octets de POMS 29

* GODFATHER RACONTE : Big Shits.. ERRATUM contre CHIP SELECT!..
et un fichier expliquant ce qui nous sera utile pour le cours 9 dans MERLIN PRO

Ainsi, vous saurez tout pour passer au cours suivant :



COURS 9 : Signez vos disks déplombés Part2 (Images Compressées Part1) Godfather
===============================================================================
Révision 1.00                                                       Le 29/05/87

* COMMENT SIGNER LES DISKS QUE VOUS AVEZ DEPLOMBE ?!? (2eme Partie)
  (Les images compressées et le décompresseur se chargent en accès direct)

Ce cours va vous expliquer le plus clairement possible comment signer une
image au boot d'un disk que vous avez déplombé, quand cette image n'est pas en
catalog ni codée mais compressée...

Le principe est simple : il faut : RETROUVER LE DECOMPRESSEUR SUR DISK, PUIS
EN MEMOIRE, PUIS RETROUVER L'IMAGE EN MEMOIRE, PUIS SUR DISK, PUIS TOUT CHANGER
mais la pratique ne l'est pas toujours... Dans ce fichier, tout est décomposé !

* Pleins de Compresseurs/Décompresseurs avec quelques sources reconstitués :

        - TRAITIMAGE 1.4 (C) HEBDOGICIEL        Source décomp'
        - INFOGRAMMES    (C) INFOGRAMMES        Source complet comp' décomp'
        - BEAGLE COMP'   (C) BEAGLE BROS        -
        - LAURENT RUEIL  (C) CCB                -
        - COMP' N.IV     (C) -                  -
        - SCRUNCH/UNSCR. (C) -                  -
        - PAC' UNPACK'   (C) -                  -

* GODFATHER RACONTE : L'escroc qui aimait le IIGS...!



COURS 10 : TOUT sur la dernière protection EPYX                       Godfather
===============================================================================
Révision 1.00                                                          08/06/87

Plus de 150 secteurs de fichier texte (!!) pour TOUT comprendre sur leur
plombage actuel et pour etre capable de déplomber les deux derniers Epyx,
Championship Wrestling et Movie Monster Game... et evidemment tous les
prochains donc le super : SUPER CYCLE...

Original au choix * Championship Wrestling      (2 faces)
                  * Movie Monster Game          (2 faces)
et bientot :      * Super Cycle
                  * World Games         (Copies 100% identiques à l'original !)

* GODFATHER RACONTE : Pourquoi ne changent ils pas toujours leurs protections ?



Copieur d'originaux EPYX                                             Par KRISTO
===============================================================================
Révision 1.00                                       (C) Godfather's Products #1

Les softs Epyx dont je parle dans le cours 10 ne sont PAS copiable du TOUT
avec AUCUN programme de copie actuellement disponible sur le marché...
Que ce soit LOCKSMITH 6.0 lent, EDD4, CRAZY COPY.. aucun ne peut vous fournir
une copie qui boote correctement...

Ce programme va vous permettre de copier vos originaux et vous en donnera une
copie 100% identique à l'original !!.. ("Mettez l'original en drive 1, un disk
vierge en drive 2; et attendez le miracle !!!"...)...



COURS 11 : TOUT sur la mise en CATALOG "simple"                       Godfather
===============================================================================
Révision 1.00

Vous saurez absolument tout sur...

* COMMENT METTRE EN CATALOG TOUT CE QUI PEUT SE METTRE EN CATALOG...

C'est à dire : - Comment retrouver l'adresse de départ d'un programme ???
               - Comment déterminer sa longueur ??? (On ne peut pas tt sauver)
               - Comment sauver et executer le programme sous DOS (ou ProDOS)

* GODFATHER RACONTE : Déplombage Mode D'Emploi !!...



Cours 12 : TOUT sur les signatures en texte...                        Godfather
===============================================================================
Révision 1.00                                                          20/06/87

TOUT.. TOUT.. TOUT... en ce qui concerne les techniques de signature d'un
soft basé sur un Boot 3.3 (soit environ 9 softs sur 10 !!)...

On parlera :

     - De programmation assembleur : La routine Print...
     - De codage, de temporisation : Codez, décodez, attendez...(codage simple)
     - Des bugs du GS (l'inverse quand le drive tourne fait tout planter!)
     - Du boot 3.3 (où implanter la routine Print?)
     - Du boot barbare (où implanter la routine Print?)

* GODFATHER RACONTE : L'échelle de "balaisité" /déplombage/plombage/bid/prog...




DOS EOR MAKER 1.00                                         Par GODFATHER et SAM
===============================================================================
Fichier explicatif Révision 1.00                    (C) Godfather's Products #2

LA PREMIERE PROTECTION CONTRE LES CURIEUX !!....

* Protégez vos données des indiscrets armés d'un éditeur de secteurs...
  Tous les secteurs du disk (meme le CATALOG!!) seront incompréhensibles mais
  néanmoins, votre disk aura un boot et un environnement DOS tout à fait
  classique...
* PersonnPalisez le DOS vous meme...(255 combinaisons possibles!)
* Compatibilité DOS 3.3 classique par un simple POKE !... (pour charger
  des fichiers, un fois d'un disk EOR, une autre fois d'un disk normal!)
* Comprenez le codage pour mieux l'améliorer (un fichier texte vous détaille
  tout!!)
* En quoi le DOS EOR peut empecher bcp de déplombeurs moyens de vaincre !!!



Cours 13 : Signer une image compressée.. La pratique !                Godfather
===============================================================================
Révision 1.00                                                          20/06/87

La théorie, c'est beau.. Ca explique tout.. Mais pour tout avoir vraiment dans
la peau, il faut pratiquer !!...

Ce cours se propose de vous montrer comment j'ai signé l'image compressée de
Movie Monster Game, sachant qu'elle était compréssée avec un compresseur que
je ne connaissait pas, ce compresseur étant réutilisé plusieurs fois (il n'est
donc pas remplaçable !!)... J'explique tout mon raisonnement depuis le début
pour tout de meme le remplacer !!

Ce qui était trop balaise en théorie va vous sembler super évident !!



Cours 14 : Tout sur les 3 protections Activision.. 1ere protection    Godfather
===============================================================================
Révision 1.00                                                          13/07/87

Tout sur la 1ere des trois protections utilisées par Activision..."Nibble Key"
Un classique des schémas de protection!... (Meme principe que le plombage
utilisé par Epyx et que celui de Lucky Process!...)

J'y décortique completement TOUTE LEUR PROTECTION :

  - La théorie        : Le principe de la protection "Nibble Key"
  - La découverte     : Pour voir comment la protection se présente...
  - La pratique .1    : La conversion au format 3.3 avec Adv. Demuffin 1.1
  - La pratique .2    : La recherche de la vérif'...
  - La pratique .3    : La compréhension de toute la vérif' (lecture + décode)
  - La pratique .4    : La "déconnection" de la vérif'
  - Le parrallele     : Les adresses clé de cette protection ds Space Shuttle
  - La pratique .5    : Les Déplombages "cookbook fashion"
  - La conclusion     : Les critiques que l'on peut faire à cette protection
  - La copie .1       : Disk Muncher (Pourquoi ça marche ??)
  - La copie .2       : Locksmith 6.0 Fast Disk Backup (comment faire ??)
  - Le plombage       : Plombez vos disks avec cette protection !!

Original au choix : - Space Shuttle     (Copies 100% identiques à l'original !)
                    - Ghostbusters

Ca, c'est un cours qu'il est beau...



SOURCE COMPLET du FBOOT utilisé dans tous les ELECTRONIC ARTS     par Godfather
===============================================================================
Révision 1.00 au 12/07/87                           (C) Godfather's Products #3

TOUT le FBoot Electronic Arts reconstitué en Fichier SOURCE MERLIN PRO!
Plus rapide que le FBoot de Chip Select (Tsunoo) et que celui de Sam !
Entièrement relogeable et ré-utilisable....

..et bientot, un FBoot maker adapté, avec un Pseudo-Catalog !...(Révision 2.00)




Et voici maintenant des propositions de cours futurs :

01. Tout sur les Activision (2eme et 3eme protection d'Activision)
02. Boot tracings complexes !.. comment les suivre ???... comment en créer ??
03. Cours de codage : comment coder vos signatures txt ou graphiques...
04. Tout sur le boot de "Tom E.Hack"... Comment faire un tel boot ?
05. Tout sur les Electronic Arts (TOUT c'est à dire bien mieux que DEP ME!!)
06. Comment mettre en 2nd stage file tout ce qui peut pas se mettre en CATALOG
07. Comment mettre en Mad Compactor tout ce qui peut pas se mettre en 2nd St.F.
08. Comment signer les images codées et comment coder vos images
09. Comment faire un "FIX" ?? (Retrouver les nombres de vies, les players....)
10. Etude complète du Lock-It-Up (Plombage/Déplombage pour toutes les options)
11. La protection de Don Juan      (Dos modifié de façon très originale!)
12. Tout sur le Plombage/Déplombage : Protection Nibble count !!!
13. Tout sur les Datasofts         (+Original)
14. Boot tracings balaises (comment compliquer le boot...comment le comprendre)
15. Plombage/Déplombage avec la protection de Lucky process (Très chouette!)
16. Plombages/Déplombages avec Plombage mode d'emploi 1
17. Plombages/Déplombages avec Plombage mode d'emploi 2
18. Comment vaincre (dans la joie!) le Protector 3.0.

Faites moi votre selection... Ils sont plus ou moins classés par interet...


Retour sommaire