Cours de déplombage 17



Ecran
Ecran
Ecran
Ecran
Ecran


Disk : Gdf17.dsk
"-" files are DELETED files | "*" files are LOCKED files
----------------------------------------------------------------------
*B A$16F5 (005877) L$17F8 (006136) 025 ADV DEM. BOOT TRACER ORIGIN
*B A$6000 (024576) L$0BFF (003071) 014 BOOT2.DD
*B A$0300 (000768) L$0058 (000088) 002 DECODE.RWTS
*A A$0000 (000000) L$06C6 (001734) 014 HELLO
*B A$0300 (000768) L$00A8 (000168) 002 IOB.OBJ0
*B A$0900 (002304) L$0494 (001172) 006 ORIGIN.DEMUFFIN
*B A$0900 (002304) L$0494 (001172) 006 ORIGIN.DEMUFFIN.2            
*B A$0901 (002305) L$15EA (005610) 024 ORIGIN.DEMUFFIN.2.S
*B A$0901 (002305) L$15EA (005610) 023 ORIGIN.DEMUFFIN.S
*B A$2700 (009984) L$08FF (002303) 011 RWTS.ORIGIN.CODEE
*A A$0000 (000000) L$1494 (005268) 022 SUPER_IOB.ULTIMA4            
*T A$0000 (000000) L$1300 (004864) 019 T.ANECDOTES ORIGIN SYSTEMS
*T A$0000 (000000) L$0600 (001536) 006 T.COMPLEMENT PLOMBAGE
*T A$0000 (000000) L$5B00 (023296) 091 T.COURS 17 REVISION 1.01
*T A$0000 (000000) L$7A00 (031232) 122 T.COURS 17...2EME PARTIE
*T A$0000 (000000) L$1000 (004096) 016 T.COURS 17...3EME PARTIE
*T A$0000 (000000) L$0600 (001536) 006 T.COURS 17...4EME PARTIE
*T A$0000 (000000) L$0E00 (003584) 014 T.INFORMATIONS COURS
*T A$0000 (000000) L$0E00 (003584) 014 T.INTRODUCTION
*T A$0000 (000000) L$0C00 (003072) 012 T.LE COURS EN BREF
*T A$0000 (000000) L$0600 (001536) 006 T.LES PROGRAMMES DE CE DISK  
*B A$2800 (010240) L$00FF (000255) 003 VERIF.OSI_B800
*B A$2800 (010240) L$0096 (000150) 002 VERIF.TEST
-B A$01FF (000511) L$27A5 (010149) 011 RWTS ULTIMA V                X

This catalog contains 24 files. 1 were DELETED.
----------------------------------------------------------------------


Floppy
DOS 3.3
Download Cours GDF 17 rev 1.01 (gzipped)


Sommaire


Lien Article
Voir Introduction.
Voir Cours 17 révision 1.01.
Voir Cours 17 seconde partie.
Voir Cours 17 troisième partie.
Voir Cours 17 quatrième partie.
Voir Le cours en bref.
Voir Les programmes de ce disk.
Voir Complément plombage.
Voir Anectodes Origin Systems.
Voir Informations cours.

hr cours GDF

Introduction.


-------------------------------------------------------------------------------
COURS 17 REVISION 1.00 INTRO'                     Godfather, le 08/11/87. Paris
-------------------------------------------------------------------------------
                                                         Update 17/04/88. Paris
Salut et salut,

        Ca fait déjà la 17eme fois que l'on se rencontre dans mes cours !
        Sympa !.. depuis le temps, on a vu - à chaque fois - des protections
        nouvelles, de nouvelles idées, de nouvelles techniques, de nouvelles
        ruses, de nouveaux programmes et de nouvelles anecdotes folles !..
        On en est arrivé à un niveau de déplombeur très respectable par rapport
        à ce que se fait en ce moment !.. et dés maintenant, les cours qui
        vont suivre seront ceux qui vont faire la différence entre le
        déplombeur et le déplombeur génial !..

        Les protections, les idées, les techniques que nous verrons à partir
        de ce cours sont vraiment des trucs très particuliers et que ne
        connaissent ne n'utilisent couramment que certains éditeurs..
        Avec les cours 1-16, on peut tout déplomber sauf une poignée de soft
        plombés exceptionnellement bien !.. et avec les cours à venir, on
        progressera encore de plusieurs crans jusqu'à ce qu'il ne nous reste
        rien dans la main !!.. plus rien ne doit nous résister !!...

        Aujourd'hui, on va étudier les deux plombages utilisé depuis pas mal de
        temps par Origin Systems. ce cours, donc, outre les connaissances
        générales qu'il va vous apporter, sera peut etre la clé qui vous
        permettra de signer un crack d'une super news telle que 2400AD,
        (et les prochains softs OSI ?)... on attend Homecourt et Space Rogue !!

        Il est assez balaise - vraiment - mais si vous avez bien pigé tout le
        cours 6, sur les headers, le principe de remise en place des headers
        après conversion d'un format en format 3.3 vu dans les cours 2 et 6,
        et tout le cours 16 sur la seconde protection Activision qui
        s'apparentent pas mal à ce plombage - et qui fut un des plus bos parmis
        les plus bos de tous les cours, à mon humble avis - alors là, vous
        avez des chances de pouvoir suivre !!.. si de plus vous avez un esprit
        logique et structuré, alors là, pas de problèmes !!..

        De toutes facons, avec ce cours là, vous pourrez toujours suivre le
        mode d'emploi en ne comprenant que quelques trucs au passage...
        l'interet est de tout comprendre pour pouvoir piger SEUL une protection
        du meme genre (à savoir, une protection format basé sur un 16 secteurs
        par piste, quel que soit ce format modifié; et la remise en place
        des bons headers sur le disk, si l'on suppose qu'il n'y a aucune vérif
        du format autres que celles de la rwts; et que voila voila !! hum!)..

        Alors sur ce, courage !! and may the force be with you !!

                                                         Amicalement, Godfather
-------------------------------------------------------------------------------


Retour sommaire

hr cours GDF

Cours 17 révision 1.01.


-------------------------------------------------------------------------------
COURS 17 REVISION 1.01                Update : 17 Avril 1988 - Godfather, Paris
-------------------------------------------------------------------------------

Salut et salut les déplombeux !!

        Aujourd'hui on va donc s'attaquer à ce qui devrait etre la protection
        de pas mal des prochains softs Origin Systems, dont :

                     SPACE ROGUE     et      HOMECOURT BASKETBALL

        Protection que l'on trouvait déjà sur plusieurs anciens softs de
        chez Origin Systems, Inc... A vrai dire je les soupconne de reprendre
        leurs plus vieux softs encore en vente et de changer leur protections,
        de mettre les protections à jour en fait, comme moi je révise mes
        anciens cours. et la protection 1987 est cette protection là.. la
        super protection que nous allons maintenant dévorer complètement !..

        J'y vais.. je me lance.. accrochez vous !..

-------------------------------------------------------------------------------
1. Essai de copie... détermination du format de l'original        Upd. 15/11/87
-------------------------------------------------------------------------------
Essai de copie locksmith rapide.. complètement infructueux !!.
On est donc en présence d'un format modifié et on va donc booter un nibble
editor pour aller voir de plus près la tete de ce nouveau format !..
Mais cette fois, on va essayer de faire "pro", et plutot que de booter mon
nibbles away fétiche, on va - parce qu'on est moderne - booter un locksmith 6.3
et sélectionner l'option Disk Editor (tapez "N" pour "nibble").
Bien.. vous allez voir, on peut faire des merveilles avec ces nouveaux softs !
On va aller voir d'abord le format de la piste $00.. faut un début à tout !
Tapez Ctrl-R pour Read Track et indiquez $00. Voilà, la piste $00 a été lue
sans rapports avec ses headers.. juste sous forme de nibbles !..ok?
Maintenant - et c'est là que c'est sympa - tapez Ctrl-F pour "find" (trouver)
puis Return... et voici les premiers headers de début de champ..
(Nibbles away II-C3 cherche alors le premier #$D5 je crois bien !)
Selon l'emplacement initial de la pioche, le premier début de champ sera un
champ adresse ou données.. mais ca, on peut le savoir en regardant les
valeurs en inverse - les nibbles de synchro - normalement à $FF mais qui, vous
le verrez ici avec ces origin sys., peuvent etre changés (en $DD par exemple) !
Bien.. vous allez ainsi inspecter chaque piste, et voici - après quelques
minutes de fouille - les résultats que vous aurez obtenu..

J'ouvre ici une parenthèse sympa.. On a lu, on a entendu, que Aldo et Laurent,
les (ex-) déplombeurs (et vendeurs!) fous, déplombaient TOUT en 2 minutes
chrono.. vous vous rendrez bien compte que nous aussi on a fait des softs en
30 secondes (cours 1,2..) , mais que certains comme ceux ci, necessitent au
moins plusieurs minutes d'investigations avec un nibble editor !!.
Excusez moi d'en parler ici, mais ca me chatouillait !..

Donc on voit que les champs adresse et data ont été modifiés..
Les résultats donc:
        _____________________________________________________________________
       !                                                                     !
       ! Piste num.  Debut des champs.                                       !
       !                                                                     !
       ! Piste $00 : D5 AA 96  D5 AA AD                                      !
       ! Piste $01 : D5 AA 97  D5 AA AD                                      !
       ! Piste $02 : D7 AA 96  D5 AA AD jusqu'au secteur #4 puis D5 AA B5    !
       ! Piste $03 : D7 AA 97  D5 AA B5                                      !
       ! Piste $04 : D5 AA 96  D5 AA B5                                      !
       ! Piste $05 : D5 AA 97  D5 AA B5                                      !
       ! Piste $06 : D7 AA 96  D5 AA B5                                      !
       ! Piste $07 : D7 AA 97  D5 AA B5                                      !
       ! Piste $08 : DD AA 9E  D5 AA B5                                      !
       ! Piste $09 : DD AA 9F  D5 AA B5                                      !
       ! Piste $0A : DF AA 9E  D5 AA B5                                      !
       ! Piste $0B : DF AA 9F  D5 AA B5                                      !
       ! Piste $0C : DD AA 9E  D5 AA B5                                      !
       ! Piste $0D : DD AA 9F  D5 AA B5                                      !
       ! Piste $0E : DF AA 9E  D5 AA B5                                      !
       ! Piste $0F : DF AA 9F  D5 AA B5                                      !
       ! Piste $10 : D5 AA 96  D5 AA B5                                      !
       ! Piste $11 : D5 AA 97  D5 AA B5                                      !
       ! Piste $12 : D7 AA 96  D5 AA B5                                      !
       ! Piste $13 : D7 AA 97  D5 AA B5                                      !
       ! Piste $14 : D5 AA 96  D5 AA B5                                      !
       ! Piste $15 : D5 AA 97  D5 AA B5                                      !
       ! Piste $16 : D7 AA 96  D5 AA B5                                      !
       ! Piste $17 : D7 AA 97  D5 AA B5                                      !
       ! Piste $18 : DD AA 9E  D5 AA B5                                      !
       ! Piste $19 : DD AA 9F  D5 AA B5                                      !
       ! Piste $1A : DF AA 9E  D5 AA B5                                      !
       ! Piste $1B : DF AA 9F  D5 AA B5                                      !
       ! Piste $1C : DD AA 9E  D5 AA B5                                      !
       ! Piste $1D : DD AA 9F  D5 AA B5                                      !
       ! Piste $1E : DF AA 9E  D5 AA B5                                      !
       ! Piste $1F : DF AA 9F  D5 AA B5                                      !
       ! Piste $20 : F5 AA B6  D5 AA B5                                      !
       ! Piste $21 : F5 AA B7  D5 AA B5                                      !
       ! Piste $22 : F7 AA B6  D5 AA B5 Il ne faut rien de + pour m'émouvoir !
       !_____________________________________________________________________!

Les fins de champ aussi sont modifiées, de manière sauvage, mais de ce coté là,
un $B942:18 suffira.. isn't it ?..

-------------------------------------------------------------------------------
2. Etude de la rwts et du boot !                                  Upd. 15/11/87
-------------------------------------------------------------------------------

Une fois que l'on a trouvé le format original, tout de suite, je me suis fait
un convertisseur de format, un peu comme celui qui est en catalog, et je l'ai
essayé sur l'original !.. et ca marchait impec ! l'original origin systems
(en l'occurence autoduel) se convertissait très facilement au format 3.3..
aucun grincement de drive durant toute la copie !..

Une fois convertie, j'ai étudié la copie - qui ne bootait pas évidemment -
pour remarque à ma plus grande surprise qu'il n'y avait rien de cohérent,
rien en language machine sur le disk SAUF le dos..
Alors là, j'avais deux solutions :

- soit ils utilisent un dos codeur comme je vous en propose deux dans les
  godfather's products.. et là je suis jaloux, car ils auraient eu cette idée
  avant moi !!
- soit ils ont fait des modifications dans les tables de translations des
  nibbles !!..

Après mure réflexion, j'en suis arrivé à une seule conclusion : la seconde !
Je ne vais pas vous dévoiler ici tous les secrets des tables de translations
des nibbles.. car j'ai en projet un cours sur le dos 3.2, et il sera bcp plus
approprié pour ce type d'explications, puisqu'entre la réalisation du dos 3.2
et du dos 3.3, apple à changé les tables de translations.. agaga agaga. ce
n'est pas très important pour l'instant..je vous promet qu'on en reparlera très
très bientot !..

Ah! je craque.. je vous en dit quand meme quelques mots !..

Vous savez ce que sont les headers.. ce sont des valeurs que l'on ne trouve
QUE dans les champs adresse ou données comme headers, comme marqueurs, mais
pas dans les données elles meme ! sinon, il pourrait y avoir confusion..
(le drive cherche D5 AA AD et au lieu de trouver le bon, il se baserait sur
les nibbles D5 AA AD lus dans le champ données ?? imaginez un peu !)..
donc, les headers sont en fait une série de valeurs réservées !..
donc, pour écrire sur le disk - par éxemple - un tableau de valeur allant
de 00 à FF; bref, pour écrire les 255 valeurs de base sur un secteur, on
dispose de moins de 255 valeurs puisque certaines ne peuvent figurer dans
le champ données !..certaines sont réservées !!..
alors comment fait la rwts ? puisqu'on a moins de valeurs pour inscrire tous
les valeurs, on va devoir mettre plus de nibbles que d'octets à lire et établir
une relation, un codage/décodage entre les deux - entre nibbles et octets !!..
le codage se fait à travers une table de translation à l'écriture et le
décodage à travers une table de translation à la lecture !!.. logique !!
mais je n'en dirais pas plus avant le cours sur le dos 3.2..
Si vous avez tout pigé, tant mieux !..

Bref, il y a une sorte de clé - une table de valeurs - qui décode, et une
qui code les octets en nibbles ou les nibbles en octets.. et cette table de
valeurs peut etre modifiée comme on modifie des headers !
ca veut dire quoi dans la pratique et dans ce qui nous touche en ce moment ?
cette table a été modifiée.. mais comment ?.. c'est une table assez balaise
et il suffit de modifier une valeur de cette table - selon certains principes -
pour tout faire changer, et - tel mes dos codeurs - une modification x n'est
en rien compatible avec une modification y et encore pas compatible avec l'état
3.3 (l'état "normal") de la table. Bref, seul moyen de savoir quelles
modifications ont été faites à cette table, c'est de la retrouver.. easy men !
Cette table fait partie de la rwts DONC il faut retrouver cette rwts !

Vous pourrez aller, par curiosité et pour pouvoir en reconnaitre plus tard,
et voir que l'on n'en trouve pas sur les copies converties de ces softs O.S.,
donc, aller voir sur un disk en dos 3.3 classique.. ze tables of translation
sont en piste $00 04. Ok?.. vous avez vu à quoi ca ressemble ??.. alors je
continue !.. sur un dos origin systems, ces tables ne sont pas visibles juste
après la conversion à cause d'un codage que l'on va voir plus loin, et de
plus, elles ne sont pas sur ce meme secteur $00 04.. mais un peu plus loin
sur la piste $00.

Vous le voyez au boot, il y a un prompt.. nous sommes donc en présence d'un
dos (bien que sous fboot je puisse qd mm afficher un "]" au boot à l'écran,
mais là je parle pour les puristes - et autres perfectionnistes - qui sont
parmis vous!).. mais, pas un dos 3.3 tel qu'on l'a sur n'importe quel disk..
disons un dos 3.3 revu et corrigé par Origin systems, car c'est vrai, il est
completement retapé leur dos ! (d'ailleurs, on peut y croiser des bouts de
source de dos - sur la piste $00 d'Autoduel original en tout cas !!)..
Bref, je parlerais de leur dos comme le dos origin;.. non, dos ultima, je
préfère!.. ok?

La modification faite dans cette table porte sur l'adresse $BAD5 : 03 (D5).
(L'original contient 03, un dos normal devrait contenir D5 en $BAD5)...
C'est cette adresse et son contenu que vous affichet mon convertisseur de
format automatique en bas à droite de l'écran... comprendo ??.. si ??.. ok !!

         _______________________________________________________________
        !                                                               !
        ! ATTENTION.. MAINTENANT, LE DISK ORIGINAL -ORIGIN SYSTEM- EST  !
        ! COPIABLE AU LOCKSMITH (CONVERTI AU FORMAT 3.3) MAIS IL NE     !
        ! BOOTE PAS, BIEN SUR, A CAUSE DU DOS ORIGINAL QUI NE PERMET    !
        ! QUE DE LIRE LE FORMAT DE L'ORIGINAL... COMMENT FAIRE ?        !
        !                                                               !
        ! 1er solution  : Essayer de remettre un DOS normal             !
        ! 2eme solution : Adapter le DOS original au format normal 3.3  !
        !_______________________________________________________________!

===============================================================================
PREMIERE SOLUTION : ESSAYER DE REMETTRE UN DOS NORMAL SUR LA COPIE DEMUFFIN
===============================================================================

Le demuffin a été fait (selon le demuffin que vous utiliserez), au moins de
la piste $3 à la piste $22. C'est à dire qu'il manque au plus, le dos du disk
original.. alors, première chose, nous allons essayer de simplement remettre
un dos 3.3 (Evitons les hybrides tel le pronto-dos qui est sur ce cours)..

Pour cela, vous le savez déjà (cours 2), il suffit de booter un COPY II+ 5.x et
de sélectionner l'option COPY et la sous option COPY DOS A TO B (Drive 1 à 2).
Inserez ensuite en drive 1, un disk contenant un DOS 3.3 normal, et en drive 2
la copie demuffin de l'original, pour y copier ce dos (sur les piste $00-02,
voir cours 4)... bien..

Si vous le bootez tel quel, vous tomberez (c'est normal), sur le message
immortel : FILE NOT FOUND.. En effet, il faut modifier le nom du boot_program
dans le dos, car le boot program des softs original n'est pas un HELLO basic..
comme souvent.. ok?.. pour cela, revenez sous COPY II+ 5.x et selectionnez
l'option CHANGE BOOT PROGRAM, et là, il faut savoir quel est le programme de
boot original.. comment faire ?

En général, sur les softs osi, le boot program est LE PREMIER programme du
catalog, mais ca ne veut rien dire.. ils ont souvent fait comme ca, c'est tout.
alors comment faire pour s'adapter si ca change, ou plus logiquement, comment
etre sur que c'est bien le boot program (meme s'il a le meme effet que le boot
program, il peut y avoir un autre boot program qui n'aurait aucun effet i/o,
et qui se brancherait sur celui que vous pensez etre le bon..ok?.. vous
comprenez pas ?.. c'est pas grave, laissez tomber cette parenthèse..!)..
bref, on voudrait bien par principe etre sur du nom exact du boot program..
Comment faire ?..

Il suffit de booter l'original et de l'interrompre (meme par un PM-CTRL-RESET
puis CTRL-RESET) et de taper CALL-151, puis *600<AA75.AAFFM et là, vous aurez
à l'écran le nom du boot_program à condition d'interrompre le boot du dos
au moment de l'apparition du prompt ("]").. ok?..
Vous verrez surement (c'était le cas pour tous les osi que j'ai passé en revue)
un caractere en inverse dans le nom du program.. c'est un caractère de
control.. en général, ca correspond à Ctrl-A.. on va voir ca..

Il se peut aussi que le premiere caractère affiché soit un "à" en inverse.
Ca correspond à la valeur 00. c'est à cause du pomme-ctrl-reset. en effet,
taper pomme-ctrl-reset aurait alors effacé cet octet parmi d'autres..
alors, notez le reste du nom du boot program, et consultez le catalog pour
avoir le nom complet. toi comprendre moi ?.. bon, ok..

A partir de là, on a donc le nom du boot program originaLLLL.. c'est tout bon..

Prenez le cas d'Autoduel.. le nom du boot program est : B(ctrl-A)T.. ok?
On va donc modifier le nom du boot program avec le copy II+ 5.x..
A l'option change boot program (avec la copie demuffin contenant le nouveau
dos en drive), selectionnez le bon (avec les fleches) et tapez return..
Simple, et là le disk devrait booter.. à savoir que :

                - Le dos (sa rwts) permet maintenant de lire le format 3.3
                - Le boot program est le bon

On boote le disk copie modifié.. et que se passe t-il ??.. ca boot, on voit
tout le programme, ca marche ?.. c'est déplombé ??.. non, pas vraiment..
Continuez un peu dans le programme, et vous verrez vite que ca ne marche plus.
En effet, dans tous les disks osi (tjrs des jeux de role!), il y a un player
disk, et les accès directs (voir cours 3) par la rwts à ces disks sont le
truc en plus qui fait planter le soft.. alors comment faire pour persister
dans cette voie, à savoir "ne pas se baser sur le dos original".
Et on va persister, pourquoi pas ?.. persistons.. persistons..

On se rend compte donc en voyant le moment où le soft tel quel, plante
(pour Autoduel, au premier moment où il à accès au drive 2 dans lequel se
trouve le player disk..), que c'est au moment d'un accès direct au disk..
(à savoir que le player disks n'ont pas de catalog - tout se fait en direct!)

On cherche donc, vous le savez déjà si vous avez lu le cours 3 (désolé de
faire autant de références à d'autres cours, c'est plus info que pub oeuf
corse, ok? alors ne m'en voulez pas !), des accès à l'adresse $B7B5 pour
commencer (sinon à $BD00, ou plutot $BA00.. ca a été modifié ds le dos osi).

Rappel : $B7B5 est l'adresse habituelle d'appel de la routine de lecture d'un
-------- DOS normal.. un autre est $BD00, mais dans le dos des originaux osi,
la routine que l'on trouve normalement en $BD00 a été relogée en $BA00. Donc,
si l'on ne trouve pas ce que l'on veut pas $B7B5, on cherchera pas $BA00 ou
encore par la 3eme et dernière adresse classique possible d'appel soit $3D9.
Mais vous allez voir, on va trouver ce que l'on veut directement par $B7B5.

On boote donc encore et encore votre COPY II+ 5.x pour cette fois selectionner
l'option SECTOR EDITOR puis le scanner d'octets (ou le cours 8!), tapez "S"
pour SCAN FOR BYTES, puis "H" pour Hexadécimal, puis "B5 B7" pour $B7B5. Ok?
Tapez

...

Note de Deckard du 29/12/2005 : secteur flingué sur les 4 versions en ma
                                possession...
...

erchez donc les octets B5 B7 de la piste $3 à la fin du disk..
On les trouve (sur Autoduel, pris comme exemple) en :

        Piste $17 secteur $7 octet $BF (JMP $B7B5 / 4C B5 B7)

On liste donc la routine qui se trouve avant ce JMP.. ca donne ceci..

Cette routine se trouve etre la routine qui va adapter la rwts au disk à lire,
à savoir à l'original (format plombé!) ou au data disk quelconque (format
normal).. ok?.. je vous balance toute la routine en question décortiquée..

* Initialisation pour la lecture du data disk

   $A1- LDA #$AD        ; D5 AA (AD) - normal, pour lire le data disk
        STA $4E         ; qui n'est pas plombé !..
        STA $BD5D       ;
        LDA #$9B        ; 9B remis à sa place ds la table de translation_read
        STA $BF2C       ; (au lieu de D5 pour l'original..ce qui est original!)
        BNE $BB         ; ceci équivaut à un JMP $xxBB puisque A n'est pas nul

* Initialisation pour la lecture du disk original

   $AF- LDA #$B5        ; D5 AA (B5) - original, pour lire le disk original
        STA $4E         ; qui est plombé, bien heureusement !
        STA $BD5D       ;
        LDA #$D5        ; D5 pour la modification (pour l'original toujours)
        STA $BF2C       ; de la table de translation_read

* Appel de la routine rwts (avec A/Y inversés!)..

   $BB- LDA #$E8
        LDY #$B7
   $BF- JMP $B7B5

* Et ca, pour faire beau, jusqu'à ce que je prouve le contraire.. mouais!

   $C2- LDA #$B7
        LDY #$E8
        RTS

C'est quoi cette routine ??.. On va voir ca plus tard, en fait, quand on
étudiera (second fichier) le dos original. Allez, je vous en parle tout de
suite, j'en suis obligé.. on voit deux choses dans cette routine qui fait
appel à la routine d'accès direct du dos, au moment où ca plante..
Pour ceux qui connaissent la rwts du dos 3.3, y'aura pas de pb de compréhension
Je continue..

On remarque, donc, deux choses

=> Inversion des registres A et Y pour l'appel (original). (cf cours 16)
=> Cette routine AVANT la lecture, modifie les headers en mémoire ainsi que
   l'adresse $4E (page0). On verra plus loin (fichier 2) que cette adresse
   est utilisée pour stocker un header qui peut varier. Mais le dos qui se
   trouve sur notre copie n'étant plus le dos original, la rwts s'en fout..
   mais ne se fout pas des pokes direct dans le dos ($BD5D, $BF2C).

On regarde le Dos osi, et on voit à quoi correspondent ces adresses ds la rwts:

=> $BD5D : Headers de début de champ données D5 AA (B5) au lieu de D5 AA AD
=> $BF2C : Octet de la table de translation des nibl_read, (D5) au lieu de (9B)

Cette routine est utilisée au moment où la lecture doit se faire sur le disk
original ou bien sur le disk data qui n'est pas plombé !.. et oui !..

Maintenant, ce qu'il faut, c'est modifier cette routine de manière à ce que
ca marche impec.. alors comment faire ?.. Il suffit de vider par exemple les
STA aux adresses DOS.. on pourrait aussi remplacer les valeurs relatives à
l'original par les bonnes, mais j'ai fait comme ca la première fois, alors
je vous le balance tel que, n'ayant pas eu le tps de tester l'autre méthode
(en théorie elle marche)..

Modifiez donc : STA $BD5D (8D 5D BD)     =>  NOP NOP NOP (EA EA EA)
                STA $BF2C (8D 2C BF)     =>  NOP NOP NOP (EA EA EA)

Et rétablissez l'appel à la rwts (notre dos est un 3.3 non modifié!) :

     LDA #$E8 LDY #$B7 (A9 E8 A0 B7)     =>  LDA #$B7 LDY #$E8 (A9 B7 A0 E8)

Attention!.. Il faut supprimer les DEUX couples de STA $BD5D,$BF2C..ok?
Sinon, ca ferait planter notre dos normal.. ok?

Vous pouvez faire ces modifications directement sur le disk, ou bien sur le
programme en catalog (en mémoire avant un BSAVE). (dans ce cours, j'aurais
vraiment rien laissé de coté!)..

On remarque enfin (mon dieu! c'est un vrai travail de sherlock!), que ce
programme se trouve en piste $17 7 (pour autoduel), et si l'on compare avec
la track sector map (vtoc) que l'on peut obtenir de la copie demuffin toujours
avec le fameux COPY II+ 5.x, on voit tout de suite que ce secteur est compris
dans le fichier S(ctrl-a)P pour autoduel.. Pour les autres softs osi, en
catalog, en ayant la piste/secteur, il vous suffira de vous reperer avec
la tsm du CII+, et vous saurez dans quel programme se trouve la routine en
question..

On a ainsi le nom de programme.. on pourrait le bloader en mémoire et modifier
les adresses correspondant aux instructions que l'on veut changer dans cette
routine, puis faire un bsave avec les bons parametres (A$,L$ visibles sous
dos comme indiqué dans le cours 4, ou bien encore avec le copy II+, option
CATALOG et sous_option FILE LENGHT). M'enfin.. moi, je ferais plutot les
modifs directement sur le disk.... faites les donc messieurs..

Je résume donc ce que l'on vient de faire :

        1. Demuffin     (normal)
        2. Remplacement dos par un dos normal (headers donc remis normaux!)
        3. Adaptation des programmes à ce dos normal

Et ca marche impec!.. c'est déplombé, on applaudit !..

              Et maintenant, passons à la seconde méthode, un peu plus balaise!
===============================================================================


Retour sommaire

hr cours GDF

Cours 17 seconde partie.


-------------------------------------------------------------------------------
COURS 17 REVISION 1.00               Update : 8 Janvier 1988 - Godfather, Paris
-------------------------------------------------------------------------------
(2eme fichier - Révision 1.00)

Resalut tout le monde.. la suite de ce méga-cours galactique..

        Voici tout le développement de la second méthode de déplombage,
        après le demuffin.. on a un copie copiable mais qui ne boote pas,
        et au lieu, comme on vient de le faire, d'adapter le programme à un
        nouveau dos, on va essayer d'adapter le dos au nouveau format.. ok?
        Je me lance..

        Si l'on veut modifier le dos original pour l'adapter au format 3.3,
        il faut le comprendre, le décortiquer, le suivre.. c'est ce à quoi je
        vous invite maintenant, vous me suivez ?

-------------------------------------------------------------------------------
1. Comprendre le boot et le dos ultima, ca va bien chier !...(si vs permettez!)
-------------------------------------------------------------------------------

Voici la première partie de l'étude du boot : ce que l'on appelle
débroussaillage, c'est à dire la suppression de tous les codages et décodeurs,
rencontrés dans la partie à étudier, de manière à bosser sur une place propre!

Bien.. on étudie donc ce dos - sur la version convertie au format 3.3 -
avec un éditeur de secteur.. je prendrais Disk Fixer 4.00, vous allez voir
pourquoi plus loin...

Je commence par lire la piste $00 00, rien d'anormal... ensuite $00 01, et
là, rien de familier n'apparait !!.. attiré par la routine en $00, je la
liste (ce secteur va se charger en $B700); je retrouve donc la routine qui
s'éxécute au boot, en $B700..avec la rwts chargée, comme toujours de $B700
à $BFFF et le boot1 rechargé en $B600.. bien!. voici la routine en $B700,
telle qu'on peut la voir avec un disk fixer (tapez "l" pour lister je crois)
ou bien si l'on boot-trace...

$B700 - LDY #$1A                ; On commence en $B71A
$B702 - LDA $B700,Y             ; On charge $B700,Y  (puis $B800,Y; etc..)
      - EOR #$99                ; On eor A avec #$99 (décodage)
      - STA $B700,Y             ; On sauve $B700,Y   (puis $B800,Y; etc...)
      - INY                     ; On incrément Y..   (passe à l'octet suivant)
      - BNE $B702               ; On n'est pas pret à passer à la page suivante
      - INC $B704               ; On passe à la page suivante (Change LDA)
      - INC $B709               ; On passe à la page suivante (Change STA)
      - LDA $B709               ; On compare la page actuelle à la derniere +1
      - CMP #$C0                ; On vérifie que l'on n'est à la fin du dos !
      - BNE $B702               ; On voit que non.. on décode la suite.. loop
$B71A - ???                     ; On a ici les données encore codées !..

C'est une belle routine de décodage comme on peut en trouver dans le cours 12
par exemple...

Notez plusieurs choses qui ont leur importance :

- Ce "décodeur" ne servira plus à rien si l'on décode et réécrit la rwts
  décodée sur le disk (elle se chargera alors déjà décodée)
- Ce décodeur fait se retrouve en piste $00 01 00 et fait $19 octets (hex).
- le listing donné ici a été trouvé sur Autoduel.. sur ultima 4 par exemple
  la valeur de l'EOR, soit la clé de décodage, était de #$94 je crois..
- le move se fait avec le registre Y, sans modification de X, car X contient
  le numéro du slot *16 (#$60).. on n'aura donc pas à ré-initialiser X
  avant la première utilisation de la rwts qui vient de se décoder.
- la routine en $B71A sera décodée juste à temps avant d'etre executée.. ne
  vous dites pas "en $B71A, il n'y a rien, ca va planter !!".. faux ! le
  décodeur va tout décoder et les ??? vont se transformer en instructions
  cohérentes !..génial!

Donc, on ne trouvait pas ce que l'on cherchait - soit un truc ayant la tete
d'une table de translation, telle qu'on en a vu une sur un disk en dos 3.3 en
piste $00 04, j'en parlais plus haut - parce que tout était codé avec un
EOR #$94 (le meme type de codage simple que ceux du cours sur les signatures
de cracks en texte, du cours 12).

-------------------------------------------------------------------------------
4. le débrousaillage : annulons ce décodeur et décodons la rwts codée !!
-------------------------------------------------------------------------------

Vous allez comprendre maintenant pourquoi j'ai booté un Disk Fixer 4.00 et
non pas un Copy II+ 5.x comme à mon habitude.. (chacun ses merdes, comme
pourrait le dire gog's d'acs!)...

On voit ici que tous les secteurs de la rwts sont codés avec #$99, dans le
cas d'autoduel en tout cas.. on va donc utiliser une option sympa qu'on ne
trouvait que sur disk fixer jusqu'à présent (vive mobby disk II !!)..
l'option de décodage par masques simples.. Tapez donc "X" pour voir !
Bien.. vous etes en face de ce que je pourrais appeler le "menu de décodage"..
tapez ensuite sur la fleche à droite pour arriver jusqu'à la valeur de l'EOR.
et entrez #$99 pour etre pret à décoder les secteurs de la rwts.
Tapez ensuite Ctrl-T.. voilà, vous etes en mode 'mask on'.. et mask = EOR #$99
D'accord ?.. bien!.

On a deux choix possibles par rapport au déplombage de ce niveau de protection,
exactement comme dans le méga-cours 10 sur les Epyx.. à savoir :

        - décoder tout et réécrire la rwts décodée sur le disk
        - décoder, changer, et recoder sur le disk

On a vu ds le cours epyx comment envisager les deux techniques, alors prenons
la plus clean et logique, pour qu'il ne reste aucun secret sur le disk à part
la solution de l'aventure !!.. on va donc - en premier :

      1 - charger la rwts codée en ram..
      2 - décoder toute la rwts en ram..
      3 - enlever la routine de décodage..
      4 - réécrire la rwts décodée sans la routine de décodage sur le disk..

On pourrait envisager un ordre différent, mais celui ci me semble déjà très
logique et coordonné comme dirait spock !..

La seconde technique folle, qui consiste à recoder le tout ne sera pas
envisagée ici, mais si vous voulez vraiment passer par là, vous n'avez qu'à
prendre le diskfixer 4.00 et bidouiller vous meme juste le secteur qu'il faut!
M'enfin.. en attendant, voici la méthode digne de l'apple mafia !!

Première étape : charger la rwts codée en ram..
-----------------------------------------------
Deux solutions : boot tracer et sauver la rwts comme ds le cours 10..
(exactement la meme méthode) ou bien la charger en accès direct au disk (on
sait ou elle est) et la sauver.. (Sread/swrite, du cours 7, nous sera encore
une fois bien utile !!)..

Encore une fois, question de clean, je vais utiliser la première méthode..
Je vous la retrace rapidement.. (avec l'original Origin Systems dans le drive)


        *1600<C600.C700M
        *16F8:A9 4C 8D 4A 08 A9 59 8D 4B 08 A9 FF 8D 4C 08 4C 01 08
        *1600G
        *2700<B700.BFFFM

Introduisez à ce moment là un disk avec un dos dans le drive, et tapez :
(le cours est idéal !!)

        *C600G
        Ctrl_Reset (dés que le prompt apparait !)
        ]BSAVE RWTS.ORIGIN.CODEE,A$2700,L$8FF

Remarque : On notera ici que la routine de décodage de la ram va de $2700
---------- à $2719 inclus, si la rwts originale codée est chargée en $2700..

2eme étape : décoder toute la rwts originale en ram..
-----------------------------------------------------
Il vous suffit de taper la meme routine que celle en $B700 (en la relogeant en
$300 par exemple), soit cette routine là (je ne vous donne pas la routine
en mnémonique, c'est la meme que celle de l'original à peu de choses près) :
(xx) représente la valeur de l'EOR original. (contenu dans l'adresse $B706)

        $300 : A2 1A BD 00 27 49 xx 9D 00 27 E8 D0 F5 EE 04 03
        $310 : EE 09 03 AD 09 03 C9 30 D0 E8 4C 59 FF

Puis tapez $300G après avoir bloadé la rwts originale sauvée précedemment, à
son adresse de sauvegarde, soit $2700.. la rwts originale est alors décodée
en mémoire. (le C9 30 soit CMP #$30 correspond au fait, que, chargée en $2700,
elle va se terminer en $2FFF.. on va donc décoder la ram jusqu'à la page #$30.
en effet, $2FFF+1 = $3000, is that clear?)..

3eme étape : enlever le décodage au boot, puisqu'elle va se charger décodée
---------------------------------------------------------------------------
Il vous suffit de mettre des NOP de $2700 à $2719 inclus. (NOP = EA,
tapez donc : $2700:EA EA EA EA EA EA ..etc, le dernier étant en $2719.)

A ce moment là, la rwts originale chargée en ram est alors décodée et ne
se décodera plus.. il n'y a plus - pour ce stade de la protection - qu'à la
réécrire sur le disk copie 3.3 !.. c'est ce qu'on fait maintenant :

4eme étape : sauve la rwts démunie de tout codage, sur le disk..
----------------------------------------------------------------
Pour cela, le plus simple est d'utiliser la routine Sread/Swrite du cours 7.
Ou bien la rwts.. allez! pour une fois j'utilise la rwts directement (et
vive le cours 3_Rwts qui nous est encore utile ici !)..

Il faut réécrire la rwts ($2700) décodée sur le disk converti au format 3.3 :

La page #$B7 (qui se trouve de $2700 à $27FF) en piste $00 secteur $01
La page #$B8 (qui se trouve de $2800 à $28FF) en piste $00 secteur $02
La page #$B9 (qui se trouve de $2900 à $29FF) en piste $00 secteur $03
La page #$BA (qui se trouve de $2A00 à $2AFF) en piste $00 secteur $04
La page #$BB (qui se trouve de $2B00 à $2BFF) en piste $00 secteur $05
La page #$BC (qui se trouve de $2C00 à $2CFF) en piste $00 secteur $06
La page #$BD (qui se trouve de $2D00 à $2DFF) en piste $00 secteur $07
La page #$BE (qui se trouve de $2E00 à $2EFF) en piste $00 secteur $08
La page #$BF (qui se trouve de $2F00 à $2FFF) en piste $00 secteur $09

Tapez le petit programme suivant, à la suite, en $320, pourquoi pas :
(xx) représente le numéro du drive ds lequel doit se trouve la copie du soft

        $320 : A9 00 8D EB B7 8D EC B7 A9 01 8D ED B7 A9 02 8D
        $330 : F4 B7 A9 xx 8D EA B7 A9 00 8D F0 B7 A9 27 8D F1
        $340 : B7 A9 B7 A0 E8 20 00 BD EE ED B7 EE F1 B7 AD ED
        $350 : B7 C9 0A D0 EC 60

et lancez le avec : - en ram en $2700 la rwts décodée (cf-ci dessus)
par $320G...        - en drive xx, la copie convertie au format 3.3 dépro'
Ainsi, la rwts décodée (sans le décodeur - soit prete à etre utilisée !)
sera réécrite sur votre copie.. c'est déjà ca !!

-------------------------------------------------------------------------------
5. Pour vous faciliter la vie : vive la vie et vive le vent !
-------------------------------------------------------------------------------

La routine de décodage et cette routine d'écriture se trouve en catalog sur ce
disk.. de meme que se trouve sauvée avec ce cours, la rwts toujours codée de
Autoduel (l'original sur lequel j'ai basé ce cours!).. pour la remettre sur
un disk, il suffit de faire :

]BLOAD RWTS.ORIGIN.CODEE
]BLOAD DECODE.RWTS
]CALL 768
*320G           (Avec la copie demuffin en drive 2 - vs pouvez changer le drv.)

Vous passerez alors directement à ce qui suit :

-------------------------------------------------------------------------------
6. Penser à enlever le "décodeur" de la disquette...
-------------------------------------------------------------------------------

Une fois décodé, le décodeur ne sert plus à rien.. aussi, faut il l'annuler.
Pour cela, rien de plus simple.. on a vu qu'il était en piste $00 01 00, et
qu'il occupait $19 octets (hex, oeuf corse). Il suffit donc de mettre des NOP
(EA = No Operation = aucun effet sur l'éxecution!) à la place pour l'annuler.
Bootez un éditeur de secteurs et mettez des EA en $00 01 de $00 à $19. Bien.

-------------------------------------------------------------------------------
DEUXIEME PARTIE DU DEPLOMBAGE : PERMETTRE LE BOOT               (Update Jan 88)
-------------------------------------------------------------------------------

    ATTENTION !.. ON VIENT DE DECODER SUR UNE COPIE DEMUFFIN DE L'ORIGINAL
    LA RWTS ET D'ENLEVER SON DECODEUR DU BOOT.. LES ROUTINES DU DOS SONT
    AINSI MISES A NU, ET NOUS ALLONS OUBLIER (PRESQUE) TOUT CE QUI A PRECEDE,
    LE CODAGE ET TOUT CA.. ON BOSSE DESSUS, BUT DU JEU : FAIRE BOOTER CETTE
    COPIE.. D'ACCORD ?.. ON Y VA...

-------------------------------------------------------------------------------
7. La compréhension du boot : modification des headers sur la rwts décodée
-------------------------------------------------------------------------------

Bien.. jusqu'ici - si vous avez bien tout suivit et compris - on n'a fait que
la conversion et le débroussaillage du disk au format 3.3. rien d'autre...
C'est ce que l'on faisait sans probleme avec un $B942:18 et en trente secondes
pour le temple of apshai trilogy !!.. imaginez !!
De plus, vous avez de la chance, nous sommes encore en train de parler de
plombages basés sur 16 secteurs disk/piste en format originaire 3.3... y'a
pire!Alors, prévoyez de l'aspirine pour les prochains cours fous sur le 19
secteurs ou le spiralling fou... n'est ce pas ?!!

On a le disk au format 3.3, et si on ne trouve aucune vérif (je vous rassure,
il n'y en a pas d'autres!); il ne nous reste plus qu'à changer les headers du
disk copie 3.3..

Pour certains origin systems, il est possible de simplement copier un DOS 3.3
sur la copie, et en changeant le boot programm (avec l'option prévue à cet
effet dans le copy II+ 5.x, le meilleur des Copy II+ - on s'attaquera à ce
probleme à la fin de ce cours - c'est déplombé impec.. je pense en particulier
à Ultima 4... cependant, toujours pour etre et pour rester clean, on va voir
comment simplement modifier les headers (avec des headers différents sur chaque
piste, c'est comme pour le cours 16 : c'est la folie !!)..

On y va.. à coup de sector editor.. bootez moi vite un copy II+ 5.x...

On a trois trucs potentiels à rétablir (théorie) :      - Table de translation
                                                        - Headers
                                                        - Vérif ?
 _____________________________________________________________________________
!                                                                             !
! Rétablir une table de translation compatible DOS 3.3                        !
! --------------------------------------------------------------------------- !
! Nous avons vu plus haut, que dans un dos 3.3, l'adresse $BAD5 correspondait !
! à une valeur de la table de translation.. valeur qui a été modifiée sur le  !
! soft Origin original concerné... pour l'original, on doit avoir $03 et pour !
! un dos normal (comme donc, pour notre copie demuffin de l'original; pour    !
! qu'elle puisse avoir une chance de booter un jour toute seule..), $D5.      !
!                                                                             !
! On sait retrouver sur un disk en Dos 3.3 l'adresse $BAD5..car on sait que   !
! toujours sur la piste $00, le secteur $1 correspond à la page $B7, $2 à $B8 !
! etc.. et enfin, $04 à $BA. On va donc aller voir comment se présente une    !
! table de translation normale sur un disk en Dos 3.3 en piste $00 04, et     !
! enfin (c'est là qu'on voulait en venir !), aller voir sur le disk au format !
! normal mais en dos Ultima, où se retrouve cette meme table..                !
! Pour ceux qui en ont déjà vu (pour vous bientot), une table de translation, !
! vous savez comment c'est.. à quoi ca ressemble... et donc, sans probleme,   !
! vous saurez en retrouver une sur un disk au dos modifié.. ca a une tete qui !
! ne s'oublie pas !!... (bien!)..                                             !
!                                                                             !
! On retrouve la table d'adresse modifiée du dos Ultima en piste $00 0x de    !
! la version convertie (Autoduel comme les autres).. il suffit donc déjà de   !
! remplacer l'octet $D5 : 03 -> D5. pour rétablir le format initial de la     !
! table de translation...                                                     !
!_____________________________________________________________________________!
 _____________________________________________________________________________
!                                                                             !
! Rétablir la lecture/ecriture de headers normaux dans le dos Ultima          !
! --------------------------------------------------------------------------- !
!                                                                             !
!       - Les headers sont différent à chaque piste - voire secteur           !
!                                                                             !
! Comment auriez vous programmé ca vous meme ??.. en mettant une routine de   !
! lecture par piste ?__surement pas, puisqu'il suffit de changer qqs adresses !
! (Headers) pour pouvoir lire une piste, puis une autre.. donc, i repeat...   !
! Comment auriez vous programmé ca..?? question de logique simple...          !
! On veut des headers variables, on utilise donc l'équivalent de la variable  !
! zicba, c'est à dire une adresse.. on va donc, lire des nibbles (Headers) et !
! comparer le nibble lu à une adresse contenant la valeur du nibble attendu   !
! (et non plus directement comparer à la valeur à trouver).. et pour chaque   !
! piste, on va modifier ces adresses correctement avant la lecture - en fnct  !
! des Headers qu'ont doit y trouver !.. et puisque ces headers ne forment pas !
! une progression arithmétique ou logique quelconque, on devrait pouvoir      !
! trouver une table de headers auquelle se refere une routine pré_read,       !
! pour modifier correctement les adresses des headers à lire..                !
! Mouais.. ils ont surement fait comme ca, mais je l'avoue, je n'ai pas       !
! creusé jusque là.. j'ai trouvé une manière bcp plus cool pour éviter à      !
! avoir à trop creuser.. et c'est pas du bricolage !.. i promess !!           !
!                                                                             !
! Oui.. enfin je m'avance peut etre un peu bcp mais je parie qu'il y a une    !
! table de headers somewhere, et qu'il suffirait de la modifier.. mais on va  !
! changer du cours 16.. on va détourner le probleme et laisser cette          !
! table (pour le moment) fictive, toute seule.. ok?                           !
! Alors comment faire ?. Il suffit de recherche dans la routin Read en elle   !
! meme les accès aux headers.. on les trouve en piste $00 07 et $00 08.       !
! en effet, là se trouve la routine de lecture (reperez les $C08C,X).         !
! On a LDA $C08C,X BPL *-3 (lecture d'un nibble) puis CMP #$D5, CMP #$AA,.etc !
! et de meme plus loin pour la lecture des divers champs data et adr. ok?     !
!                                                                             !
! En les étudiant de plus près on remarque tout de suite qu'on trouve ceci :  !
!                                                                             !
!       Disk Original                           Il devrait y avoir (copie)    !
!       ---------------------------------       ----------------------------- !
!       Piste $00 07 EF : CMP $31 (C5 31)       au lieu de CMP #$AA (C9 AA)   !
!       Piste $00 07 FA : CMP $4E (C5 4E)       au lieu de CMP #$AD (C9 AD)   !
!       Piste $00 08 3C : CMP $31 (C5 31)       au lieu de CMP #$AA (C9 AA)   !
!       Piste $00 08 5D : CMP $31 (C5 31)       au lieu de CMP #$AA (C9 AA)   !
!                                                                             !
! Ca veut dire quoi ? Tout simplement que la valeur variablede ces headers    !
! est stockée dans une adresse (ici $31 pour le headers normalement à #$AA et !
! $4E pour le headers #$AD).. et ainsi, le dos fera varier le contenu de ces  !
! adresses à volonté..                                                        !
!                                                                             !
! En boot_tracant (eh oui! décidement! ca ne nous lache pas!), on remarque    !
! ceci.. en $84A, au lie d'un JMP $B700, un JMP $B6F0 (piste $00 00 F0) :     !
!                                                                             !
!       $B6F0 -  LDA #$AA                                                     !
!             -  STA $31                                                      !
!             -  LDA #$AD                                                     !
!             -  STA $4E                                                      !
!             -  STA $B6F1      (dans cette meme routine, regardez bien!)     !
!             -  JMP $B700      (modification avant lecture, c'est bien ca!)  !
!                                                                             !
! Je vous faisait juste remarquer cette première modification des headers     !
! avant la première lecture, au passage.. oK??.. c'est la premiere            !
! initialisation des adresses $31 et $4E.. mais il y en a pleins d'autres..   !
! seulement, plutot que de les chercher, on a simplement annulé les           !
! COMPARE à ces adresses contenant les valeurs spéciales des headers.. ok?    !
! on a mis à la place de ces COMPARE ADRESSE, des COMPARE VALEURS_NORMALES    !
! aussi, ca marche impec de ce coté là!                                       !
!                                                                             !
! On va donc faire ces modifications immediatement sur notre copie.. ainsi    !
! aussi que l'annulation du drapeau (flag) "dos patched", pour pas s'ennuyer  !
! avec les headers de fin de champ, soit :                                    !
!                                                                             !
!       Piste $00 08 40 : SEC     (38)     mettez y plutot : CLC    (18)      !
!_____________________________________________________________________________!

Rappel : Rappelez vous la routine trouvée lors de la première méthode de
-------- déplombage.. elle stockait les headers en $4E.. vous avez maintenant
j'espère fait le rapprochement avec le $4E vu ci-dessus..

    ATTENTION !.. A CE NIVEAU LA, LE DISK EST NORMALEMENT CAPABLE DE BOOTER
    QUESTION TABLE DE TRANSLATION ET HEADERS.. ON A TOUT REMIS STANDARD, APRES
    AVOIR REMIS STANDARD LE FORMAT LUI MEME, GRACE AU DEMUFFIN...
    CA DEVRAIT BOOTER, SEULEMENT CA NE BOOTE PAS.. ON VERIFIE, ET L'ON VOIT QUE
    L'ON N'A PAS FAIT D'ERREUR.. IL Y A DONC UNE VERIF DU DISK ORIGINAL AU BOOT
    COMMENT FAIRE POUR L'ANNULER AUSSI DU DISK, COMME ON A MODIFIE LES HEADERS?
    C'EST CE A QUOI ON S'ATTAQUE MAINTENANT...

-------------------------------------------------------------------------------
TROISIEME PARTIE DU DEPLOMBAGE : LES VERIFICATIONS DU DISK ORIGINAL
-------------------------------------------------------------------------------

Eh! oui.. Vérification dans tous les sens.. comment faire pour y acceder
puisque c'est juste au boot que ca se passe ?.. je vous le donne émile ?..
on va boot tracer bien sur.. (depuis le temps que je vous le répète!,
j'espère que c'est rentré depuis le cours sur les softs Epyx 87)..

Boot tracons messieurs, boot tracons..
Je vais aller plus vite que d'habitude dans le boot tracing, car d'abord
vous touchez pas mal en boot tracing (simples cependant), depuis le temps, et
parce que le boot de ce disk étant sous dos à peine modifié questions
branchements de boot, y'aura aucun probleme pour vous pour suivre ce qui suit.
(mouais.. j'y vais, on va voir..)

On va boot-tracer un copie qui devrait booter.. ok?

*1600<C600.C700M
*16F8:60          (on peut mettre un RTS pour changer un peu !)
*1600G            (avec le disk copie demuffin modifié en drive 1)
*0801L            (on remarque en $84A le JMP $B6F0 et en $B6FB, le JMP $B700)

*16F8: A9 59 8D FC 08 A9 FF 8D FD 08 4C 01 08 (début du boot tracer)
*1600G
*B700L

Pour boot tracer l'original, il faudrait inserer changer le $59 FF ($FF59)
en $10 17 par exemple ($1710) soit à une adresse après le boot tracer en
question, où vous relogeriez la routine de décodage vue ci-dessus, pour que
la rwts soit décodée avant que l'on ne vous rende la main.. si vous souhaitez
alors continuer directement le boot, il faudra commencer après le décodeur de
la rwts (le décodeur original, pas le relogé of course) soit en $B71A et non
plus en $B700. ok?.. ceci dit pour ceux que ca amuserait de boot tracer
ainsi directement l'original.. m'enfin!..

Vous ne trouvez plus le décodeur en $B700, mais les EA que vous y avez mis..
Enfin, en $B762 vous trouvez un JSR $B793.. Normalement, la routine $B793
est la routine de lecture de plusieurs secteurs à partir d'un secteur donné..
Vous allez voir en $B793 et vous trouvez un JSR $B800 à la place de la routine
habituelle du dos 3.3.. vous allez voir en $B800 et vous trouvez ceci :

* Annule le jsr $B800 en $B793, le remplace par le début de la routine
* Read_plusieurs_secteur.. pour que seul le premier JSR $B793 aille à cette
* routine en $B800, et que tous les autres fassent la lecture normale..
* Ainsi, sera 'casée' au boot de ce dos un vérif.. vérif qui suit, en $B80F
* AC E5 B7 (poké en $B793) est le 'rétabli' du début de la routine en $B793
* Regardez dans un dos normal, vous y trouverez la meme chose. compris?

B800-   A9 AC           LDA #$AC        ; $B793:AC      ! AC E5 B7 équivaut à
B802-   8D 93 B7        STA $B793       ;               ! -------------------
B805-   A9 E5           LDA #$E5        ; $B794:E5      ! LDY $B7E5.
B807-   8D 94 B7        STA $B794       ;               ! -------------------
B80A-   A9 B7           LDA #$B7        ; $B795:B7      !
B80C-   8D 95 B7        STA $B795       ;               !

* Routine d'appel de la vérification du disk et test des résultats lus..

B80F-   A9 07           LDA #$07        ; Compteur du nombre d'essais pour la
B811-   85 4F           STA $4F         ; vérif (because drives peu fiables...)
B813-   AE E9 B7        LDX $B7E9       ; Slot*16 mis dans X - normal
B816-   BD 8D C0        LDA $C08D,X     ; Mode lecture on
B819-   BD 8E C0        LDA $C08E,X     ;
B81C-   10 12           BPL $B830       ;
B81E-   20 3E B8        JSR $B83E       ; Jsr__Read Disk
B821-   8D 00 02        STA $0200       ; On stocke ce qu'on a lu
B824-   20 3E B8        JSR $B83E       ; Jsr__Read Disk (encore!)
B827-   CD 00 02        CMP $0200       ; On compare avec la premiere fois..
B82A-   D0 0F           BNE $B83B       ; C'est différent.. SAUT EN $B793.OK.
B82C-   C6 4F           DEC $4F         ; Nombre d'essais décrémenté (PAS_OK)
B82E-   D0 F4           BNE $B824       ; Ré-éssais.

* Vérif original négative (ce n'est pas l'original)

B830-   A9 08           LDA #$08        ; Mauvais !.. TOUS ESSAIS RATES !..
B832-   8D 7A B7        STA $B77A       ;
B835-   8D F4 03        STA $03F4       ; Modifie le reset
B838-   4C 6B B7        JMP $B76B       ;

* Vérif original positive (c'est bien un original)

B83B-   4C 93 B7        JMP $B793       ; Vérif réussie.. on sort en $B793!

* Routine de vérif en elle meme (Read - avec quelques labels pour simplifier)

B83E-   AE E9 B7        LDX $B7E9       ; Slot*16 mis dans X avant lecture
B841-   BD 8C C0  Read- LDA $C08C,X     ; Lecture d'un nibble
B844-   10 FB           BPL Read        ;
B846-   C9 D5    CmpD5- CMP #$D5        ; Recherche un  :  ( D5 )
B848-   D0 F7           BNE Read        ;
B84A-   EA              NOP             ; Tempo
B84B-   EA              NOP             ;
B84C-   BD 8C C0 Read2- LDA $C08C,X     ; Lecture d'un nibble
B84F-   10 FB           BPL Read2       ;
B851-   C9 AA           CMP #$AA        ; Recherche un  :  ( AA )
B853-   D0 F1           BNE CmpD5       ;
B855-   EA              NOP             ; Tempo
B856-   EA              NOP             ;
B857-   BD 8C C0 Read3- LDA $C08C,X     ; Lecture d'un nibble
B85A-   10 FB           BPL Read3       ;
B85C-   C9 96           CMP #$96        ; Recherche un  :  ( 96 )
B85E-   D0 E1           BNE Read        ;
B860-   48              PHA             ; Tempo plus longue
B861-   68              PLA             ; Tempo plus longue
B862-   A0 04           LDY #$04        ; Lecture de 4 nibbles.. (piste/sect)
B864-   BD 8C C0 Read4- LDA $C08C,X     ;
B867-   10 FB           BNE Read4       ;
B869-   48              PHA             ; Tempo entre chaque lecture..
B86A-   68              PLA             ;
B86B-   88              DEY             ; Nibble suivant..
B86C-   D0 F6           BNE Read4       ; 4 nibbles lus ?
B86E-   BD 8C C0 Read5- LDA $C08C,X     ; Lecture d'un nibble
B871-   10 FB           BPL Read5       ;
B873-   C9 AA           CMP #$AA        ; Recherche un  :  ( AA )
B875-   D0 CA           BNE Read        ;
B877-   48              PHA             ; Tempo
B878-   68              PLA             ;
B879-   BD 8C C0 Read6- LDA $C08C,X     ;
B87C-   10 FB           BNE Read6       ;
B87E-   C9 AA           CMP #*AA        ; Recherche un  :  ( AA )
B880-   D0 BF           BNE Read        ;
B882-   A0 05           LDY #$05        ; Lecture de 5 nibbles
B884-   BD 8C C0 Read7- LDA $C08C,X     ;
B887-   10 FB           BPL Read7       ;
B889-   48              PHA             ; Tempo
B88A-   68              PLA             ;
B88B-   88              DEY             ; Nibble suivant...
B88C-   D0 F6           BNE Read7       ;
B88E-   60              RTS             ; Fin de la routine

Que fait cette vérif ?.. ce n'est pas vraiment ce qui va nous interesser ici.
Ce qu'on veut avant tout, c'est détourner cette vérif.. l'annuler.. alors
comment faire ?.. (ma foi..)

Deux choses, d'abord elle n'a aucun effet sinon de brancher le programme sur
$B793 si elle repere l'original, ou bien à une routine qui plante tout, si
elle repere une copie..!.. elle n'a aucun effet comme celui de la vérif de
la désynchro d'Epyx par exemple qui décodait avec les nibbles lus un bout de
programme qui allait devoir etre executé (la rwts en l'occurence).. non,
le seul truc que fait ou que ne fait pas cette vérif, c'est le branchement
en $B793, alors on va simplement la remplacer par un JMP $B793.. après la
réinitialisation de ce qu'il doit y avoir en $B793 pour que cette routine
assure sa fonction (read_plusieurs_secteurs) première.. En fait on va
mettre en $B80F ceci :

B80F- LDX #$06
B811- JMP $B793

Afin de rétablir la valeur finale (de sortie de la vérif) du registre X,
celui ci étant le seul à valeur fixe et modifié par la vérif.. enfin bon,
on n'a juste, pour annuler cette vérif qu'à la retrouver sur le disk (pas
de problemes, elle est en piste $00 02 00) et à la modifier comme ci-dessus..

            Piste $00 Secteur $02 Octet $0F : A2 6 4C 93 B7

Et là, enfin, on aura (encore!) vainci une protection : celle d'ULTIMA 5 !!..

                                           Un crack Godfather / New Apple Mafia
-------------------------------------------------------------------------------
("..et le pire, c'est qu'on l'a ainsi déplombé, avant qu'il ne soit sorti!" G.)


Retour sommaire

hr cours GDF

Cours 17 troisième partie.


-------------------------------------------------------------------------------
COURS 17 REVISION 1.00                Update : 22 Avril 1988 - Godfather, Paris
-------------------------------------------------------------------------------
Resalut tout le monde.. la suite-suite de ce méga-méga-cours galactique..

-------------------------------------------------------------------------------
Quelques mots sur leur dos, quelques trucs relevés au passage..       m'enfin !
-------------------------------------------------------------------------------

Bla bla.. comment j'ai fait l'adv origin - principe - adresses -
       _________________________________________________________________
      !                                                                 !
      !         La rwts originale de ces softs origin systems, Inc.     !
      !                                                                 !
      ! $BA00 - Point d'entrée rwts                                     !
      ! Boot2 - $B6F0 (initialisation adr_headers) puis $B700           !
      ! Boot3 - $9D82 (au lieu du classique $9D84)                      !
      ! Piege - Coordonnées de la table iob inversée à l'appel (A et Y) !
      !_________________________________________________________________!

-------------------------------------------------------------------------------
7. Copie de ces originaux : comment faire ?
-------------------------------------------------------------------------------
Actuellement, aucun programme de copie du commerce n'est à meme de faire des
copies de cette protection... pourquoi ?...ma foi ?..
Je suis en train de travailler en ce moment sur un copieur d'original basé sur
le locksmith 6.0 !!.. enfin, bon.. ce petit chapitre 6, juste pour vous dire
que je bosse là dessus.. a bientot donc !

-------------------------------------------------------------------------------
8. Plombage : Comment réutiliser cette protection ?    ( ENCORE UN CONCOURS ! )
-------------------------------------------------------------------------------

Il serait très interessant de pouvoir réutiliser ce plombage, à savoir qu'il
est basé sur un environnement compatible dos 3.3 - catalog - etc, donc pratique
et qu'il est quand meme assez balaise pour ce type de plombage !..

Ce qu'il faut déjà, c'est pouvoir formatter le disk piste par piste, avec un
format modifié !.. : Un des godfather's products nous sera ici, encore une
fois, très utile, à savoir la routine SHORT RWF (la plus courte routine et
la plus paramétrable de read/write/format), qui va nous permettre entre autre
de formatter une seule piste, au choix, avec un format également au choix.

Ce godfather's products nous servirait aussi à imiter le plombage d'Activision
décortiqué dans le cours 14 (très interessant, wasn't it ?).

Le source qui est donné avec ce godfather's products de la short rwf, nous
indique les headers (format, cf cours 6) regroupé dans une table telle la
table de headers utilisée par le locksmith 6.0, mais aussi la table de
translation des nibbles (nibblisaion, cf cours 6 - again!) qu'il va falloir
modifier.

Toutes les modifs à faire sont décortiquées dans ce cours , la seule chose à
faire est donc de booter le gp#12 et de bien lire le cours qui l'accompagne!
Je ne vous en dit pas plus - bien que cela suffise largement pour réaliser ce
plombeur - car je voudrais lancer un concours, tel le concours du cours 5 :


A GAGNER ===>                  DEUX COURS GRATUITS...

        ...pour celui qui réalisera, à partir du godfather's products #12
        (routine rwf + source) ce fameux plombeur, permettant également la
        copie (rapide?) de ces nombreux originaux origin systems.

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


Retour sommaire

hr cours GDF

Cours 17 quatrième partie.


-------------------------------------------------------------------------------
ORIGIN SYSTEMS 1988 : LA PROTECTION PRODOS (PROTECTION NUMERO 2)      Godfather
-------------------------------------------------------------------------------

Ils ont une protection dos, que l'on vient d'étudier.. seulement, certains
programmeurs leurs ont filé parfois des softs en prodos.. et ils ont fait
une protection adaptée à ce nouveau systeme d'exploitation barbare..

Pour déplomber ces disks, tel ogre ou le tout dernier Autoduel 2400,
il suffit de faire un : ]BRUN ORIGIN.DEMUFFIN.2, avec les bons disks dans les
bons drives comme indiqué par ce convertisseur de format (tel adv.dem1.1)
mais adapté à un format patched en D4 AA 96 / D5 AA 96 une piste sur deux.. ok?

La copie ainsi obtenue doit booter sans aucune autre vérification (comme dans
le cours 1, les headers modifiés ne sont pas vérifiés à la lecture..).

Rien de plus à dire sur cette seconde protection, je crois bien! et pourtant,
ca suffit pour déplomber AD2400, soft géant s'il en est!

                                                                Amicalement, G.
-------------------------------------------------------------------------------


Retour sommaire

hr cours GDF

Le cours en bref.


-------------------------------------------------------------------------------
Résumé du cours                              Godfather - Update 15 Janvier 1988
-------------------------------------------------------------------------------
Révision 1.00


Le déplombage des softs OSI a été décortiqué dans ce cours de la manière
suivante.. suivez le guide..

        Le Demuffin
        -----------
        * Essai de boot tracing_adv dem 1.2 pour démuffiniser avec la routine
          de lecture originale plutot que de tout décortiquer.. ca marche pas!
        * On étudie le disk au nibble éditor et je programme le origin.demuffin
          qui marche impec.. employez le par un simple brun.
        * J'ai trouvé dans mes cartons un demuffin fait par un américain pour
          Ultima 4.. il marche pour tous les autres oeuf corse.. simple RUN.
        * Il me manque juste le demuffin patch de l'advanced demuffin, fait
          par Z pour que la collection soit complete (triple emploi !)

A ce niveau là, on a une copie copiable de toutes les faces des originaux osi.
seulement elles ne bootent pas..

        Remplacer le dos (et faire toutes les modifications qui s'en suivent)
        ---------------------------------------------------------------------
        * On copie un dos 3.3 normal sur notre copie, on retrouve le nom du
          boot program original et on le change, puis enfin, on boot le soft
          et le jeu commence mais plante.. il y a une truc à changer dans un
          des programmes.. lors de l'accès direct au player disk...
        * On cherche des accès à $B7B5, on en trouve, on fait adapte ensuite
          la routine trouvée au dos normal remis sur le disk, et C'EST DEPLOMBE
          C'était la première méthode..

        Changer la rwts du dos original de la copie (et faire sauter la vérif)
        ----------------------------------------------------------------------
        * On a sur notre copie tous les secteurs/pistes de l'original au format
          locksmith, y compris le dos original osi. on retrouve et on modifie
          les headers (un peu compliqué!)
        * Ca ne boote toujours pas, alors on boote trace et on trouve une
          vérification dans le dos (que l'on ne trouvait pas dans la première
          méthode puisqu'on avait killé le dos original!).. on l'annule..
          et C'EST DEPLOMBE..
        * Le dos original est adapté à la routine que l'on a du modifier
          pour la première méthode, donc on s'en fout.. cette routine ne
          devra pas etre modifiée du tout..

-------------------------------------------------------------------------------


Retour sommaire

hr cours GDF

Les programmes de ce disk.


===============================================================================
Les programmes de ce disk
===============================================================================

Vous trouverez sur ce disk :

        * ORIGIN.DEMUFFIN       (c) Godfather 1-1988
        -----------------------------------------------------------------------
        Un démuffin simple pour tous les softs origin systems..encore trop lent
        Avantage : il affiche les headers et compagnie.. c'est ca qui le
        ralenti, mais c'est sympa après tout..

        * SUPER IOB ULTIMA4     (c) Hardcore Computist
        -----------------------------------------------------------------------
        Un démuffin à l'américaine concu au départ pour ultima4 mais qui bien
        sur marche sur tous les osi.. plus rapide que le mien, mais moins
        détaillant sur ses actions.. m'enfin.. choisit ton camp camarade..
        Malheur, je l'ai eu presque après avoir terminé ce cours !..
        J'aurais pu me reposer une nuit ou deux de plus..

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


Retour sommaire

hr cours GDF

Complément plombage.


===============================================================================
PLOMBAGE - AVEC UNE RWTS 3.3 MODIFIEE (FORMAT) MAIS CONTRE L.ADVANCED DEMUFFIN!
===============================================================================
Update 21/11/87                                                       Godfather

Moyens d'empecher un disk original au format modifié d'etre converti au format
3.3 avec mon advanced demuffin boot tracer ou par toute personne n'y
connaissant pas grand chose :

Momentané (peut etre déjoué par break)
-------------------------------------------------------------------------------
        - faire un eor (p.e.) sur cette rwts à la fin du boot1 (ultima 4)

Universel (on doit obligatoirement comprendre les modifications)
-------------------------------------------------------------------------------
        - Inversion Y et A en $BD00
        - Changer l'adresse d'appel de la rwts (meme une fausse rt_ en $BD00)
        - Vérifier la présence d'advanced demuffin en ram (pourquoi pas ?)
        - Forcer l'adresse de la table iob à la table habituelle $B7E8..(hum!)

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


Retour sommaire

hr cours GDF

Anectodes Origin Systems.


-------------------------------------------------------------------------------
COURS 17 : ANECDOTES sur ORIGIN SYSTEMS, INC.                         Godfather
-------------------------------------------------------------------------------
Dans la rubrique "faut vraiment etre déplombeur pour ca", voici deux anecdotes
sympa sur Origin Systems et tout ce qui s'y colle, s'y frotte !!..
-------------------------------------------------------------------------------
Révision 1.00                                                   Update 23/11/87

Quand je fais un cours de déplombage à propos d'une boite de soft précise,
je m'informe toujours de toutes les versions déplombées et par qui, de tel
ou tel soft, et je les étudie pour voir les méthodes des autres, par rapport
à la mienne.. comme ca, je fais non seulement un cours plus complet, mais
avec des idées qui ne sont pas que les miennes, donc des fois avec des
idées intelligentes !.. hum!

Pour ce cours, j'ai regardé les cracks de softs origin de Numéro 6,
du Shadock, de Chip Select et du piracy crack club (pompeurs?).. et j'ai
remarqué un truc très sympa sur la version de Chip...

Chip a toujours été très fou et malade envers les namekillers, et on l'a
vu faire des déplombages 'accrochés' à son nom.. c'est à dire, si vous
changez son nom au boot, la vérif de son nom qu'il a aussi ajoutée au soft,
au lieu de faire tout planter, va modifier le déplombage de facon à ce que
vous vous retrouviez avec un soft qe LE PLOMBAGE fasse planter !!.. donc,
à vous de tout redéplomber si vous voulez mettre votre nom dessus !..

Ici, chip a fait un truc sympa - que je pense volontaire - a savoir que le
codage dont je vous parle ds ce cours (pour Ultima IV, un EOR #$94), il
l'a changé en EOR #$34 au lieu de l'enlever comme l'on fait d'autres..
pourquoi le changer ?.. simplement pour "reperer" sa version..
c'est quelque chose que l'on fait tous et qui nous a permi d'affirer tel
ou tel mec en tant que namekiller !.. il suffit de modifier un point précis
du déplombage par exemple, bref, de laisser une marque "invisible", une
"signature" que nous seul connaissont !, et si l'on voit circuler une
version suspecte, d'aller la vérifier !.. le namekiller changera le nom
au boot - s'il le trouve - et ne pourra pas changer un truc dont il ignore
l'existence !!..

Alors ici, changer l'eor de la part de chip, c'est sympa comme signature
"invisible".. et nous seuls - vrais déplombeurs fous - en comparant avec
l'original voyons ca !.. marrant les dessous du cracking ?..

Autre anecdote sur les Origin Systems.. un suspence, à savoir que - étant
informé par diverses boites de softs de leurs news régulièrement - j'ai eu
peu avant d'avoir l'original de Ultima 5, la nouvelle qu'il était distribué
par Br0derbund !!.. aye aye aye !!.. distribué, d'accord ?? mais aussi plombé
par Br0dy ? soit par ce cher Gustavson, le 19-secteureur fou ?..
Au moment ou je rédige ceci, je ne peut rien dire.. suspence.. ce cours va
t'il servir - comme l'avais fait avant lui le cours 10 - à autre chose qu'à
etre un cours ??.. si Br0derbund s'occupe du plombage, non.. si Origin Sys.
s'en occupe (ce que je prédis!) alors oui !!.. suspence sur Ultima 5 !!!
The warriors of destiny nous font déjà frémir meme avant d'etre sorti !!

-------------------------------------------------------------------------------
LES TECHNIQUES DE DEPLOMBAGE DES DIVERS MECS QUI SONT PASSES SUR UN ORIGIN !!!!
-------------------------------------------------------------------------------

Numéro 6 a laissé tous les trucs codés impec dessus.. c'est son style de tjrs !
le plus petit nombre d'octets pour un crack super concis et efficace !
C'est ce meme numéro 6 qui fait les Electronic Arts en changeant simplement un
octet dans le MCode !! ce que personne n'avai fait avant lui, et ne saurait
faire maintenant (sauf?).. meme Z cherche encore le comment du pourquoi !!!

Chip Select a fait ce que l'on a vu ci dessus.. il a laissé le codage, mais
l'a modifié en guise de signature perso (il aurait pu l'enlever, mais vive le
fun !!..)

Le Shadock qui a enlevé tout codage... grand déplombage par le vide !!..
Ca peut etre considéré comme plus dirt.. moi je vois ca au contraire plus
clean dans ce cas, bien que je sois plutot du genre numero 6 : une modification
ridicule pour un effet dingue et un super crack !

Et vous ??.. votre méthode ??

-------------------------------------------------------------------------------


Retour sommaire

hr cours GDF

Informations cours.



                        INFORMATIONS CONCERNANT LES COURS
                -------------------------------------------------
                        Fichier mis à jour ce 17 Avril 88!

===============================================================================
2 NOUVEAUX GODFATHER'S PRODUCTS (10,11) : SCANNER 2*HAUTE RES. + ACCO'BOOT 1.00
-------------------------------------------------------------------------------
GP10 : Programmé par la $FF59 connection, voici un super scanner double haute,
       tels ceux du cours 5.. géant!...
GP11 : Pour s'incruster sur un boot (signature, fix integré, etc..), rien de
       plus géant que ce boot inédit style Tom E.Hawk boot!.. le programme
       est accompagné d'un fichier explicatif très complet, sur le mode
       d'emploi technique, et toutes les applications que l'on peut en faire..
       De plus, ici, un concours vous sera proposé. 1er prix : 2 cours gratuits



===============================================================================
GODFATHER'S PRODUCTS EPYX COPY 3.22 : DU NOUVEAU !!..     ==> CRACKER EPYX 1.22
-------------------------------------------------------------------------------
Un déplombeur AUTOMATIQUE concernant la protection Epyx, ca vous interesse ?
Il vient de naitre dans la nuit du 29 au 30 janvier 1988 !..
Pour vous le procurer, c'est simple puisque je l'ai adjoint au fameux EPYX COPY
C'est la toute nouvelle version du Godfather's Products #5.. et ca vous cracke
Spy 3 ou Sub battle en un rien de temps sans que vous ayez à vs casser la tete!
Et les prochains ?...



===============================================================================
LES REVISIONS EN PROJETS         Cours 11 Révision 2.00 + Cours 3 révision 3.00
-------------------------------------------------------------------------------
C11 : A ce super cours sur les techniques folles de mise en catalog, je vais
----- rajouter la super technique presque toujours infaillible de Fusco Volant
(un ex-cracker américain!).. utilisant la carte language pour mettre en catalog
les softs n'utilisant pas la carte language !!...

C03 : A ce cours sur la rwts 3.3, je vais rajouter le moyen d'appeler le dos
----- pour formatter une seule piste, ce qui peut etre très utile, si l'on se
lance dans la programmation d'un copieur, ou plus encore d'un plombeur.. ou si
une piste venait à délirer (poussière) et qu'il faille la reformater, et elle
seule.. il y a toute une procédure à connaitre.. et c'est pour bientot!



LES NOUVEAUX COURS EN PROJET :
===============================================================================
COURS 17.2 REVISION 1.00 : PROTECTION ULTIMA 5
COURS 18.2 REVISION 1.00 : FIXEZ VOUS LA VIE 2
COURS 19   REVISION 1.00 : PROTECTION ELECTRONIC ARTS 1988
(Originaux disponibles : Legacy of the Ancients, Chuck Yeager's Advanced
Flight Trainer, Wasteland, Death Lord...)



Et en plus :    COURS 01 REVISION 4.10  (Update 25/02/88)
                COURS 02 REVISION 1.2D  (Update 02/02/88)
                COURS 03 REVISION 2.51  (Update 06/03/88)
                COURS 12 REVISION 1.70  (Update 02/02/88) Déjà disponibles !
-------------------------------------------------------------------------------
Et je le rappelle : toutes les révisions de cours sont gratuites !!


Retour sommaire