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.
----------------------------------------------------------------------
DOS 3.3 |
Download Cours GDF 17 rev 1.01 (gzipped) |
-------------------------------------------------------------------------------
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
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
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!
===============================================================================
-------------------------------------------------------------------------------
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.)
-------------------------------------------------------------------------------
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.
===============================================================================
-------------------------------------------------------------------------------
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.
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
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..
-------------------------------------------------------------------------------
===============================================================================
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..
===============================================================================
===============================================================================
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!)
===============================================================================
-------------------------------------------------------------------------------
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 ??
-------------------------------------------------------------------------------
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
!!