Cours de déplombage 25



Ecran
Ecran


Disk : Gdf25.dsk
"-" files are DELETED files | "*" files are LOCKED files
----------------------------------------------------------------------
 B A$2000 (008192) L$0C21 (003105) 014 MASTER.SYSTEM
 B A$0901 (002305) L$021F (000543) 004 MASTER.SYSTEM.S
 B A$1000 (004096) L$1000 (004096) 018 MSYSTEM.OBJ
 B A$0901 (002305) L$43AC (017324) 069 MASTER.SYSTEM.OBJ.S
 B A$0901 (002305) L$0840 (002112) 010 VERIF RRABBIT.S
 B A$8000 (032768) L$0133 (000307) 003 VERIF RRABBIT
 T A$0000 (000000) L$0A00 (002560) 010 T.LES PROGRAMMES DE CE DISK
 T A$0000 (000000) L$6000 (024576) 096 T.COURS 25 REVISION 1.00     
*A A$0000 (000000) L$009D (000157) 002 VERIF.ROGER RABBIT
 T A$0000 (000000) L$0500 (001280) 005 T.INTRODUCTION
 A A$0000 (000000) L$0B75 (002933) 013 HELLO
 A A$0000 (000000) L$001F (000031) 002 MASTER.SYSTEM.OBJ
 T A$0000 (000000) L$0700 (001792) 007 DEPLOMBAGE ROGER RABBIT

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


Floppy
DOS 3.3
Download Cours GDF 25 rev 1.00 (gzipped)


Sommaire


Lien Article
Voir Introduction.
Voir Cours 25 révision 1.00.
Voir Les programmes de ce disk.
Voir Déplombage de Roger Rabbit.

hr cours GDF

Introduction.


===============================================================================
INTRODUCTION                                            Godfather, Janvier 89 !
===============================================================================
Cours 25 Révision 1.00


Salut les fous !


Voici un nouvel éditeur sur Apple..     Buena vista software!
Voici un nouvel original..              Roger Rabbit
Voici une nouvelle protection..         Inédit!
Voici un nouveau cours de déplombage..  Cours 25 !!
Voici un nouveau type de cours..        ProDOS !!!

A suivre donc dés le prochain soft Buena Vista qui arrivera !!
Il vous sera communiqué en avant première comme toujours !!          Ok?

Allez, va!

============================================================== Amicalement, GDF


Retour sommaire

hr cours GDF

Cours 25 révision 1.00.


===============================================================================
COURS 25 : La protection Buena Vista Software , Rogger Rabbit         Godfather
===============================================================================
Révision 1.00                                               Update Janvier 1989


Salut les fous !

A chaque fois qu'un nouvel éditeur apparait, on est toujours à l'affut de son
premier logiciel.. quel qu'il soit.. et uniquement (en tant que déplombeur),
pour voir un peu quelle nouvelle protection va nous arriver..

Aujourd'hui, et peu de temps après Taito corporation, voici la nouvelle
protection trouvée sur le premier soft de chez Buena Vista Software...
et en un temps record, voici un cours complet sur ce sujet. original inclus !

Originalité : tout se passe ni sous DOS 3.3 , ni Boot 3.3 , mais sous ProDOS !
Occasion pour moi de vous dire quelques mots sur ce système d'exploitation,
pour lequel, je dois l'avouer, j'ai dit beaucoup de mal.. essayons aujourd'hui
d'en dire du bien..

Sommaire Maestro :

Déplombage
----------
1. La découverte de la protection sous ProDOS (Quelques mots sur le ProDOS)
2. Indices à rechercher ($C08C,X / Tracing ProDOS files / Texte / ProDOS Func.)
3. Le plan de la disquette originale avec Copy II+ 8.2 ProDOS
4. Recherche vérification sur le disk par $C08C,X _ Copy II+ 5.x
5. Recherche vérification dans les fichiers de la vérification
6. Recherche vérification par le systeme ProDOS! Fonction QUIT.
7. Listing et source du fichier principal contenant la vérification
8. Le source très commenté de la vérification
9. La vérification est-elle déconnectable ? Pourquoi, et Comment l'annuler ?

===============================================================================
1. PROTECTION ProDOS : A la découverte de cette nouvelle protection!
===============================================================================

Première chose faite, comme toujours, un essai de copie de l'original.. qui
passe très bien au locksmith rapide.. on va ensuite booter l'original, qui
enchaine du boot ProDOS au jeu sans probleme, alors que la copie ainsi faite
vous ramene au selectionneur "Next Application" dés le boot...

Que s'est-t-il passé entres les deux ?

Une série de nibble planquée sur l'original et vérifiée au boot, ne se
trouvant plus sur la copie, la copie plante en revenant au prodos au lieu de
charger le boot du jeu...

Quelle est la commande prodos qui ramene au selectionneur ?

C'est la commande mli quit. mais on va voir ca plus en détail..
pour les fous du prodos, aucun probleme.. pour les autres, voilà tout !

Comment faire pour retrouver (et annuler l'effet de) cette vérification disk ?
C'est ce que nous allons voir tout de suite..

Les outils à posseder :         - COPY II+ ProDOS       (Avec ce cours!)

Les outils pour éditer la vérif - Copy II+ 5.x          (Copy Enfoires Disk!)
                                - Merlin Pro
                                - ProDOS Disk           (Avec un BASIC.SYSTEM)

Première chose à faire face à un original :
                        _____________________________________________________
                       !                                                     !
                       ! Faire un essai de copie locksmith rapide pour voir  !
                       ! si l'on est en face d'un protection format ou d'une !
                       ! protection nibble. (voir cours 1 pour + de détails) !
                       !_____________________________________________________!

===============================================================================
2. LES INDICES ET LES METHODES DE RECHERCHE POSSIBLE
===============================================================================

Il y a deux méthodes, en gros, pour retrouver la vérification disk, que l'on
va coupler dans le déplombage proposé dans ce cours, à savoir :

        - Recherche disk d'une lecture de nibble (instruction LDA $C08C,X
          c'est à dire les octets BD 8C C0 ou plutot 8C C0 ou encore EC C0).
          (pour plus de détails lire cours 10, 10.2 ou encore 14.2...)

        - Recherche parmi les fichiers launcher du disk qui est en ProDOS
          classique avec un catalog prodos normal.

Le but du jeu etant de retrouver la vérification disk original c'est à dire
une routine de lecture de nibbles qui donc passe obligatoirement, si elle
n'est pas codée, par l'instruction LDA $C08C,X avec X = #$60 ou alors
LDA $C0EC ou LDY $C08C,X ou LDY $C0EC.. $C0EC étant l'adresse fill_latch
c'est à dire la base de la lecture des nibbles. Mais on aura l'occasion d'en
reparler plus en détail bientot...

Pour la vérif, puisqu'elle se produit au boot, on peut aussi donc penser à
aller inspecter les fichiers de boot en les chargeant betement et simplement
par un bload sous prodos et en listant leur contenu sous moniteur.. à la
recherche des memes C08C,X ou C0EC. (octets 8C C0 ou EC C0)

La règle d'or est donc la suivante :
                ___________________________________________________________
               !                                                           !
               ! Disk copiable au locksmith mais qui plante :              !
               ! Il y a donc une verification disk par lecture de nibble   !
               ! Il faut donc rechercher des LDA $C08C,X ou LDA $C0EC, sur !
               ! le disk, et/ou en mémoire... et lister..                  !
               !___________________________________________________________!

===============================================================================
3. LE DISK MAP DE LA DISQUETTE DE ROGER RABBIT et QUELQUES MOTS SUR LE ProDOS
===============================================================================

Bootez maintenant un copy II+ ProDOS (inclus avec ce cours), c'est le meilleur
moyen d'aller jeter un oeil à des fichiers sur un disk ProDOS.. alors, let's go

L'option CATALOG nous donne ceci :

CATALOG DISK

/DISK1SIDEA
   NAME           TYPE   BLKS    MODIFIED      CREATED    ENDFILE    SUBTYPE

a  PRODOS         SYS      32    14-APR-88     30-NOV-88    15485    A=$80E8
b  DHRSFONT       BIN       5    16-NOV-88     30-NOV-88     2048    A=$2000
c  TITLE          BIN      33    23-NOV-88     30-NOV-88    16384    A=$2000
d  BV             BIN      33    23-NOV-88     30-NOV-88    16384    A=$2000
e  CREDITS        BIN      33    02-MAY-04     30-NOV-88    16384    A=$2000
f  HERMAN.FOLD    BIN      33    23-NOV-88     30-NOV-88    16384    A=$2000
g  HERMAN.ARMS    BIN      33    23-NOV-88     30-NOV-88    16384    A=$2000
h  CREDITS2       BIN      33    30-NOV-88     30-NOV-88    16384    A=$2000
i  MASTER.SYSTEM  SYS       8    30-NOV-88     30-NOV-88     3105
j  SIGNON         BIN       8    <NO DATE>     30-NOV-88     3420    A=$6000
k  PROG0          BIN       1    30-NOV-88     30-NOV-88      367    A=$6000
l  FONT           BIN       3    24-AUG-88     30-NOV-88     1024    A=$8C00
m  SHRS           BIN       3    30-NOV-88     30-NOV-88      587    A=$D000

L'option DISK MAP sur la face de boot de roger rabbit, nous donne ceci
(résumé en une page de tous les fichiers et des secteurs occupés):
 _____________________________________________
!                                             !
!         TRACK           1               2   ! J'ai laissé des indications
!         0123456789ABCDEF0123456789ABCDEF012 ! donnés par le copy II+ Prodos,
!                                             ! les données suivantes :
! S0      0aaaa                          i  à !
! EE      0aaaa                          i  à ! 0 - Emplacement du boot ProDOS
! CD      0aaaa                          i àà ! a - Emplacement du ProDOS file
! TC      0aaaa    _________________     i àà ! i - Emplacement du MASTER.SYS
! OB      0aaaa   !                 !   i  àà ! à - Emplacement secteurs vides
! RA      0aaaa   ! FICHIERS DIVERS !   i  àà !
!  9      0aaaa   !  Sans Interet.  !   i  àà ! La vérification disk étant au
!  8      0aaaa   !_________________!   i  àà ! boot du disk, elle se situe
!  7      0aaaa                         i  àà ! surement dans un de ces deux
!  6      0aaaa                         i  àà ! fichiers system. mais on
!  5      0aaaa                         i  àà ! donnera la priorité au fichier
!  4      0aaaa                         i  àà ! master system, au lieu du
!  3      0aaaa                         i  àà ! prodos car le master system
!  2      0aaaa                         i  àà ! gere le chargement des fichiers
!  1      aaaa                          i  àà ! et le prodos contient des
!  F      aaaa                          i  àà ! $C08C,X étant donné qu'il
!_____________________________________________! comprend la routine de lecture
                                                du ProDOS, tout comme le boot1
du DOS 3.3 contient la rwts 3.3 qui va ensuite permettre une lecture des pistes
différentes de la piste 0, donc le chargement des fichiers.

En un sens, le fichier system PRODOS est la rwts 3.3 et les commandes, et
le fichier MASTER.SYSTEM est le bloader, c'est à dire le programme de boot..
alors où chercher la vérif du boot sinon dans le fichier du boot ?

C'est à dire :

Si l'on cherche sur le disk, de rechercher depuis la piste $1E à $1F comme
nous l'indique la map ci-dessus (emplacement du fichier master.system), et
si l'on cherche en mémoire, de passer sous prodos pour charger le fichier
master.system et aucun autre pour commencer, sauf si l'on ne trouve rien
dans le fichier master system.

===============================================================================
4. RECHERCHE DE LA VERIFICATION DIRECTEMENT SUR LE DISK
===============================================================================

Pour effectuer cette recherche, si vous le voulez bien, on va se servir du
Copy II+ 5.x, le plus rapide de tous les scanners d'octets sur disk.. bien que
l'on soit en train d'utiliser le Copy II+ 8.2 ProDOS... m'enfin...

Bootez donc le Copy II+ 5.x du Copy Disk Enfoires ou du Cours 8, et passer
sous l'option Sector Editor puis pressez "S" pour Scan For Bytes, puis entrez
les octets suivants ("H" pour Hexa Bytes) : 8C C0 soit $C08C, l'adresse de
lecture d'un nibble (fill latch, mais on s'en fout..)

Comme on vient de le voir, on va commencer par la piste $1E 0F (pour le
Copy II+ 5.x qui fait un recherche identique mais plus rapide car en secteurs
décroissants) ou par la piste $1E 00 (pour le Copy II+ 5.5 classique qui fait
la recherche dans l'ordre croissant, ou pour tout autre scanner d'octets
allant dans l'ordre des secteurs croissants... le but étant que tout la piste
$1E soit lue et scannée).

On trouvera des 8C C0 aux coordonnées suivantes :
                ______________________________________________
               !                                              !
               !  Piste $1F Secteur $0D Octet $0C : BD 8C C0  ! LDA $C08C,X
               !  Piste $1F Secteur $0E Octet $A8 : BD 8C C0  !
               !  Piste $1F Secteur $0E Octet $B8 : BD 8C C0  !
               !  Piste $1F Secteur $0E Octet $C6 : BD 8C C0  !
               !______________________________________________!

On se limite donc des 560 secteurs du disk à deux secteurs...et en fait, à une
routine unique qui commence en piste $1F secteur $0E octet $3F et qui se
termine piste $1F secteur $0D octet $30 environ.. le tout étant méga-limité
par des 00. Donc, rien de plus simple à cerner..

On a vu que c'était dans le fichier MASTER.SYSTEM comme on le pensait,
il suffira de le charger en mémoire et de le lister avec un scanner d'octets
ram (cf cours 8, sous prodos la méthode par les paramètres de la routine move
étant la méthode la plus éfficace) et on retrouve cette routine en ram à
l'adresse suivante :

BLOAD MASTER.SYSTEM,TSYS,A$2000

Routine d'accès direct aux nibbles trouvée sur le disk en : $1A3C

En la listant, on voit bien que c'est la vérification du disk que l'on
recherchait, mais chut! tout cela est listé bien clairement plus loin...

===============================================================================
5. RECHERCHE DANS LES FICHIERS DISK
===============================================================================

La méthode de recherche par le biais du bload des fichiers catalog suspectés
se fera de manière très similaire :

BLOAD MASTER.SYSTEM,TSYS,A$2000

Recherche d'octets 8C C0 méthode du cours 8 en mémoire, et ainsi on remonte
mais en mémoire directement cette fois-ci, à la routine de vérification.
Meme principe que sur le disk.

Encore une fois, on listera la routine de vérif trouvée pour la comprendre
et l'annuler. mais avant, voici une méthode encore plus ... clean !

===============================================================================
6. RECHERCHE VERIFICATION PAR LA FONCTION PRODOS QUIT
===============================================================================
                                                Méthode ACS-Dijon! Trademark.89

La vérif' enchaine sur un QUIT /PRODOS, c'est à dire par un retour au
selectionneur s'il détecte une copie. Pour cela, le ProDOS fait un
jsr au MLI c'est à dire à l'interpreteur des commandes ProDOS.

Ca se programme ainsi : 20 00 BF        JSR Machine_Language_Interface_ProDOS
                        65              HEX 65

65 est le code hexa prodos pour signifier la fonction quit. C'est à savoir !!!

Il faudra donc rechercher des 20 00 BF 65 sur tout le disk, ou plutot, encore
une fois sur les pistes $1E,$1F du fichier master.system.. puisque c'est lui
que l'on suspecte hardiment, isn't it ?

On en trouvera aux coordonnées suivantes :
              _________________________________________________
             !                                                 !
             !  Piste $1F Secteur $00 Octet $7B : 20 00 BF 65  !
             !_________________________________________________!

Le programme de vérification disk se passe ainsi :
Voilà d'abord ce qui est admis :

        - Boot
        - Chargement ProDOS
        - Master System
        - Vérification dans le Master System

Et voilà la manière dont la vérification se déroule surement :

        - Lecture nibbles (via LDA $C08C,X = BD 8C C0)
        - Comparaison avec les nibbles à trouver
        - Retour positif : original trouvé
        - Retour négatif : copie trouvée

Si copie , alors : saut à la routine où se trouve ce JSR MLI_Quit .
Si original , alors : saut à la routine où se trouve la suite du boot .

Il faut donc remonter jusqu'au branchement ci-dessus.. Si copie alors JSR $BF00
sinon boot suite. Et l'on a déjà en main la routine Quit_MLI (JSR $BF00 HEX 65)

On va donc mettre un 00 à la place du 20 (JSR) trouvé ci-dessus , toujours sur
une copie , et booter cette copie. On obtient ceci au boot : un plantage en
moniteur (suite à votre 00 qui correspond à la fonction BReaK) au lieu d'un
plantage par the quit_prodos_function. Normal.. l'adresse donnée alors est
$1A3E c'est à dire que votre 00 était en $1A3C (un break donne toujours une
adresse décalée de 2 octets vers le bas), ce que vous pourrez vérifier en
listant cette zone ram par un simple L (retun) ou 1A3CL (return).

On a donc l'adresse de la routine JSR QUIT, on va donc la rechercher (puisque
c'est le début d'une routine, il n'y a rien avant en effet), pour y acceder,
il doit donc y avoir un jsr $1A3C ou un jmp $1A3C. On le recherche en
recherchant les octets 3C 1A sur la meme zone disk ou dans le meme fichier.

On les trouve aux coordonnées suivantes :
               ______________________________________________
              !                                              !
              !  Piste $1E Secteur $0B Octet $78 : 4C 3C 1A  ! JMP $1A3C
              !  Piste $1E Secteur $01 Octet $4B : 4C 3C 1A  ! (quit prodos)
              !  Piste $1E Secteur $01 Octet $DF : 4C 3C 1A  !
              !______________________________________________!

Il vous suffira ensuite de simplement NOPER (remplacer par EA EA EA) les
trois fois trois octets de jmp quit trouvés (en fait, les deux derniers
suffisent bien assez, le premier ne servant qu'en cas d'erreur disk je
crois, cas où il est normal sous prodos d'effectuer un quit!) sur le disk,
et c'est déplombé..

===============================================================================
7. FICHIER MASTER.SYSTEM ROGER RABBIT , TOUS LES POINTS CHAUDS !!!
===============================================================================

Les points chauds du master.system sont tous les endroits ayant attrait à
la vérification disk, à son (ses) appel (s), et à tout ce qui s'y rattache!
Le point d'entrée du master.system est en $17EF (jmp $17EF au début du fichier)
on y trouve ceci, et un peu plus loin, cela :

H17EF    LDX #<H192C
         ...

         JSR Vérif       ; Appel vérification disk!
         BCC Original    ; si copie (carry=1) alors Original
Copie    JMP Quit        ; Copie!

Original JSR H199B       ; Suite du boot normal : chargement jeu...
         JSR H19C3
         ... .....

Un peu plus loin, en $1885, on trouve ceci :

H1885    JSR H1092       ; Get Key
         AND #$DF
         CMP #$59
         BEQ H1898
         CMP #$4E        ; si le retour de 1092 and #$DF donne #$4E alors :
         BEQ H18A0       ; Plantage ! (QUIT TO PRODOS)
         JSR TempoBip    ; Pas plantage !.. suite du boot.
         JMP H1885

En $18A0 aussi, on trouve un appel de la routine 'quit to prodos' :

H18A0    JMP Quit

Le Quit to ProDOS se fait ainsi :

Quit    JSR mli          ; Copie ! Adresse  = $1A3C
        HEX 65
        ... ..
        ... ..

===============================================================================
8. LE SOURCE DE LA VERIFICATION DISK (DANS LE MASTER.SYSTEM)
===============================================================================

La vérification, nous l'avons vu plus haut, se trouve dans le fichier rrabbit
master system prodos en $17EF si je ne m'abuse. Voici le listing de cette
vérification auquel j'ai rajouté au début (pour donner le programme brunable
de vérification disk qui se trouve sur ce disk, cf liste programmes de ce disk)
une routine d'affichage "copie" ou "original" selon le disk en drive A.

Vous pouvez la lancer par un simple BRUN VERIF.RRABBIT en catalog sur ce disk.
Pour le relancer, sachez que ce programme commence en $.
Selon le disk en drive lors de l'execution de ce prg, il affichera "copie" ou
"original". Voici comment, et surtout, voici comment est la vérification
tant recherchée depuis le début de ce cours!

* GDF Test routine

         LDA #0         ;
         STA $16EB      ;
         JSR H17EF      ; JSR Vérification Disk.

         TAX
         LDA #>Or
         STA LpT+2
LpT      LDA $FF00,X
         BEQ EndT
         JSR $FDED
         INX
         JMP LpT
EndT     RTS

Or       ASC "ORIGINAL."
         HEX 00
Co       ASC "COPIE."
         HEX 00

*** PROGRAM ENTRY POINT

H17EF    LDX #<$192C    ; Cette routine là, on s'en fout..
         STX Jump       ; rien à voir avec la vérification disk.
         LDX #>$192C    ;
         STX Jump+1     ;

H17FB    LDA #$FF       ; Rappel du programmeur.
         BEQ Original   ; si = $FF alors c'est original.

         LDA $16EB      ; l'adresse à vérifier est $16EB
         BNE Original   ;

         LDA #$FF       ; On l'initialise à #$FF
         STA $16EB      ; elle doit pas bouger.
         JSR Vérif      ; Appel vérification disk!
         BCC Original   ; si copie (carry=1) alors Original

Copie    LDA #<Co       ; Copie!
         RTS            ;
Original LDA #<Or       ; Original
         RTS            ;
***
***
***
*** VERIFICATION DISK ORIGINAL (H1B00)
***

Vérif    LDA #$60       ; Slot 6 : Disk 5'25 Drive A.
         STA Slot       ;
         LDA #$05       ;
         STA H1BDA      ;

         LDX Slot       ; Allume drive. Lecture mode.
         LDA $C08E,X    ;
         LDA $C089,X    ;

Retry    LDA #$00       ; Essai de vérification lecture nibble #0.
         STY Try        ;

H1B27    JSR Rd_Nibb    ; Lecture nibble
         INY            ;
         BNE Cmp_D5     ; Est-ce un D5 ?
         INC Try        ;
         BNE Cmp_D5     ;
         JMP Fd_Copie   ; Copie trouvée.

* D5AABB Scan for.

Cmp_D5   CMP #$D5       ; CMP :          ( D5 )
         BNE H1B27      ;
         JSR Rd_Nibb    ;
         CMP #$AA       ; CMP :          ( AA )
         BNE Cmp_D5     ;
         JSR Rd_Nibb    ;
         CMP #$BB       ; CMP :          ( BB )
         BNE Cmp_D5     ;

* D5AABB Found

         LDY #$00       ;
H1B49    JSR Rd_Nibb    ;
         SEC            ;
         ROL            ;
         STA Try        ;
         JSR Rd_Nibb    ;
         AND Try        ;
         STA H1BDC,Y    ;
         INY            ;
         CPY #$02       ;
         BNE H1B49      ;

         LDY #$00       ;
H1B61    JSR Rd_Nibb    ;
         INY            ;
         CPY #$04       ;
         BNE H1B61      ;

H1B69    LDA $C08C,X    ;
         BPL H1B69      ;
         CMP #$FF       ;
         BNE Bad_Try    ;

         LDA $C08D,X    ;
         LDY #$10       ;
         LDA $09        ;
H1B79    LDA $C08C,X    ;
         BPL H1B79      ;
         DEY            ;
         BEQ Bad_Try    ;
         CMP #$EE       ; CMP :        ( EE )
         BNE H1B79      ;

         LDY #$00       ;
Rd_4Nibb LDA $C08C,X    ;
         BPL Rd_4Nibb   ;
         STA H1BDE,Y    ;
         INY            ;
         CPY #$04       ;
         BNE Rd_4Nibb   ;

         LDA H1BDC      ;
         CMP H1BD3      ;
         BNE Bad_Try    ;

         LDA H1BDD      ;
         CMP H1BD4      ;
         BNE Bad_Try    ;

         LDY #$00       ;
H1BA6    LDA H1BDE,Y    ;
         EOR #$87       ;
         SEC            ;
         SBC #$01       ;
         CMP H1BD5,Y    ;
         BNE Bad_Try    ;
         STA H1BDE,Y    ;
         INY            ;
         CPY #$04       ;
         BNE H1BA6      ;

Fd_Orig  LDA $C088,X    ; Original trouvé !
         CLC            ; Carry = 0.
         RTS            ;

Bad_Try  DEC H1BDA      ; Mauvais essai... s'il en reste, on reessaye.
         BEQ Fd_Copie   ; Sinon, on sort : Copie trouvée !
         JMP Retry      ;

Fd_Copie LDA $C088,X    ; Copie trouvée.. Carry = 1.
         SEC            ;
         RTS            ;

Rd_Nibb  LDA $C08C,X    ; Lecture nibble.
         BPL Rd_Nibb    ;
         RTS            ;

H1BD3    HEX 00
H1BD4    HEX 07
H1BD5    HEX 4A
         HEX 4F
         HEX 53
         HEX 48
Slot     HEX 00         ; Slot
H1BDA    HEX 00
Try      HEX 00         ; Nombre d'essais lecture nibbles "original"
H1BDC    HEX 00
H1BDD    HEX 00
H1BDE    HEX 00
         HEX 00
         HEX 00
         HEX 00
Jump     HEX 69FF       ; On s'en fout.

===============================================================================
9. LA VERIFICATION EST-ELLE DECONNECTABLE ? PEUT ON LA CONTOURNER FACILEMENT ?
===============================================================================

La vérification est déconnectable dans le sens où elle se termine par,
si elle détecte un original, par :

Fd_Orig  LDA $C088,X    ;
         CLC            ; Carry = 0.
         RTS            ;

Et se termine par, si elle détecte une copie (plus d'essais) :

Fd_Copie LDA $C088,X    ;
         SEC            ; Carry = 1.
         RTS            ;

Et si le nombre d'essais est revenu à 00, la sortie se fait par :

Bad_Try  DEC H1BDA      ;
         BEQ Fd_Copie   ;
         JMP Retry      ;

La seule différence en ram est celle de l'adresse H1BDA , c'est à dire
l'adresse du nombre d'essais necessaire à (ne pas) trouver les nibbles
relatifs au plombage !.. mais cette adresse n'est jamais vérifiée..
Il suffira donc de commencer la vérification sur le disk par un 18 60
(Clear Carry, RTS) pour que le soft soit déplombé à merveille !..

Encore une méthode !     _____________________________________________________
                        !                                                     !
                        ! Modifier piste $1F s$0E o$3F :  18 60  (Was A9 60)  !
Allez va,               !_____________________________________________________!

Buena Vista E Amigos !!

========================================== Vous avez tout compris mes canards ?

Amicalement, GDF! 89


Retour sommaire

hr cours GDF

Les programmes de ce disk.


===============================================================================
LES PROGRAMMES DE CE COURS                        Signé Godfather, par exemple!
===============================================================================
Révision 1.00                                              Update : Janvier 89!



Ce cours s'accompagne de , en outre la copie de l'original de Roger Rabbit
qui est sous prodos normal bete et méchant et ayant un catalog et une diskmap
prodos tout ce qu'il y a de normal , des programmes suivants :

Copy II+ 8.2 ProDOS (c) Central Point Software 1988     (1 face)
---------------------------------------------------
Ce programme de gestion des fichiers / disk prodos est géant car il permet,
comme le permettait en son temps universal file converter , de transferer un
fichier quelconque de prodos à dos ou de dos à prodos.. c'est le programme
qui m'a rendu les fichiers master.system sous dos pour ce cours (en catalog
également..) . A avoir et à décortiquer !

Passer des fichiers ainsi se fait par le biais de l'option COPY tout
simplement, qui accepte à la fois le dos et le prodos. C'est giga-utile!

Disk Formatté ProDOS + Basic.system     (1 face)
-----------------------------------
A avoir également, donc le voici !

Master.System                           (en catalog sur ce disk!)
-------------
Début du fichier master.system en $2000 (routine move)

Master.System                           (en catalog sur ce disk)
-------------
Fichier master.system pret à etre éxécuté (bonne adresse ram).
Ce fichier est celui dont on parle dans ce cours, et qui contient la vérif'

Verif.Rabbit                            (en catalog sur ce disk)
------------
Runez le, ce programme détecte original ou copie en fonction du disk inséré.
Ce programme est listé dans ce cours et détaillé !
Il le sera bientot encore plus.


Comme tjrs, si vous avez des idées de routines à écrire pour faciliter ce
type de recherche de vérif, ou de déplombage, faites moi signe !
J'y travaillerais !

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


Retour sommaire

hr cours GDF

Déplombage de Roger Rabbit.


-------------------------------------------------------------------------------
      WHO FRAMED ROGER RABBIT  (c) BUENA VISTA SOFTWARE  (k) FLYNN'S          
-------------------------------------------------------------------------------


salut a tous et a toutes ,

Who framed roger rabbit est un soft de buena vista software . Il y a 2 disks
recto verso . Il tourne sous prodos .

La premiere protection , car il y en a 2 , vous renvoie au quit prodos
quand vous booter la copie .

La deuxieme protection est beaucoup plus sadique ... Elle vous pose une
question sur un des article du gag factory catalog .

vous     - C'est grave docteur ?
moi      - Mais non , il n'y a la rien d'incurable .
vous     - Que faut-il faire docteur ?
moi      - Patience , j'y arrive

Donc , au boulot :

  - locksmith 6.X ,

  - copie en fast backup ,

  - editeur ( en passant je vous conseille le tres boooooo anstrom 2.3 ) ,

  - remplacer en  disk 1  face A  piste $1E  secteur $01 :
         90 03 4C 3C 1A
    par  90 03 4C 0F 18 ,

  - remplacer en  disk 1  face B  piste $0D  secteur $09 :
         4C 03 60
    par  60 03 60  ( tout au debut du secteur ) .

Et puis c'est tout ... Vous etes joyeux , moi aussi ...


                                                             Flynn's

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


Retour sommaire