===============================================================================
INTRODUCTION DEPLOMBAGE MODE D'EMPLOI 9 , AOUT
1988
G.
===============================================================================
Révision 1.00 , Lachée dans la nature le 1er Oct. 1988,
date de l'Apple Expo 88
Salut et salut pour ce 9eme volet de depme.... avec, pour l'accusation :
- Origin Systems (Ultima 5)
-
Datasoft (Alternate Reality II ,
Force 7...)
- Sierra On Line (Space
Quest II , King Quest III..)
- Epyx ,
Nexa (L.A. Crackdown , Deathsword...etc)
-
Microprose (Pirates!)
et pour la défense :
- The Highlanders Team
(ACS+GDF)
- The wrong Deny from The
ACS-Dijon
- 'El Mathos' , le roi du
codage ?
- Oliver Twist , plombeur
extra-bandant (pjoke)
- Loockheed + Copperfield +
The Jokersoft from The Brain Trust
- Captain Crack , en free
lance..
Godfather au clavier et avec vous tout au long de ce nouveau depme..
Ouf, ca commence à nous faire vieux.. bientot 3 ans 1/2 depuis
le numéro 1..
Ca nous rajeunit pas, ça.. madame.
LES NOUVELLES RUBRIQUES
-----------------------------
Je vous avais promis dans le precedent un dep9 pleins de nouvelles
rub'..
et le pari a été tenu. Vous trouverez en effet sur ce
disk (2 faces) outre
les nombreux fichiers de déplombage de quelques unes des
dernieres news
que l'on a eu le courage de rédiger, les rubs suivantes :
-
Codages
. Un giga-cours par El-mathos, le maitre du codage
-
Plombage .
Deux fichiers par Oliver Twist
-
News
. Un super fichier par The Brain Trust
et quelques ragots par-ci, par-la, parce que ca fait toujours bouger
beaucoup
de monde..
GOLDEN SHITS et BIG KISSES!
---------------------------------
Vous le remarquerez vite en listant les fichiers de ce depme, la
rubrique
big shits a disparu comme dirait l'autre "définitivement
jusqu'à nouvel ordre".
C'est marrant le phénomènes "big shits".. j'avais
lancée l'idée dés dep1 si ma
mémoire est bonne, et on a été tour à tour
accusé de délation, de diffamation,
d'inventer des pseudos "pour faire bien", d'intolérance, etc...
mais on a
continué. puis, n'ayant sincèrement plus de quoi remplir
cette rubrique (est-ce
que ça en aurait calmé certains par hasard ?), j'ai
décidé de l'arreter ds dep8
mais maintenant, on me la réclame.. tout le monde sautait dessus
en premier,
etc.. et je me fais critiquer de l'avoir stoppée.. J'ai tjrs
été sincère et
laissé la parole à tous - sous leur responsabilité
- dans cette rub décapante,
mais je ne vais tout de meme pas me mettre à inventer..
Enfin, le résultat est paradoxal.. Big shits il y a , insultes
il y a..
Big shits il n'y a plus , critiques et regrets il y a.. comment
réagir ??
De plus, le big shits est une idée qui a fait son chemin puisque
Coolware,
le premier journal sur disk, l'a repris sous le noms "Golden shits",
Sygmapple l'a reprise sous le titre "les nazes du mois", et de
nombreuses
autres personnes ont aimé glisser un big-shits avec un crack ,
pour saluer
un de leurs amis préféré.
La dernière fois, je vous entretenais des plagiats des doc on
the rocks..
aujourd'hui, on me plagie les big-shits.. mais ca ne peut que me rendre
plus
heureux... Toujours copié, jamais égalé ??.. qui
sait ??.. tant mieux si
l'on peut faire mieux.. tant mieux et bravo.. mais il faut - meme pour
une
rubrique big shits - rester cool et clean, c'est à dire ne pas
donner
d'adresses ( impératif! ) et rester correct..
Revenons aux insultes ( méritées ) mais galantes...
please!
Coté big kisses, je voudrais saluer quelques amis sur st..
tsunoo, the lord,
(certains comprendrons) et quelques autres.. sur amiga
également, hackerlight
et silicon spy "le déserteur", et sur archimède,
"beebop"...
BIEN QU'ILS SE SOIENT TROMPES DE MACHINES !!!!..
A noter aussi, avant que je ne parte.. la présentation
originelle de ce boot
nous vient des talents de chpi (le code a été refait,
windows etc..) et de
chip select.. repiqué au boot de mandragore et adapté ici
par The gog's.
(criez "viva!", ca lui fera plaisir!)...
Je vous laisse ici jusqu'à la prochaine fois...
Decembre approche et comme chaque année, c'est la
périodé fétiche pour les
éditeurs.. plus de 18 titres annoncés par epyx.. 7 par
sierra on line.. etc..
Decombre.. beaucoup d'originaux... beaucoup de déplombages.. et
je l'espère,
l'occasion de recommencer ce dialogue au sein de DEPLOMBAGE MODE
D'EMPLOI 10,
si Dieu - et les autres déplombeurs de talents! - me pretent
vie!.
A bientot donc...
Sincèrement, Godfather
===============================================================================
DOS 3.3 |
Download DEPME 09 side 1 (gzipped) |
|
DOS 3.3 |
Download DEPME 09 side 2 (gzipped) |
Disk : Depme9_f2.dsk
"-" files are DELETED files | "*" files are LOCKED files
----------------------------------------------------------------------
A A$0000 (000000) L$0022 (000034) 002 HELLO
B A$0300 (000768) L$0030 (000048) 002 PROG1
B A$0300 (000768) L$0010 (000016) 002 PROG10
B A$0300 (000768) L$0050 (000080) 002
PROG11
B A$0300 (000768) L$0080 (000128) 002 PROG12
B A$0300 (000768) L$0030 (000048) 002 PROG2
B A$0300 (000768) L$0030 (000048) 002 PROG3
B A$0300 (000768) L$0030 (000048) 002
PROG4
B A$0300 (000768) L$0070 (000112) 002 PROG5
B A$0300 (000768) L$0040 (000064) 002
PROG6
B A$0300 (000768) L$0068 (000104) 002 PROG7
B A$0314 (000788) L$001C (000028) 002
PROG8
B A$0300 (000768) L$002D (000045) 002 PROG9
T A$0000 (000000) L$2300 (008960) 035 T.CODAGE PART 1
T A$0000 (000000) L$5300 (021248) 083 T.CODAGE PART 2
T A$0000 (000000) L$5800 (022528) 088 T.CODAGE PART 3
T A$0000 (000000) L$5900 (022784) 089 T.CODAGE PART 4
T A$0000 (000000) L$1A00 (006656) 026 T.L.A. CRACKDOWN 1
T A$0000 (000000) L$2D00 (011520) 045 T.BORROWED TIME
T A$0000 (000000) L$0A00 (002560) 010 T.NEWS APPLE II
T A$0000 (000000) L$1100 (004352) 017 T.L.A. CRACKDOWN 2
T A$0000 (000000) L$0D00 (003328) 013 T.AMERICAN ROAD RACE
B A$8800 (034816) L$00CA (000202) 002 DEP9
T A$0000 (000000) L$1200 (004608) 018 T.INDOOR SPORTS
T A$0000 (000000) L$1B00 (006912) 027 T.BALANCE OF POWER V2
T A$0000 (000000) L$0F00 (003840) 015 T.REGLEMENT GDF CHEST 89
This catalog contains 26 files. 0 were DELETED.
----------------------------------------------------------------------
-------------------------------------------------------------------------------
ALTERNATE REALTITY (PART 2 : THE
DUNGEON)
The Highlanders
-------------------------------------------------------------------------------
Pour déplomber ce soft, no problem :
Sur une copie locksmith de la première face, modifiez avec un
sector éditor
style copy II+ 5.x, le secteur suivant :
piste $00 secteur $05 octet $46 : EA EA EA EA (C9 DE D0 ED)
et en ram, ca donne quelque chose comme $4A46
Comme quoi Datasoft ne progresse guère ces temps-ci..
Amicalement, Godfather and the Gog's
-------------------------------------------------------------------------------
===============================================================================
WHERE IN EUROPE IS CARMEN SAN DIEGO? (c)
BR0DERBUND The Highlanders
Team
-------------------------------------------------------------------------------
DEATH SWORD + STREET SPORTS BASKETBALL (c)
EPYX
GODFATHER and THE ACS
-------------------------------------------------------------------------------
Vais-je oser dire que comme d'habitude, c'était la meme chose
que le
précédent Epyx, c'est à dire Boulder Dash
Construction Kit.. cf depme8 ?
Epyx a en effet vendu son plombage à pas mal de boites, dont
Spectrum Holobyte
(si ce n'est Holobyte Spectrum, boite qui a déjà fait
faillite deux fois et
qui est en passe de le faire une troisième!). et dans le tas,
n'en déplaise à
Gustavson, à BR0DERBUND exceptionnelement pour Carmen san diego..
bref, pour cracker tous ces softs, vous avez deux solutions..
soit vous rendre dans deplombage mode d'emploi 8,
précédente oeuvre de notre
génie créatif et déplombeur personnel et collectif
(ça y est, il recommence!)
au fichier de boulder cst par exemple, et de world games (pour les
softs en
ProDOS) soit de vous rendre sur votre minitel pour me demander mes
cours de
déplombage 10 et 10.2, sur disk..pour tout comprendre dans tous
les sens,
et pour que vous puissiez vous adapter aux futurs epyx par exemple..
A noter - et ma foi, je réserve ça à tous ceux qui
m'appeleront - j'ai meme
pondu un jour de pluie, un déplombeur automatique de softs epyx,
un copieur
Epyx et un diagnostiqueur de la protection epyx (paramètres
modifiés) !..
Pour ces trois cracks, donc.. allez au moins vous deplombage 8..
-------------------------------------------------------------------------------
_____________________________________________________________________________
!
!
! Cracking of FORCE 7 (C)
DataSoft COPPERFIELD & LOOCKHEED, le 8/7/88
!
!_____________________________________________________________________________!
Voici donc le cracking d'un soft acheté par le
Black Chest (auquel toute
personne sensée devrait etre un membre...). Ce soft est fait par
une des
nombreuses sous-boites de Datasoft : Intellicreations, la meme boite,
ou plutot
le meme programmateur qui avait fait Dark Lord, jeu d'aventure avec de
superbes
musiques. Ce programmateur, Kyle Freeman, est à l'origine des
musiques de Dark
Lord et de celle de Force 7 (soit dit en passant : toutes ces musiques
sont
extraites et en catalogue, et seront réunies dans un recueil de
musiques que
nous vous concoctons), chaque fois que vous verrez son nom, à la
présentation
d'un soft, attendez-vous à avoir des musiques agréables
aux tympans usés par le
bruit sourd du <CTRL-G>.
Ceci-dit passons au déplombage proprement dit :
malgré un beau soft, un
plombage trés médiocre, et à plombage rapide,
déplombage rapide; à classer dans
les "déplombages minute".
Tout d'abord premier test : essai de copie au LFB
(Locksmith Fast Backup).
Résultat : le soft se laisse copier sans aucun problème,
jusqu'à la piste $1D.
(Aprés cette copie sans problèmes majeurs, on se dit
"facile !")
Que cela ne tienne, essayons de booter la copie.
Résultat : un message trés sympathique et trés
plaisant: "PLEASE USE ORIGINAL",
Ce qui est trés sympa pour nous, car le message n'est
codé d'aucune façon,
comme tout etre sensé l'aurait fait par un EOR, AND, ou le fait
de mettre le
message à l'envers, enfin...
(A ce moment on se dit "trés facile !") premier réflexe
chercher le message
qui nous amène au plantage, simple, une fois arrivé
à ce message fatidique,
faire un reset et booter un David Dos 1 (et si vous ne l'avez pas,
comme moi,
malgré son utilité, faites vous rapidement un mover en
page texte),
chercher le message, en remontant au dessus de ces mots doux, on trouve
la
routine qui affiche ce message, en $1ECC soit P$01/S$E/$CC sur le
disque,
rappelons nous-en on en aura besoin pour l'ultime phase...
Maintenant grace à ce meme David Dos, chercher $CC
1E en ram, ce qui
correspondrait soit à un JMP $1ECC (4C CC 1E) soit à un
JSR, un BEQ, etc...
Une fois trouvé on regarde ce qui se passe au
dessus et ainsi on arrive à
remonter jusqu'à la RWTS de Force 7, son point d'entrée
est en $1E00 mais c'est
en $1EF9 que ça ce passe, et on voit vers cette adresse de
nombreux $C08C
("Q6L", permet la lecture des nibbles...), suivis de CMP et BNE pas du
tout
cathodiques, ils correspondent à la vérif' des bonnes
entètes, autrement dit on
a mis le doigt sur la vérif'!!!
On est content, on a trouvé la vérif', alors
quoi? Et bien on NOPe tout ça
(assez bestialement, il faut dire), donc en P$01/S$F, mettre à
partir des
octets suivant inclus, quatre $EA : en $25, $2E, $37, $46, $4F, $58, et
$61.
Seulement voila si on laisse ça comme ça et que l'on
boote la disquette, on
s'apperçoit rapidement qu'une fois sur quatre nous avons encore
la joie et le
privilège de voir apparaitre sur l'écran la phrase
magique "PLEASE USE
ORIGINAL", pourquoi? Parcequ'il arrive, à cause de tous les NOP
que l'on a
mis que la RWTS, n'est plus aussi fiable qu'avant, elle n'arrive pas
à bien
lire sur la disquette, car elle n'a plus de points de repères.
L'ultime phase :
Ben alors on est fichu? Si on ne peux meme pas compter sur
la RWTS...?
Non car puisque la RWTS de Force 7 saute à la routinne qui
affiche le texte,
dans deux cas seulement : en présence d'une copie ou en cas de
mauvaise lecture
(quoique c'est le cas précédent qui entraine
celui-ci!!!), et bien nous
n'avons qu'à mettre au début de cette routinne qui nous
affiche le message
fatidique (pour l'instant!!!) un JMP début de routinne de
lecture.
Soit, pour concrétiser cette idée : mettre
en P$1,S$E,$CC (ce qui correspond
donc au début de l'afficheur du message) : 4C 00 1E (à la
place de 2C 81 C0)
Ainsi les deux cas ne sont plus envisageables : d'un nous
avons NOPé les
vérifs et de deux nous avons annulé le cas de mauvaise
lecture qui ne se
produisait environ une fois sur quatre puisque dans ce cas
précis on
recommence à lire.
Il faut avouer que faire un fichier bien explicité
sur le déplombage, prend
plus de temps que déplomber ce soft (10mn! contre plus de 45mn
pour le
fichier!!! ).
Pour tout vous dire sur ce soft et sur ce qui vous attend : une
version fixée
du jeu fue faite par Captain Crack & The Jokersoft, mais nous nous
rendimes
comptes que (comme souvent) que le jeu fixé perdait tout son
intéret car une
fois arrivé à la fin du jeu (ce qui est enfantin avec la
version fixée), il ne
se passe rien, pas de scrolling, pas de musiques, RIEN. C'est alors que
nous
décidames de mettre une animation pour récompenser comme
il se devait le
vainqueur du jeu, et pas n'importe quelle animation! Une animation en
DHGR
monocromme, ce qui est à ma conaissance une premiere, sachant
que cette
animation sera faite à la main (sans utilaire... )!!!
Alors à trés bientot pour une nouvelle version de
Force 7, appelée Force 7.2!
_ _ _ _ __ ______ _ _ __ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ __ _ _
_ _ _ _ _ _
F_O_R_C_E__7______(_K_)__B_Y__C_O_P_P_E_R_F_I_E_L_D__A_N_D__L_O_O_C_K_H_E_E_D
===============================================================================
KING QUEST
III
(k) Godfather , Steff , Loic.
===============================================================================
Pour déplomber ce soft, il suffit de faire une copie locksmith
de toutes les
faces, puis de modifier l'octet suivant :
Piste $02 08 12 , mettre :
2C au lieu de 20.
Simple?.. peut etre..
Avant de vous laisser après un aussi bref commentaire, je
voudrais vous
faire part du cas suivant.. non pas pour me vanter de quoi que ce soit
que
vous pourriez imaginer ( certains ont toujours tellement d'imagination
en
parlant de moi.. ce sont les faits. ) mais pour vous donner mon point de
vue sur un probleme à mon avis grave, et pour éviter
qu'un tel pb se
renouvelle jamais.
Je vous retrace tout. et que l'on ne vienne pas me dire après
que ce baratin
est en trop sur ce disk.. que ceux qui n'aiment pas s'en aillent.. moi
je
continue.
Début juin 1988 environ, un certain _____ m'annonce par minitel
qu'il a
recu l'original de king quest 3. et qu'il va essayer de le
déplomber..
Très heureux de cet appel, je lui demande de bien vouloir m'en
adresser une
copie dés qu'il l'aura déplombé.. et lui affirme
qu'il pourra avoir mon aide
technique s'il la désire pour ce déplombage. Nous avions
déjà fait de nombreux
échanges et je ne faisait que lui en demander un de plus, je
n'exigeait rien.
Il me répond presque aussitot qu'il ne veut pas me le filer..
qu'il veut garder
l'original pour lui, sous peine que Sierra On Line le retrouve
affirme-t-il..
Ca m'a fait rire qu'on puisse penser etre traqué à ce
point.. et je lui ai
affirmé qu'il ne risquait rien et que je n'avais jamais
gardé un original
plus de deux jours après l'avoir déplombé.. sauf
exception explicable.
Enfin, il me poste une copie de king quest 3..
déplombée.. mais uniquemet
de la première disquette en me demandant :
1. De bien vouloir
vérifier son déplombage ( ce qui est impossible
sans une
copie de l'original . Comment savoir s'il a bien converti
le disk
s'il était en format différent 3.3 , comment savoir ce
qu'il
a
modifié s'il ne me le dit pas.. etc....)
2. De bien vouloir coder sa
signature sans rajouter la mienne.
3. De bien vouloir lui
renvoyer le tout.
et, 4. De bien vouloir attendre après lui,
deux ou trois semaines avant
qu'il
veuille bien me poster toutes les faces du jeu..
Vous imaginez le truc..?
Je lui renvoie un courrier en lui expliquant que j'ai besoin de
l'original
pour faire ce qu'il veut, ou dumoins d'une copie intacte.. que je ne la
signerais jamais de mon nom comme il le désire... etc.. et que
je voudrais
une copie de toutes les faces en lui démontrant cette fois par
A+B qu'il
ne cours aucun risque du coté des éditeurs, etc..
Et là, si ma mémoire est bonne, plus de réponse..
Par contre réponse du coté de Loockheed.. "Je te file une
copie de KQ3 si
tu me files des news..". Ce n'est plus un échange mais une
tyrannie!..
Et loockheed ne l'a pas eu.. et ___ ne l'a pas laché !
Voici pour conclure, et c'est là que je tenais à arriver,
la lettre
que je lui ai posté au moment où j'ai recu king quest 3
d'une autre source
et que je l'ai déplombé.
Croyez bien que je n'expose pas ainsi ma petite vie dans aucun but sinon
celui de faire évoluer certaines mentalité qui ne collent
pas très bien
avec ma conception de ce qu'est l'esprit Apple.
Si je ne le fais pas, personne ne le fera.. et ce serait dommage.
Voici donc..
Salut ___ ,
Trouve ci-joint une copie de la face A de King Quest 3.. bien
déplombée.
et en face B, force 7.
Ta version de King Quest était en effet mal
déplombée comme je te l'avais
laissé supposer. Pour déplomber un logiciel et etre sur
qu'il est proprement
déplombé, il faut absolument tout décortiquer de
sa protection, et tout en
comprendre donc. Sans cela, sans ces connaissances indispensables sur
chacune
des protections présentes sur chacun des softs que l'on
déplombe, on ne peut
etre sur de rien.
Pour déplomber ce soft, on a du te dire que la protection
était en $FF00
(vérif) et tu as trouvé deux fois la séquence 20
00 FF correspondant aux
instructions JSR $FF00 soit JSR Vérif_Original. Seulement, une
seule devait
etre enlevée. L'autre correspondait non pas à une
instruction jsr, mais
à des données héxadécimales 20 00 FF. (
image du jeu ou données quelconques
du programme).
En modifiant la première séquence, en effet tu
déplombais ce soft..
et le plantage disparaissait. mais en modifiant aussi la seconde, tu
entrainais
un bug dans des données indispensables au bon déroulement
de tout le soft..
et ta version devrait etre déformée quelque part.. meme
si ca ne se voit pas
après x heures de jeu.. ces données étaient
là, elles servent donc à quelque
chose.. et les modifier entraine une conséquence impitoyable sur
le bon
déroulement du jeu. Ta version est donc buguée.. comme si
c'était une mauvaise
copie.
Je donne des cours de déplombage pour vous permettre de ne pas
déplomber des
softs au feeling mais en comprenant tout de toutes les protections..
Je ne te reproche rien, crois le bien.. je ne suis pas un emmerdeur ou
un
vantard. juste que j'ai pas trouvé très cool de ta part
de refuser de poster
à tout le monde, et entre autre à moi meme, ton original
(ou une copie)
pour vérifier simplement ton crack.. et pour l'avoir sans
l'attendre plus
longtemps puisque cette fois-ci, tu as eu un soft avant nous.
Tu vois je te l'envoies dés que je l'ai.. et non bugué..
et Force 7 également.. dés que je l'ai..
C'est ca etre un cracker.. alors essaye d'etre un peu plus cool.
et j'oserais dire, un peu plus intelligent dans tes rapports humains.
Je ne veux pas etre méchant, ce n'est pas mon style.. je suis un
pacifiste,
mais essaye de revoir ton jugement sur ce probleme d'originaux à
la prochaine
occasion. ok?
J'espère - sans penser interet pour ma part en premier , crois
le bien - que
tu continueras à prendre des cours de dep. car ca te permettra
je pense
de vraiment cracker les softs proprement et seul.. et de les signer
seul.
Le probleme de la signature d'un crack n'en est pas un pour moi.
Tu vois parfois passer des softs dans ton drive signé par un
autre..
alors que j'en suis le cracker. On m'a filé un original en me
demandant de
bien vouloir le signer du pseudo du mec qui me l'a filé, tout
simplement.
et ca ne me dérange pas. je ne me vexe pas, ni ne me froisse
avec personne
dans ce cas.. je reste ok.
J'espère que tu comprendras pourquoi je t'écris en ce
terme.. mais aussi
mon état d'esprit.. mon seul but : que tout le monde partage les
softs
qu'il peut recevoir dés qu'il les recoit pour faire vivre la
machine le
plus longtemps possible.. et peut importe qui les déplombe, et
qui met
son nom dessus.. c'est primaire de penser comme ca, et de vivre pour ca.
Sincèrement, Godfather
Merci de m'avoir suivi jusqu'ici. et désolé pour ceux que
ça a géné.. (sorry!)
===============================================================================
+-----------------------------------------------------------------------------+
! PIRATES (C)
MICROPROSE BY DENY
& THE GOG'S FROM THE HIGHLANDERS !
+-----------------------------------------------------------------------------+
Bonjour à tous et à toutes....ici, c'est votre amour de
toujours: DENY....
Sans plus attendre, voici le tout dernier crack du tout dernier tout bo
soft de
chez nos amis de Microprose: j'ai nommé: PIRATES !!!!!
Voilà un original qu'il est bo !!! C'est un très chouette
jeu, en Dhgr,
qui parle, non pas du paysage informatique français, mais des
combats entre les
Corsaires et la Royale aux XVIe et XVIIe siècles...Super, non
?????
Ayant dit ce que j'ai à dire, voyons à présent ce
qu'il en est du plombage :
Vous connaissez la dernière nouvelle ?? Et bien Microprose a
changé de
protection ! Je sais pas si vous vous souvenez des vieux plombages
Dos 3.3, mais c'était coton pour les déplomber
parfaitement !!!!
( à ce sujet, reportez-vous à l'article de Super-Hacker
dans Dep7...).
Et bien, avec l'arrivée du Prodos dans leurs softs ( Pirates est
sous Prodos ),
Microprose s'est dit: eh ben, on va p't-etre leur changer la
protection, à nos
gaillards, comme ça, ils l'auront dans l'os, les
déplombeux !!! Ventrebleu !!!
Et bien, en fait, on l'a vraiment dans l'os, car cette protection est
à peu
près aussi folle que l'ancienne !!!!!
- Et alors, moussaillon, elle nous cause de quoi, cette protection ???
- C'est bien simple, cap'tain...
Prenez le Nibble Editor du Locksmith, et de là, lisez une
piste ( ctrl-R,
pour ceux qui ne savent pas...) de Pirates.Puis, tapez D....vous
verrez alors
s'afficher le numéro de la piste et les numéros
des secteurs qui se trouvent
sur ladite piste....Regardez attentivement les numéros de
ces secteurs :
Vous vous apercevrez qu'ils sont assez foireux...ainsi, on peut
remarquer un
secteur $13 alors que dans un Dos normal, les secteurs vont de
$0 à $F ....
On peut remarquer aussi que les checksums des champs d'adresses
sont erronés!
Le Prodos de PIRATES est patché afin de pouvoir, sous des
conditions de
timing assez folles, lire les secteurs avec des numéros
bizarres, et cela
sans faire attention aux checksums...Je n'en dirai pas plus car
le
principe en est assez balaise......Ce qu'il faut savoir, c'est
que ces
recherches de nibbles basées sur les timings rendent
l'original incopiable...
____________________________
* DEPLOMBAGE DE PIRATES (c) 1987 MICROPROSE *
Il faut, pour déplomber ce soft, démuffiniser
l'original....C'est pour cela
que j'ai conçu un petit module RWTS pour ADVANCED DEMUFFIN
1.1....
Il se trouve sur une des faces de ce DEPME, sous le nom: ' MODULE
PIRATES '.
Voici comment l'utiliser: chargez Advanced demuffin 1.1. De là,
faites:
' load new rwts module ' puis tapez B6...puis ' MODULE PIRATES ',
après avoir
inséré DEPME, of course...Une fois ceci fait,
convertissez les deux faces
de PIRATES grace aux commandes habituelles......
Prenez ensuite un éditeur de secteurs, et modifiez le
numéro de série de
l'original qui se trouve en T$0D S$04 à partir de l'octet
$36....Vous pouvez,
par exemple, le remplacer par une suite de 0 ( code hexa:30 )......
Puis, il faut avec ce meme éditeur de secteur modifier :
T$04 S$04 octet $63:A9 00 48 68 60 1B (was: A9 D1 85 18 A9
BE)...
J'explique....The Gog's et moi-meme, on s'est apercu que si on
modifiait ne
serait-ce qu'un infime octet du programme, celui-ci marquait ' access
error '.
En effet, le programme contient une sous-routine qui teste le contenu
de la
mémoire...cette meme sous-routine est vérifiée par
une autre routine pour voir
si elle n'a pas été killée...Bref, c'est l'enfer
!!!!
Par les modifications précédentes, on kille la routine
qui teste la mémoire
, et on met un octet bidon ( le 1B ) judicieusement choisi pour obtenir
un
checksum identique à la routine originale ( si vous ne comprenez
rien, c'est
pas grave....c'est fait pour !!!!), comme ça, la routine qui
vérifie si la
routine de test de la mémoire n'a pas été
killée ne voit rien....
Mais tout cela n'est rien, en fait...le gros morceau, ce qui fait que
cette protection est presque aussi dure que les anciennes de Microprose
( en Basic compilé ), c'est la manière dont la demande de
code est traitée...
Je pense que vous savez tous ( Tous ? (private joke)) que les
Microproses
demandent des codes ( qui se trouvent dans la doc ), pour faire
fonctionner
correctement le programme ( exemple: F15 strike Eagle )....Pirates
n'échappe
pas à la règle, et avouez qu'il est génant de se
voir demander quand est arrivé
le Silver Train à Panamana ( en 1660, certes, mais quel mois
????), alors qu'on
a pas la doc et que c'est le seul endroit où on pourrait trouver
la réponse...
( quoique j'ai pas essayé le Quid...)....Non ????
C'est pour ça que, dans un élan de
générosité ( et surtout parce que The
Gog's a réussit à me trouver la doc...), je vous ai
tapé les codes de ce
superbe jeu....codes que vous retrouvez ci-joints à ce
blabla...Merci qui ?
( Au fait...j'offre un gros gateau à celui qui arrivera à
me faire sauter
la vérif du code...ce que j'ai jugé ( mais ce jugement
n'engage que moi...)
tout à fait impossible !!!)
____________________________
* CODES DU JEU ' PIRATES ' *
Le mode d'emploi est très très simple....Vous cherchez
suivant l'année la
date d'arrivée dans telle ou telle ville du train ou de la
flotte ( suivant
ce qui est demandé, of course....).
Le seul truc à savoir, c'est que ' déb. ' correspond au
début du mois
( early in the month ) et que ' fin. ' correspond à...la fin du
mois bien
sur ( late in the month )......Bon jeu !
LA FLOTTE AU TRESOR - THE TREASURE FLEET
_______________________________________________________________________________
! VILLES !JAN
!FEV !MAR !AVR !MAI !JUI !JUL !AOU !SEP !OCT !NOV !DEC !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1560
! ! !
! ! !
! ! !
! ! ! !
! Cumana
! ! !
! ! !
! ! !
!déb.! ! !
! Puerto Cabello ! !
! ! !
! ! !
! !fin.! ! !
! Maracaibo !
! ! !
! ! !
! ! !
!déb.! !
! Rio de la Hacha ! !
! ! !
! ! !
! ! !fin.! !
! Nombre de Dios ! !
! ! !
! ! !
! ! !
!déb.!
! Cartagena !
! ! !
! ! !
! ! !
! !fin.!
! Campeche
!fin.! ! !
! ! !
! ! !
! ! !
! Vera Cruz !
!déb.! ! !
! ! !
! ! !
! !
! La Havane !
! !déb.! !
! ! !
! ! !
! !
! Santiago
! ! !fin.!
! ! !
! ! !
! ! !
! Canal de Floride! !
! !fin.! !
! ! !
! ! ! !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1600
! ! !
! ! !
! ! !
! ! ! !
! Cumana
! ! !
! ! !
! ! !
!déb.! ! !
! Caracas
! ! !
! ! !
! ! !
!fin.! ! !
! Maracaibo !
! ! !
! ! !
! ! !
!déb.! !
! Rio de la Hacha ! !
! ! !
! ! !
! ! !fin.! !
! Santa Marta !
! ! !
! ! !
! ! !
! !déb.!
! Puerto Bello !
! ! !
! ! !
! ! !
! !fin.!
! Cartagena
!déb.! ! !
! ! !
! ! !
! ! !
! Campeche
! !déb.! !
! ! !
! ! !
! ! !
! Vera Cruz !
!fin.! ! !
! ! !
! ! !
! !
! La Havane !
! !fin.! !
! ! !
! ! !
! !
! Canal de Floride! !
! !fin.! !
! ! !
! ! ! !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1620
! ! !
! ! !
! ! !
! ! ! !
! Caracas
! ! !
! ! !
! ! !déb.!
! ! !
! Maracaibo !
! ! !
! ! !
! !fin.! !
! !
! Rio de la Hacha ! !
! ! !
! ! !
! !déb.! !
!
! Santa Marta !
! ! !
! ! !
! ! !fin.!
! !
! Puerto Bello !
! ! !
! ! !
! ! !
!déb.! !
! Cartagena !
! ! !
! ! !
! ! !
! !déb.!
! Campeche
!déb.! ! !
! ! !
! ! !
! ! !
! Vera Cruz
!fin.! ! !
! ! !
! ! !
! ! !
! La Havane !
!fin.! ! !
! ! !
! ! !
! !
! Canal de Floride! !
!fin.! ! !
! ! !
! ! ! !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1640
! ! !
! ! !
! ! !
! ! ! !
! Caracas
! ! !
! ! !
! ! !
!déb.! ! !
! Maracaibo !
! ! !
! ! !
! ! !fin.!
! !
! Rio de la Hacha ! !
! ! !
! ! !
! ! !déb.!
!
! Santa Marta !
! ! !
! ! !
! ! !
!fin.! !
! Puerto Bello !
! ! !
! ! !
! ! !
! !déb.!
! Cartagena
!déb.! ! !
! ! !
! ! !
! ! !
! Campeche
! !déb.! !
! ! !
! ! !
! ! !
! Vera Cruz !
!fin.! ! !
! ! !
! ! !
! !
! La Havane !
! !fin.! !
! ! !
! ! !
! !
! Canal de Floride! !
! !fin.! !
! ! !
! ! ! !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1660
! ! !
! ! !
! ! !
! ! ! !
! Caracas
! ! !
! ! !
! ! !déb.!
! ! !
! Maracaibo !
! ! !
! ! !
! !fin.! !
! !
! Rio de la Hacha ! !
! ! !
! ! !
! !déb.! !
!
! Santa Marta !
! ! !
! ! !
! ! !fin.!
! !
! Puerto Bello !
! ! !
! ! !
! ! !
!déb.! !
! Cartagena !
! ! !
! ! !
! ! !
! !déb.!
! Campeche
!déb.! ! !
! ! !
! ! !
! ! !
! Vera Cruz
!fin.! ! !
! ! !
! ! !
! ! !
! La Havane !
!fin.! ! !
! ! !
! ! !
! !
! Canal de Floride! !
!fin.! ! !
! ! !
! ! ! !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1680
! ! !
! ! !
! ! !
! ! ! !
! Caracas
! ! !
! ! !
! ! !
!déb.! ! !
! Rio de la Hacha ! !
! ! !
! ! !
! !fin.! ! !
! Santa Marta !
! ! !
! ! !
! ! !
!déb.! !
! Puerto Bello !
! ! !
! ! !
! ! !
!fin.! !
! Cartagena !
! ! !
! ! !
! ! !
! !fin.!
! Campeche
!fin.! ! !
! ! !
! ! !
! ! !
! Vera Cruz !
!déb.! ! !
! ! !
! ! !
! !
! La Havane !
! !déb.! !
! ! !
! ! !
! !
! Canal de Floride! !
! !fin.! !
! ! !
! ! ! !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
LE TRAIN ARGENTE - THE SILVER TRAIN
_______________________________________________________________________________
! VILLES !JAN
!FEV !MAR !AVR !MAI !JUI !JUL !AOU !SEP !OCT !NOV !DEC !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1560
! ! !
! ! !
! ! !
! ! ! !
! Cumana
! ! !
!déb.! ! !
! ! !
! ! !
! Borburata !
! ! !fin.!
! ! !
! ! !
! !
! Puerto Cabello ! !
! ! !déb.!
! ! !
! ! ! !
!
Coro
! ! !
! !fin.! !
! ! !
! ! !
! Gibraltar !
! ! !
! !déb.! !
! ! !
! !
! Maracaibo !
! ! !
! !fin.! !
! ! !
! !
! Rio de la Hacha ! !
! ! !
! !déb.! !
! ! ! !
! Santa Marta !
! ! !
! ! !fin.!
! ! !
! !
! Cartagena !
! ! !
! ! !
!déb.! ! !
! !
! Panama
! ! !
! ! !
! !fin.! !
! ! !
! Nombre des Dios ! !
! ! !
! ! !
! !déb.! !
!
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1600
! ! !
! ! !
! ! !
! ! ! !
! St Thome
! ! !
!déb.! ! !
! ! !
! ! !
! Cumana
! ! !
!fin.! ! !
! ! !
! ! !
! Caracas
! ! !
! !déb.! !
! ! !
! ! !
! Puerto Cabello ! !
! ! !fin.!
! ! !
! ! ! !
!
Coro
! ! !
! ! !déb.!
! ! !
! ! !
! Gibraltar !
! ! !
! !fin.! !
! ! !
! !
! Maracaibo !
! ! !
! ! !déb.!
! ! !
! !
! Rio de la Hacha ! !
! ! !
! !fin.! !
! ! ! !
! Santa Marta !
! ! !
! ! !
!déb.! ! !
! !
! Cartagena !
! ! !
! ! !
!fin.! ! !
! !
! Panama
! ! !
! ! !
! ! !déb.!
! ! !
! Puerto Bello !
! ! !
! ! !
! ! !fin.!
! !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1620
! ! !
! ! !
! ! !
! ! ! !
! St Thome
! ! !déb.!
! ! !
! ! !
! ! !
! Cumana
! ! !fin.!
! ! !
! ! !
! ! !
! Caracas
! ! !
!déb.! ! !
! ! !
! ! !
! Puerto Cabello ! !
! !fin.! !
! ! !
! ! ! !
! Gibraltar !
! ! !
!déb.! ! !
! ! !
! !
! Maracaibo !
! ! !
!fin.! ! !
! ! !
! !
! Rio de la Hacha ! !
! ! !
!déb.! ! !
! ! ! !
! Santa Marta !
! ! !
! !fin.! !
! ! !
! !
! Cartagena !
! ! !
! ! !déb.!
! ! !
! !
! Panama
! ! !
! ! !
!fin.! ! !
! ! !
! Puerto Bello !
! ! !
! ! !
! !déb.! !
! !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1640
! ! !
! ! !
! ! !
! ! ! !
! Cumana
! ! !
!déb.! ! !
! ! !
! ! !
! Caracas
! ! !
!fin.! ! !
! ! !
! ! !
! Gibraltar !
! ! !
!déb.! ! !
! ! !
! !
! Maracaibo !
! ! !
!fin.! ! !
! ! !
! !
! Rio de la Hacha ! !
! ! !
!déb.! ! !
! ! ! !
! Santa Marta !
! ! !
! ! !déb.!
! ! !
! !
! Cartagena !
! ! !
! ! !fin.!
! ! !
! !
! Panama
! ! !
! ! !
! !fin.! !
! ! !
! Puerto Bello !
! ! !
! ! !
! ! !déb.!
! !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1660
! ! !
! ! !
! ! !
! ! ! !
! Cumana
! ! !déb.!
! ! !
! ! !
! ! !
! Caracas
! ! !fin.!
! ! !
! ! !
! ! !
! Gibraltar !
! ! !déb.!
! ! !
! ! !
! !
! Maracaibo !
! ! !fin.!
! ! !
! ! !
! !
! Rio de la Hacha ! !
! ! !déb.!
! ! !
! ! ! !
! Santa Marta !
! ! !
! !déb.! !
! ! !
! !
! Cartagena !
! ! !
! !fin.! !
! ! !
! !
! Panama
! ! !
! ! !
!fin.! ! !
! ! !
! Puerto Bello !
! ! !
! ! !
! !déb.! !
! !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
!
1680
! ! !
! ! !
! ! !
! ! ! !
! Cumana
! ! !
!déb.! ! !
! ! !
! ! !
! Caracas
! ! !
!fin.! ! !
! ! !
! ! !
! Maracaibo !
! ! !
!fin.! ! !
! ! !
! !
! Rio de la Hacha ! !
! ! !
!fin.! ! !
! ! ! !
! Santa Marta !
! ! !
! ! !déb.!
! ! !
! !
! Cartagena !
! ! !
! ! !fin.!
! ! !
! !
! Panama
! ! !
! ! !
! !fin.! !
! ! !
!_________________!____!____!____!____!____!____!____!____!____!____!____!____!
____________________________
Ainsi parlait Barbe-Noire :' Et yo, et yo, et une bouteille de Rhum !!!
'....
Ainsi parlait Deny :' Et yo, et yo, et une bouteille de Roms !!! '....
( Je sais, c'est nul, mais que voulez-vous, il faut bien vivre...)
--------------------------- 06/03/1988 by Deny & The Gog's from
Highlanders ---
-------------------------------------------------------------------------------
Petite réflexion sur la manière de cacher un
JMP. par Oliver Twist...
-------------------------------------------------------------------------------
Paris le 08/04/88
-----------------
Messieurs, mesdames, mon père, ma
mère, mes frères, ma prof de math, mon
épicier du coin de la rue, ma chatte (et on ne s'excite pas
comme ça !!!),
mon Arlette Laguiller (tiens, je vais voter pour elle), mon Jean-Marie
le Pen
(et puis non, pour Jean-Marie), mon Georges Marchais (et pourquoi pas
pour ce
cher Georges ???), mon Raymond Barre (et merde j'ai pas encore 18 ans,
et ben
tant pis, on attendra 1995...), ma nana de l'affiche du 36 15 COVER qui
est
dans ma piaule et qui mesure 1m20 de large et 2m de haut (ça me
fait une nana à
poil grandeur nature...), ma catherine (Grosses Bises...(Celle
là c'en est une
qu'elle est bonne !!!)), mon Godfather, sa Germaine, mon Jacques
Dutronc et son
joujou extra qui fait crac boum hue, mon Steve Wosniak, mon Serge
Gainsbourg,
sa charlotte, mes amis et mes ennemis, je vous dis salut, bonjour,
bonsoir,
bonne nuit et bonne bourre...
Et now, I am going to raconter à you a jouli
story...
Alors voila, c'est l'histoire d'un mec, il est beau,
il est jeune, il est
riche, il doit donner des coups de pieds dans les femmes qui se jettent
à ses
pieds, et meme que il est doté d'une intelligence surhumaine,
digne de celle de
Superman lors du combat contre l'huitre géante de l'espace qui,
surgissait de
la planette JAIDUPOILOPATES...
Vous vous rappelez tous la fin de cette histoire puisqu'il la
détruisit grace à
ses supers rayons protonisants à charges multiples
d'électrons dénucléisants,
ce qui n'est pas con !...
Je sens chez certains d'entre vous le désir
de savoir qui est cet etre si
extraordinaire; et bien, en toute modestie, ça n'est autre que
le rédacteur de
ce fichier c'est à dire moi meme personnellement tout seul:
Oliver Twist.
Il y a quelques mois de cela, voyant que mon Q.I.
était très nettement au
dessus de la moyenne des cerveaux de la planette, je me suis dit qu'il
falait
en user intelligemment... J'avais alors plusieurs solutions:
- Faire cuire un oeuf à la coque.
- Me lancer dans le LOGO.
- Lire l'Humanité ou National Hebdo.
- M'acheter un ZX 81 en kit.
- Ou pire, un ST.
- Sauter par la fenetre.
- Prendre des cours d'éco ou d'espagnol.
- Lire OUI-OUI en vacances.
- M'acheter LUI avec Danielle Gilbert.
- M'acheter PLAYBOY avec pierrette Le Pen.
- M'inscrire au club Apple.
- Devenir con.
- Ne plus jamais regarder les nuls de 19h20 a 20h30 tous les
soirs sauf le
samedi et le dimanche sur C+ en clair et ss
décodeur avec Alain Chabat,
Bruno Carette et Chantal Lauby.
- Manger un couscous ou une paella Garbit qu'est bon comme
là-bas dis.
- Réaliser un super vachement genial super extra
très fort défi.
Mais helas...
- pour l'oeuf, meme ma super intelligence n'est pas venue
à bout de ce
problemme...(faut pas déconner, merde, c'est
pas si facile.)
- pour le LOGO, j'ai ce qu'il me faut au lycée !!!
(coucou Jean-Philippe).
- pour l'Huma et pour National Hebdo, j'ose pas.
- pour le ZX 81, je ne sait pas si je pourais déplomber
les K7s.
- pour le ST, Godfather menace de m'égorger et pire
encore.
- pour la fenetre, je ne sais pas quel étage choisir.
- pour les cours d'eco et d'espagnol, c'est sans commentaire.
- pour OUI-OUI, je n'aime pas les oeuvres trop
compliquées.
- pour LUI, je trouve ça scandaleux qu'une star comme
Danielle Gilbert,
connue aux 4 coins du monde, ose poser dans une
telle revue, elle serait
aller chez HARA-KIRI, elle aurait gagné 10
fois plus !!!
- de meme pour cette chère Pierrette...
- ne nous attardons pas sur le club Apple s.v.p
- quand à devenir con, alors là, c'est pas
possible,on est pas la SNCF merde.
- pour les nuls, impossible d'en rater une minute: danger !!!.
- et mon épicier n'a meme plus de couscous Garbit. Non
mais ou vat-on ???
- donc, plus qu'une solution: Le Défi...
Ce beau defi est déjà réalisé:
il est beau mais un peu trop simple au niveau
du plombage. Par contre, il est bourré de petits piéges
pour bien faire chier
tout le monde !!! Pour l'instant ce defi n'a été
donné à personne et
normalement il ne le sera jamais, mais si certains d'entre vous le
veullent
pour découvrir tous les gros cacas que j'ai mis dedans, ils
peuvent toujours me
le demander au 36 14, 135060318*RTEL (n'oubliez surtout pas ce nouveau
code.)
bal Oliver Twist (je vous assure qu'il y a des trucs sympas
dedans...(au fait
j'ai pas de minitel alors y faut que j'aille squater chez un pote ou au
boulot
de mon papa à moi pour lire les messages alors soyez très
patients pour la
réponse...))
Bref, j'avais besoin pour le réaliser, de bien
planquer mes JMP, et je
n'avais pas beaucoup d'idées... Laissons tomber le bon coup bien
drole des
PHA et des RTS ou RTI, ça ne fait plus rire personne depuis bien
longtemps.
C'est alors qu'une nuit, vers les 1h du matin, me vint une
idée super géante
et pas dégueu. Immaginez avec votre immagination qu'à
l'interieur d'un
programme apparaisse ceci:
LDA #$80
STA $09
RTS
C'est très banal, ça va foutre #$80 en $09,
et puis ça fait un beau RTS, je
ne vois vraiment rien de géant là dedans !!!
Et bien si, c'est géant car si vous faites marcher
ce programme avec une
petite bidouille en mémoire avant, vous vous retrouvez à
l'adresse que vous
voulez !!! Et je precise: SANS TOUCHER A LA PILE.
========================================
Ca vous fait baver, je le sens. (d'ailleur ça
à fait baver GODFATHER...)
En fait, c'est vraiment tout béte mais c'est tellement
béte que le déplombeur,
meme s'il vient de l'espace intergalactique, est capable de passer
à coté et de
finir sa vie en testant la pile à la con...
Y fallait que je mette une connerie ici parce que sinon la
phrase d'aprés
arrivait un peu vite, par manque de transition dirait cette chose
ignoble qui
me sert de prof de français. (Ca fait un bout de temps que
j'avais envie de le
crier et j'en ai enfin l'occasion: MA PROF DE FRANCAIS N'EST QU'UNE
CHIENNE!!!)
---------------------------------------------
Un soir, aprés avoir déliré comme un
fou avec ces chèrs ACACZEN,TECRODEZEN,
ENFONCEMOIBIENFORT et VAZIQUEJTERTOURNE (qui voulaient avoir leurs noms
dans
DEP.ME, et je les comprends trés bien...), l'envie me prit
d'aller faire un
petit tour dans mes chiottes puis en $FDED... Les chiottes je comprends
mais
pourquoi en $FDED, alors là, je n'en sais absolument rien !!!
Et bien sachez mes frères,qu'en $FDED, il y a ceci:
JMP ($0036)
-Et en $0036, m'sieu, y'a quoi ???
-Trés bonne question mon brave et voici la
réponse:
0036- F0 FD (si vous n'avez pas ça, essayez sans DOS car
certains modifient ce
pointeur (en fait je dis 'certains' mais c'est peut etre tous, en tout
cas, ça
me fait chier de regarder alors si ça vous interresse, regarder
vous meme!!!))
Ce qui signifie que lorsqu'on fait un JSR $FDED, ce cher Apple
va faire un
tour en $FDF0.
Peut etre que certains d'entre vous commencent à voir ou
je veux en venir.
Je m'explique pour les cerf-volants (mon humour est
réélement irrresistible).
Que ce passe-t-il lorsque l'on fait marcher ce programme:
LDA #$80
STA $09
RTS
On va mettre #$80 en $09 puis on revient au basic ou
à l'assembleur donc on
affiche ']' ou '*' donc on fait un JSR $FDED donc y'en a de plus en
plus qui
se douttent de ce que je veux faire donc on est tous des betes. (enfin
surtout
moi.)
Il suffit donc de changer les octets qui sont en
$36-$37 pour detourner
le JMP vers un jouli programme que l'on planque bien et qui est
celui-ci:
ORG
$8000 ;PLANQUEZ LE MIEUX QUAND
MEME, DANS LE DOS P.EX
PHA
;ON EMPILE A
LDA
$09 ;C'EST COMME ON
VEUT POUR L'ADRESSE...
CMP
#$80 ;SI ON VEUT TOUJOURS
POUR LA VALEUR...
BEQ
AGAGA ;SI ON TROUVE LA VALEUR, ON
VA FAIRE UN TOUR CHEZ AGAGA
PLA
;ON DEPILE POUR L'AFFICHER
BIT
$067B ;CECI EST CE QU'ON TROUVE EN
$FDF0
JMP
$FBB4 ;CECI EST LA SUITE DE CE
QU'ON TROUVE EN $FDF0
AGAGA JMP $2000 ;ET LA
VOUS METTEZ L'ADRESSE QUE VOUS VOULEZ...
Voila, alors vous changez les deux octets en $36 (ici vous
faites: 36:00 80)
et si, en mode direct, vous faites 9:80, vous vous retrouvez en $2000,
bandant,
non ???
De plus cette methode de dissimulation de JMP
posède un avantage que l'on
pourrait qualifier de super extra bandant et qui est le suivant:
Si vous utilisez cette technique, c'est dans l'intention de
rendre le boot
tracing difficile et qui dit boute trassingue dit 4C 59 FF c'est
à dire
JMP $FF59: le deplombeur va mettre des 4C FF 59 un peu partout dans
votre
programme pour l'interrompre.
Ahhh... mais j'y pense, lorsque l'on fait un JMP $FF59,
certaines adresses
en page zero sont détruites. Et oui, pas de chance, pour le
pirate, lors d'un
saut en $FF59, les adresses $36 et $37 sont detruites et remises
à neuf ce qui
signifie que le déplombeux a interet à avoir vu la ruse
que vous avez
habilement créé pour mettre vos deux valeurs en $36 et
$37 because que sinon,
les chances sont grandes pour qu'il ouvre sa fenetre puis...
Vous avez aussi tout interet à choisir pour
l'adresse de test (ici $09) une
adresse qui soit detruite lors d'un JMP $FF59 (p.ex les limites de
l'ecran
comme: $20, $21, $22, $23...)
ATTENTION n°1 !!! en $2000 il faut remettre une autre
valeur en $09 pour
éviter les emmerdes car si le moniteur rencontre un BRK ou un
RTS, ou vat-il se
prommener ??? en $FDED bien sur ce qui entrainne un saut en $8000 puis
en
$2000... Donc, juste après avoir effectuer votre saut, mettez
discretement une
autre valeur en $09
ATTENTION n°2 !!! si vous modifiez le pointeur avant
d'avoir instaler le
petit programme précedent (que je vous autorise à
modifier à votre guise), vous
risquez d'avoir de grosse surprises. (ce problème n'existe qu'en
mode direct
puisqu'il y a retour a l'assembleur après la modif...(cette
phrase est
absolument incompréhensible mais c'est qu'il est tard et
qu'à partir d'une
certaine heure, il faut plus m'en demander trop...))
ATTENTION n°3 !!! il faut absolument que le RTS qui
suit le fait de mettre
votre valeur dans votre adresse ne soit pas le RTS d'un sous programme
(appelé
par un JSR) mais il faut absolument qu'il y ait un saut en $FDED.
Voila, je vais laisser relire ce fichier extra-bandant aux
ceuces qui n'ont
pas tout saisit, quand aux dieux de la bidouille, à vos
claviers, vous allez
bien me chier un truc encore mieux, et moi, j'ai une petite idée
qui vient de
s'allumer dans ma tete alors à bientot dans DEP.ME 10...
Tous avec moi pour le retour de Danielle Gilbert a la
télé...
(En porte-jarretelles bien sur...)
-------------------------------------------------------------------------------
Réveillez vous au fond, c'est fini... Oliver Twist from
the new apple mafia...
-------------------------------------------------------------------------------
===============================================================================
=
Encore une protection, (un peu plus
nulle...)
=
=
par Oliver Twist. (toujours aussi beau...si,si
!!!) =
===============================================================================
Urgh à tous...
----------------
Bon, on va tout de suite
annoncer la protection débile, mais qui peut
etre sadique si l'on s'y prend bien et c'est pour cela que vous n'aurez
qu'une
idée émise par votre serviteur et non la façon de
réaliser la derniére.(trop
méchante pour ce que l'on veut proteger.)
Commençons par la
protection débile: (Ah, j'ai oublié de vous dire que
cette methode ne marche que sous DOS 3.3 et que c'est bien fait pour
les fous
duproDOS.) Je voudrais aussi faire un gros bisou sur la joue qui pique
de
'The Satanic', l'homme viril qui m'a mis sur la voie de cette merde de
protection à la con... Allez, on arrete les remerciemments et
les familiarités
pour arreter de vous faire baver. (encore en train de baver ??? mais
vous ne
faites que ça ???)
Immaginons que nous ne
voulons pas qu'un vilain méchant pas beau vienne
voir comment vous avez fait votre programme basic, (que les fous
d'assembleur
comme moi ne partent pas (surtout pas moi car vous serriez dans la
merde pour
lire ce fichier pas trés bandant...) car y'en a un petit peu et
que ça peut
toujours vous servir un jour ou l'autre.) dans ce cas, vous faites les
pokes
classiques:
POKE 2049,0 ET
POKE 2050,0
Oua l'autre, c'est nul ton
truc, d'abord ça marche pas si ton programme
n'est pas en $801: il faut changer les pokes et en plus ça ne
marche que si le
programme a été lancé, alors il suffit de faire un
load et puis tu peux lister
ta merde. Tralala, Oliver Twist est nul, je suis meilleur que lui,
pouet pouet.
Attends un peu banane, je
t'ai dit que c'était classique ce qui
entraine que c'est nul... Bien, reprenons... Ah, au fait, pendant que
j'y pense
si vous n'arrivez pas à finir Marble Madness à cause du
manque de temps, allez
mettre EA EA en piste $A, secteur $F et byte $1F (ou il y avait F0 08)
mais ça
n'a absolument rien à voir avec la protection nulle. (j'ai quand
meme envie de
vous dire que j'ai fait marcher mes cellules grises pour trouver ce fix
dans
l'intention de finir le jeu et que je n'y arrive toujours pas... Enfin,
moi et
les jeux...) C'est marrant, moi y'en à plus trop savoir ou moi
y'en a étre. On
va sauter quelques lignes histoire d'y voir plus clair...
Immmmaginons que nous ayons
écrit grace à notre perspicacité, notre
intelligence et notre bravoure, le programme hyper puissant qui est le
suivant:
10 REM MDFP
20 PRINT " VIVE LE FRANCAIS "
30 END
J'ai jamais vu un programme
aussi beau... (sauf pour la phrase qu'il
écrit...) si on fait un CALL-151 et que l'on fait 801L, on doit
trouver à peu
près ça:
801- 0C
08
Pointeur de la ligne suivante.
803- 0A
00
Numéro de la ligne.
805-
B2
REM.
806- 20 4D 44 46 50 ' MDFP'.
80B-
00
Fin de ligne.
80C- 26
08
Pointeur de la ligne suivante.
80E- 14
00
Numéro de la ligne.
810-
BA
Token de PRINT.
811- 22 20 56 49 56
45 20 4C 45 20 '" VIVE
LE FRANCAIS "
46 52 41 4E 43
41 49 53 20 22
825-
00
Fin de ligne.
826- 2C
08
Pointeur de la ligne suivante.
828- 1E
00
Numéro de la ligne.
82A-
80
Token de END.
82B-
00
Fin de ligne.
82C- 00
00
Fin de programme.
Que de place prise en
mémoire pour écrire trois pauvres mots... Enfin,
peut étre avez vous été intrigués par les 4
lettres qui suivaient le REM, que
peuvent bien signifier MDFP ??? En fait, si on a mis ça, c'est
pour réserver de
la place en mémoire... et chaque lettre va avoir son importance.
(surtout les 2
premières...)
'M' va étre remplacé par 0D qui est
comme tout le monde le sait, la
représentation ASCII du caractère C-M qui n'est autre
qu'un magnnnifique RETURN
'D' va étre remplacé par 04 soit C-D.
'F' et 'P' ne seront pas changés pour que la
commande FP soit executée.
La seule chose complexe
à faire est donc de remplacer 4D 44 (en 807.)
par 0D 04.
Maintenant, vous pouvez
faire autant de run que vous voulez (chose
impossible avec les pokes classiques et nuls !!!) mais si vous avez le
malheur
de faire LIST, vous détruisez votre programme... Pourquoi ?
Parceque !
Non, je vais expliquer...
lorsque vous faites LIST, pour afficher tout
ça, le programme sort les caractères un par un; lorsque
il rencontre 0D, il
envoie un retour chariot, on devient donc indépendant de la
liste... Il envoie
alors un 04 soit Control D qui annonce que la prochaine commande
appelle le
DOS et enfin FP est la commande qui met le basic Applesoft en route et
qui en
profite pour effacer le programme.
Bon, d'accord c'est pas mal
comme protection mais le programme est
facilement listable si on est un petit peu pas trop con: FP fait
exactement la
meme chose que les deux pokes du debut, c'est à dire qu'il met
le premier
pointeur de ligne suivante à zéro donc la liste ne peut
etre obtenue... Il
suffit donc de reperer le premier 00 (fin de la première ligne)
et de mettre
sonadresse plus 1 en 801-802. Bien sur, si on refait LIST, le programme
disparait
à nouveau et le petit curieux va vite trouver où est le
piège puisqu'il agit
dèsle début... On peut déjà faire ça
en plus:
10 REMGGGMDFD
^^
surtout pas d'espace ici !!!
On va ensuite remplacer les
caractères GGG par le caractère flèche
gauche (qui y'en a étre 08.) comme ça, on ne verra pas
apparaitre le rem et ça
vous pourrez etre sur que le plus grand des pirates n'en aura rien
à battre...
conclusion, ça ne sert pratiquement à rien !!!
Enfin, sachez que vous
pouvez remplacer FP par n'importe quelle
commandeDOS... BRUN, BLOAD, ou pourquoi pas INIT... Bon alors là
on arrive dans
la
protection méchante... Et le problème qui se pose est le
suivant: si le mec
n'est pas trop con, il se rend compte que c'est pas très normal
que le drive se
mette en route et se recalibre quand on tape LIST... Et si il est
encore moins
con, il retire vite sa disquette du drive avec quand meme une bonne
partie de
la1ère piste baisée... et dans ce cas, il va se
démerder pour copier un autre
DOS
et avec un peu de chance, ça marche... Il faut donc avoir un DOS
un peu
bidouillé sur la disquette et qui soit le seul faire fonctionner
ce qu'il y a
dessut... là, démerdez vous...
En immmmaginant que vous ne
soyez pas méchant, mais puriste, il y a
d'autre maniere de faire comprendre que l'on veut garder secret son
programme...Des facons gentilles, par exemple, vous lancez un super
programme
qui met des
phrases gentilles, ou mieux, vous rajoutez, ou modifiez une commade DOS
mais
cela implique que votre dos soit present... (Tiens, on a
déjà parlé de DOS
spéciaux un peu plus haut... Encore une fois, démerdez
vous !!!)
Dernier petit conseil,
mettez plusieurs pieges dans votre merde car
c'est très facilement reperable... et augmentez à chaque
fois la méchancetè de
ceux-ci (au tout debut un FP et à la fin un INIT...)
Bon, il est tard (5h1/4)
alors je vais vous laisser à vos rèves doux et
chaleureux... Et je vous dis à très bientot en vous
faissant de grosses bises
tout partout, moi, je vais aller gouter !!! (pensez, une tartine de
confiture
defraises, qui m'attend depuis 1/4 d'heure...)
Salut et URGH !!!
Oliver Twist. ist. e defraises, qui
m'attend depuis 1/4 d'heure...)
Salut et URGH !!!
Oliver Twist.
===============================================================================
RUB' PROGRAMMATION : LA
SOURIS
(p) CAPTAIN CRACK
===============================================================================
LE JOUR OU JE ME SUIS POURVU POUR MON APPLEUX CHERI D'UNE SOURIS, VOUS
SAVEZ CE
BIZARRE MACHIN MUNI D'UN APPENDICE CAUDAL...,JE NE ME DOUTAIS PAS DES
TRACAS
QU'ELLE ME CAUSERAIT...POUR VOUS EVITER DES NUITS BLANCHES,VOILA TOUT
CE QUE
VOUS AVEZ TOUJOURS VOULU SAVOIR SUR 'ZE MOUSE':
QUAND JE PARLE DE PROGRAMMER LA SOURIS, IL FAUT DEJA SAVOIR OU ELLE SE
TROUVE,
A SAVOIR DANS UN DES 7 SLOTS DE VOTRE Z'APPLE IIE (POUR LE //c
C'EST + FACILE)
UNE FOIS MISE EN PLACE DANS LE SLOT 1 A 7, QUI SE RETROUVE EN MEMOIRE
DE $C100
A $C700, LA SOURIS SE CARACTERISE PAR:
Cn0C : 20 ET CnFB :
D6 AVEC n LE NUMERO DU SLOT
EN QUESTION
POUR TROUVER LE SLOT,UN PROGRAMME SIMPLE SUFFIT:
]CALL-151
*300L
*300 LDA #$00 !
ON COMMENCE
STA
$05 ! LE
CHECK
LDA
#$C0 ! EN $C000
STA $06
LOOP LDY #$0C !
ON A BIEN DIT Cn0C NON ?
LDA ($05),Y
CMP
#$20 ! ON VERIFIE
QU'IL Y A #$20
BNE TEST
LDY
#$FB ! PUIS CnFB
LDA ($05),Y
CMP
#$D6 ! IL EST LA
LE #$D6 ?
BNE
TEST ! NON, ON
FAIT LES AUTRES SLOTS
LDA $06
SEC
SBC #$C0
STA
$0A ! ET
VOILA !
RTS
TEST INC $06
LDA $06
CMP
#$C8 ! EH..ON A
QUE 7 SLOTS, FAUT PAS DEPASSER !
BNE LOOP0
LDA #$FF
STA
$0A ! SI
PEEK(10)=255 , Y'A PAS DE SOURIS !
RTS
ALORS SOUS BASIC, UN CALL 768 SUIVI D'UN PRINT PEEK (10) SUFFIRA POUR
SAVOIR LE
NUMERO DU CONNECTEUR.
MAINTENANT POUR GERER LES POSSIBILITES DE VOTRE ANIMAL, VOUS AVEZ LE
CHOIX
ENTRE 8 ROUTINES...
NOUS ALLONS LES ETUDIER EN DETAIL:
1> COMMENT LES TROUVER
===================
EN EFFET, LES ADRESSES DES 8 ROUTINES SONT PLACEES DANS UNE TABLE EN
MEMOIRE EN
L'OCCURENCE :
$Cn12 : OCTET BAS DE
'SETMOUSE'
! $Cn16 : OCTET BAS DE 'POSMOUSE'
$Cn13 : OCTET BAS DE 'SERVEMOUSE'
! $Cn17 : OCTET BAS DE 'CLAMPMOUSE'
$Cn14 : OCTET BAS DE
'READMOUSE' !
$Cn18 : OCTET BAS DE 'HOMEMOUSE'
$Cn15 : OCTET BAS DE 'CLEARMOUSE'
! $Cn19 : OCTET BAS DE 'INITMOUSE'
OU 'n' REPRESENTE
TOUJOURS LE NO DU SLOT (TROUVE AUPARAVANT).
2) COMMENT LES APPELER
===================
ON PEUT CONSTRUIRE UNE TABLE AVEC CES ADRESSES AUXQUELLES ON POURRA
'JMP'_ER
VIA UN JMP (INDIRECT). IL FAUT SAVOIR QU'AVANT TOUT APPEL A UNE DE CES
ROUTINES, LE REGISTRE 'X' DOIT CONTENIR '$Cn' ET LE REGISTRE Y '$n0'.
VITE, UN EXEMPLE, CAR JE SENS QUE C'EST PAS CLAIR !: ..... (mais si!,
mais si)
&NTD&.
LDA #$00 !
LDY $0A !
CETTE ROUTINE MULTIPLIE LE SLOT PAR #$10 (POUR AVOIR $n0)
^ 1 CLC
ADC #$10
DEY
BPL <1
STA
n0 ! ET MET LE RESULTAT EN $n0...CA
SERVIRA PLUS TARD !
LDA #$00
STA $09
LDA
$0A
! LE NUMERO DU SLOT, RAPPELEZ VOUS !
STA SLOT
CLC
ADC #$C0
STA
Cn
! CA RESSERT POUR LES APPELS
LDX #$00
LDY
#$12
! A PARTIR DE $Cn12
LOOP LDA ($09), Y
STA TABLE,
X TABLE:
INY
SETMOUSE HEX 00
SERVEMOUSE HEX 00
INX
.
.
CPY
#$1A
.
.
BNE
LOOP
INITMOUSE HEX 00
RTS
PUIS POUR UN APPEL A UNE ROUTINE EN PARTICULIER:
LDY SETMOUSE OU INITMOUSE, HOMEMOUSE, CLAMPMOUSE, READMOUSE,
CLEARMOUSE...
JSR CALL
CALL STY CARD+1
LDA Cn
STA CARD+2
LDX Cn
LDY n0
JSR CARD
RTS
CARD 4C 00 00
3) QU'EST-CE QU'ON EN FAIT ?
=======================
BON..AVEC CES TROIS PETITS PROGRAMMES, VOUS SAVEZ MAINTENANT COMMENT
TROUVER LE
SLOT DE LA SOURIS, COMMENT CONSTRUIRE UNE TABLE AVEC LES ADRESSES DES
DIFFERENTES SUB-ROUTINES, ET ENFIN COMMENT LES APPELER...MAIS CA NOUS
DIS
TOUJOURS PAS A QUOI CA SERT...
A> SETMOUSE : ADRESSE BASSE EN $Cn12
SERT A INITIALISER LE MODE SOURIS...ET CECI SE FAIT SELON LA VALEUR
CONTENUE
DANS L'ACCUMULATEUR AVANT L'APPEL, QUI POUR LE 'PASSIF' EST #$01. TOUTE
AUTRE
VALEUR ENTRE #$02 ET #$0F MET EN FONCTION LES MODES INTERRUPTIBLES...
CE QUI NOUS AMENERAIT TROP LOIN, LE MODE PASSIF ETANT LE PLUS USITE.
DONC POUR L'APPELER: LDA #$01
LDY SETMOUSE
JSR CALL
B> SERVEMOUSE : ADRESSE BASSE EN $Cn13
SERT UNIQUEMENT EN CAS D'UTILISATION DES MODES INTERRUPTIBLES, DONC PAS
POUR
NOUS POUR L'INSTANT !
C> READMOUSE : ADRESSE BAS... et puis continuez a calculer, moi j'en
ai MARRE
CA, C'EST LA ROUTINE DE LECTURE DES DONNEES EN PROVENANCE DE LA
SOURIS...EN
L'OCCURENCE SA POSITION SUR L'ECRAN ET L'ETAT DU BOUTON..ON Y
REVIENDRA !
D> CLEARMOUSE :
MET A 0 LES POSITIONS DE LA SOURIS...LORS DU 1ER APPEL PAR EXEMPLE
E> POSMOUSE :
MET A JOUR LA POSITION DE LA SOURIS SELON LA PLACE QU'ELLE OCCUPE
(INDIQUEE
PAR LES 'TROUS D'ECRAN').
F> CLAMPMOUSE :
TRES IMPORTANT...FIXE LES VALEURS LIMITES DES COORDONNEES EN X ET EN Y
DE
LA SOURIS... SI VOUS GEREZ UN ECRAN GRAPHIQUE, FAUT PAS QU'ELLE EN
SORTE !
a> POUR MODIFIER LES LIMITES DES COORDONNEES 'X' : A
DOIT CONTENIR #$00
b> POUR MODIFIER LES LIMITES DES COORDONNEES 'Y' : A
DOIT CONTENIR #$01
(ENFIN ETRE DIFFERENT DE #$00...)
DANS LES DEUX CAS, LES NOUVELLES VALEURS LIMITES SONT DANS LES 'TROUS
D'ECRAN'
CA FAIT 2 FOIS QU'ON EN PARLE...
CE SONT DES ADRESSES RESERVEES A CHAQUE SLOT ET QUI SE TROUVENT
THEORIQUEMENT
EN PAGE TEXTE, MAIS QUI N'APPARAISSENT PAS A L'ECRAN, D'OU LEUR NOM...
DANS LE CAS DE 'CLAMPMOUSE', VOILA OU DOIVENT SE TROUVER LES LIMITES:
$478:OCTET BAS DE LA LIMITE INFERIEURE
$578:OCTET HAUT DE LA LIMITE INFERIEURE
$4F8:OCTET BAS DE LA LIMITE SUPERIEURE
$5F8:OCTET HAUT DE LA LIMITE SUPERIEURE
G> HOMEMOUSE :
MET LES POSITIONS DE LA SOURIS AU COIN SUPERIEUR GAUCHE DE L'ECRAN...
A FAIRE SUIVRE D'UN 'READMOUSE'
H> INITMOUSE :
A APPELER AVANT TOUT AUTRE COMMANDE...C'EST LA MISE EN MARCHE
VOILA DONC LA SEQUENCE A FAIRE AVANT TOUTE UTILISATION DE LA SOURIS:
- INITMOUSE
- SETMOUSE
- CLEARMOUSE
4) LA LECTURE DES DONNEES
======================
APRES UN APPEL A 'READMOUSE', VOUS AIMERIEZ BIEN SAVOIR OU EST VOTRE
SOURIS,
POUR PAR EXEMPLE DESSINER UNE MAIN SUR L'ECRAN GRAPHIQUE, ET SI
L'UTILISATEUR
A OUI OU NON 'CLIQUE' DEPUIS...VOILA COMMENT FAIRE :
TOUTES LES DONNEES SE TROUVENT DANS LES 'TROUS D'ECRAN' A SAVOIR :
$478+n OCTET BAS DE LA POSITION EN X
$578+n OCTET HAUT DE LA POSITION EN Y
$4F8+n OCTET BAS DE LA POSITION EN Y
$5F8+n OCTET HAUT DE LA POSITION EN X
$778+n ETAT DU BOUTON ET DES INTERRUPTIONS
'n' REPRESENTE ENCORE ET TOUJOURS LE NUMERO DU
SLOT,SI SI !
PAR EXEMPLE, POUR UN ECRAN GRAPHIQUE (192*280) :
LDX SLOT
LDA $4F8, X ! PAS BESOIN DE PRENDRE LES OCTETS
HAUTS CAR 192<255
STA VERT ! ET DANS LA LARGEUR, ON A
UNIQUEMENT 40 OCTETS SOIT UNE VALEUR
LDA $478, X ! HORIZONTALE DE 0 A 39
(CHAQUE OCTET CONTIENT 7 BITS QUI
STA HORIZ ! CORRESPONDENT A 7 PIXELS ET
ON A BIEN 7*40=280 POINTS.)
5) L'ETAT DU BOUTON
================
TOUT SE TROUVE CONCENTRE EN $778+n, CHAQUE BIT DE L'OCTET AYANT
UN SENS:
BIT 7 : LE BOUTON EST ENFONCE
BIT 6 : LE BOUTON ETAIT DEJA ENFONCE
BIT 5 : LA SOURIS A BOUGE
BIT 4 : RESERVE
BITS 3 A 1 : POUR LES INTERRUPTIONS
BIT 0 : RESERVE
POUR AVOIR LA MEILLEURE VUE POSSIBLE, J'AI CHOISI DANS MES PROGRAMMES DE
CONSTRUIRE UNE TABLE (ENCORE !)... Y'A PEUT ETRE MIEUX..L'APPEL EST
LANCE !
LDX
SLOT
ETAT:
LDA $778,
X
CLIC HEX 00
JSR
BOUTON
DEJA HEX 00
-
MOVE HEX 00
-
INTE HEX 0000000000
BOUTON:
STA BUT
LDY
#$07 ! UN OCTET FAIT 8
BITS...NON ?
LDX
#$00 ! ON COMMENCE A REMPLIR
'CLIC'
B1
ASL
! ON VERIFIE QUE LE BIT 'Y' EST '1' OU '0'
STA BUT
BCC
B2 ! C'EST '0'
LDA #$01
BNE B3
B2 LDA #$00
B3 STA ETAT, X ! ON MET A
JOUR LA TABLE EN QUESTION
LDA BUT
INX
! SANS COMMENTAIRE
DEY
! IDEM-PAREIL QU'AU DESSUS
BPL B1
RTS
! C'EST FINI, J'ME TIRE !
APRES TOUT APPEL A 'BOUTON', IL EST FACILE DE VOIR SI LA SOURIS A BOUGE
OU PAS
OU SI L'UTILISATEUR (-TRICE) A CLIQUE...EXEMPLE :
LDX SLOT
LDA $778,X
JSR BOUTON
LDA CLIC
BEQ
.... ! FAIT
'BIP' A CHAQUE 'CLIQUAGE'
LDA #$87
JSR $FDED
BON, BEN JE CROIS QUE VIENT LE MOMENT EMOUVANT DE NOUS
QUITTER..J'ESPERE QUE
J'AI ETE CLAIR (SINON TANT PIS). VOUS POURREZ DE TOUTE FACON ME JOINDRE
SUR
MINITEL 'POUR DE PLUS AMPLES INFORMATIONS' ! :
TEL: 3615
CODE: RTEL
B.A.L.:CAPTAIN CRACK LAISSEZ
VOTRE PSEUDO ET ON SE REVERRA.
===============================================================================
-------------------------------------------------------------------------------
SPACE QUEST
II
(K)racked by Steff + Loic.
-------------------------------------------------------------------------------
Pour cracker ce soft, il suffit de modifier sur une copie locksmith de
la face
de boot de l'original, les octets suivants :
Piste $0C 00 05 : 18 60
C'est le vérif de l'original qui était chargée en
$205.
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
ULTIMA 5 (k) The
Highlanders Team featuring Godfather and The ACS-Dijon
-------------------------------------------------------------------------------
Ah! Le soft que tout le monde attendait en ce début 1988...
Pour le déplomber, c'est simple ma foi. surement à cause
du rush causé par le
retard de la sortie de ce soft, il ont pris le tps de penser au soft,
et se
sont alertés pour la protection..baclée!
Pour le cracker, il vous suffira de booter un advanced demuffin 1.1,
puis de
faire un BLOAD RWTS MODULE en page B7, avec le nom RWTS ULTIMA 5..ok?
Ensuite, convertissez le disk original et ça marche !
Faaaa-cile !
-------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Tiens, Road Race à fait Crac... Ou comment Cracker Road Race par
Oliver Twist..
--------------------------------------------------------------------------------
Bon, ce coup ci
je vous fait pas un grand fichier parceque le
plombage n'en vaut pas le coup... Par contre, je vais me mettre
à la Bete du
Gévaudan et si j'y arrive d'ici DEP.10, ça risque de
faire un truc assez
balaise dans la magnifique série du magnifique Godfather... Mais
j'ai bien dis
si j'y arrive parceque c'est le genre de truc ou y faut du temps...
beaucoup de
temps... Quoi, j'en entends qui gueullent parcequ'ils sont la pour
déplomber
Road Race ??? Du calme, je vous dis qu'il y'en a pour 1 minute à
le déplomber.
(une minute quand je vous dis ce qu'il faut faire... parceque ca m'a
pris à peu
prés 30 minutes de ma précieuse vie...) Ca c'est bizare,
l'inspiration n'arrive
pas... Allez, parceque c'est vous, je vous balance d'abord le
déplombage et je
délire aprés... Et puis comme ça, Godfather pourra
virer des passages s'il n'y
a plus de place sur son bo disk...
Aors voila, Road Race se copie parfaitement sans problème et
sans bavures avec
un locksmith FDB mais Ho surprise, on ne s'y attendais pas du tout, le
soft
plante juste apres la présentation... Oh le vilain... (Vous avez
remarqué que
j'ai d'abord écrit 'Ho' puis 'Oh' mais c'est pas grave puisque
vous ne l'aviez
pas vu...) Donc, vous faites une belle copie avec lolo et vos modifiez
ça:
P$0 S$B B$33: 69 FF EA
------- B$3D: E9 FF EA
Voila, c'est fini... et en plus, ça marche... Mais ce qui
m'emmerde, c'est
que je n'ai plus rien à vous raconter... Ah si... On va surment
monter avec
deux potes une nouvelle Crack Band... The BCB: The Binoclards'Crack
Band...
J'espère que ça va marcher parceque l'autre jour,
Nyarlatop et The Satanic
sont venu manger des raviolis chez moi et m'ont dis que c'était
pas bon...
Conclusion une haine intense s'est instalée entre nous et c'est
ainsi qu'ils
ont voulu m'inviter à manger quelque chose de pire...
Heuresement que j'ai dit
non, ils voulaient m'empoisoner avec une choucroute ignoble qui
trainait dans
leur frigo depuis au moins trois mois... Salauds... je vous aurait...
Enfin on
va surement se monter une BAL au 36 14 BUSTER alors si vous voulez nous
insulter, passer nous voir... Je pense qu'elle s'appellera THE BCB...
Donc si
vous avez des bosorijinoxtouneuffes, vous passez nous voir... Et on
vous fera
tout plein de grosses bises...
Allez, maintenat ça suffit, j'arrete de parler... (Qui a dit
'enfin...')
Alors je fait une grosse bise à Catherine et une un peu moins
grosse
à vous tous...
A Dep.10... bientot!
O.Twist...
_______________________________________________________________________________
+-----------------------------------------------------------------------------+
! BALANCE OF POWER V2 (C) 1987 BY
MINDSCAPE
DENY FROM HIGHLANDERS !
+-----------------------------------------------------------------------------+
Salut mes tous bos !!!!
Vous vous souvenez de ma correspondance avec le Père Noel dans
DEP8 ? Oui ?
Il m'indiquait une méthode pour déplomber Balance of
Power, soft bestial si il
en est.....
Ouais, eh ben manque de pot, le Papa Noel, il s'est
gourré....son crack n'est
pas complet : en effet, avec une copie déplombée avec la
méthode donnée dans
DEP8, la sauvegarde de partie est impossible à effectuer sans
détruire ladite
copie ( ce qui est, reconnaissons-le, assez génant.....) !!!!!
Seulement, moi, je lui faisais confiance au Père Noel, et
aveuglement, j'ai
suivi les conseils qu'il m'a donné....résultat: j'ai
commencé à faire circuler
une copie mal déplombée de Balance of Power avant de
m'apercevoir qu'elle était
mal déplombée ( vous me suivez ??? ) !!!!!
Donc : - La première version de ce crack est mal
déplombée....
- Par chance, St-Sylvestre m'est
apparu et m'a donné la fin de ce
crack, ce qui m'a
permis de diffuser une version V2 de ce soft,
version qui elle,
à l'inverse de la précédente, marche
parfaitement...
( pour reconnaitre
cette version V2 de la V1, c'est simple: il suffit
de booter votre
disquette de Balance of Power:la mention V2 apparaitra
en inverse lors du
chargement du programme....)
- QUESTION : Pourquoi la première version est-elle mal
déplombée ????
---------------------------------------------------------------------
- REPONSE : Parce que ....j'explique ( ploque ) :
-------------------------------------------------
Vous savez tous de mon précédent fichier sur la chose,
que la protection de
Balance of Power repose en partie sur le changement des tables de
translation
du ProDos....
Les tables de translation servent à transformer les nibbles (
qui se trouvent
au niveau du disk ) en octets qui sont eux engrangés dans la
mémoire et vice
et versa....Si on change ces tables, le codage nibble-octet qui est
effectué
grace à celles-ci changera aussi.....Prenons un exemple:
Soit une suite de nibbles d'un programme codée avec une table X.
--> Si on lit la suite en question et on décode le tout avec
la table X,
pas de problème, on trouvera bien le
programme...
--> Si on lit la suite et on décode avec une table Y, les
octets obtenus au
décodage ne seront pas les bons, car on aura
codé un programme avec une
table X et on l'aura décodé avec une
Y....
Eh bien, pour Balance of Power, les tables de translations ont
été changées,
c'est à dire qu'avec un ProDos normal et ses tables X, on
n'arrive pas à
décoder correctement l'original ( qui a été
codé avec des tables Y !!!)...
Ce qu'on fait alors dans ce cas-là, c'est qu'on lit l'original
et on le
décode avec une table Y, puis on le recode avec une table X et
on écrit le
programme ainsi recodé sur une disquette vierge....
Ainsi, sur la disquette vierge ( qui ne l'est plus !), il faudra
utiliser pour
décoder le programme une table X (car on a codé le
programme avec une table X).
Aussi, il faut changer dans le programme toutes les tables Y par des
tables
X....( je simplifie mais c'est en gros ça...), pour que celui-ci
soit bien lu..
Mais seulement voilà: pour Balance of Power, j'ai changé
certaines de ces
tables ( initialement Y ) pour les transformer en tables X ( c'est
à dire
celles du ProDos standard...), mais j'en ai (ou plutot ' le Père
Noel en a ')
oublié deux, celles-là meme qui s'occupent de la
sauvegarde d'une partie en
cours....
D'où, si on essaye de sauver une partie, le programme la sauvera
avec une table
Y, puis la relira ( pour la vérifier ) avec une table X,
d'où gros bordel !!!!
Pour passer de la version V1 à la version V2 de ce crack, il
suffit donc de
changer les deux tables Y que j'ai oublié de modifier par deux
tables X...
Ce qui se traduit en définitive par :
T$ 1C S$ 02 octet $03 : 96 ( was:FF )
octet $FF : FF ( was:96 )
T$ 20 S$ 02 octet $03 : 96 ( was:FF )
octet $FF : FF ( was:96 )
------------------
Pour ceux qui ont raté DEP8, voici ce qu'il faut faire pour
obtenir une version
parfaitement déplombée de Balance of Power :
- Cracking : première partie : démuffin :
-----------------------------------------
Brun-ez votre Advanced Demuffin 1.1 frelaté....puis, faites un
Exit to monitor.
De la, tapez :
* B942:18 ( pour annuler les
controles sur les checksums...)
* BA96:3F
* BAFF:00 ( pour la table de
translation )
* 800G (
pour revenir a advanced demuffin 1.1 )
Puis, démuffinisez l'original....
Puis, avec un éditeur de secteurs, recopiez les:
T$00 S$00 de l'original sur les T$00 S$00
de la copie démuffinisée.
S$0C
S$0C
S$0D
S$0D
S$0E
S$0E
------------------
- Cracking : deuxième partie : fin des problèmes de table
de translation :
--------------------------------------------------------------------------
Prenez un éditeur de secteurs et changez sur la copie
démuffinisée:
T$00 S$0E octet $32: 60 (was:A9)
T$1C S$03 octet $96: 00 (was:FC)
octet $FF: FC (was:00)
T$20 S$03 octet $96: 00 (was:FC)
octet $FF: FC (was:00)
T$1C S$02 octet $03: 96 (was:FF)
octet $FF: FF (was:96)
T$20 S$02 octet $03: 96 (was:FF)
octet $FF: FF (was:96)
------------------
- Cracking : dernière partie : on enlève la vérif :
---------------------------------------------------
On prend donc un éditeur de secteur et on change sur la copie
démuffinisée:
T$1A S$08 octet $84: EA EA EA (was: 20 00 FF)
T$1E S$08 octet $84: EA EA EA (was: 20 00 FF)
Enfin, on change:
T$05 S$0B octet $27: F7 AC
(was: AC A0)
Cette dernière modification ne correspond à rien si ce
n'est à la correction
d'une faute d'orthographe que j'ai repéré en jouant...(
le prg marque
originellement " And no " au lieu de " And now "....).
That's all Folks.....
------------------
Et voili, et voila, Hup Hup Hup et Barbatruc....
----------------------------------(k) PERE NOEL - ST SYLVESTRE - DENY
1987-----
-------------------------------------------------------------------------------
HOW TO DEPLOMBE BORROWED TIME BY THE MOST BO : Oliver Twist...
c'est moi...
-------------------------------------------------------------------------------
(Attention, voici le fichier le plus rapide de l'histoire: 1h en tout
pour
l'écrire... Attention aux bugs !...)
Conversation trés privée
entre Godfather et moi...
Dring... Dring (Ca c'est la sonnerie du téléphone...
si,si...)
- Allo ?...
- Allo ma poule ? Salut
c'est Olivier...
- Lequel ?
- Ben, le plus bo...
- Ah, c'est toi...
- Et oui, c'est moi... Dis
donc, t'est toujours pret à te jeter par la
fenetre parce
que tu est en manque de fichiers...
- Justement, tu me
dérange en pleine ouverture de la mienne. (de
fenetre...)
- bon, allez, comme je
t'aime bien je vais te refiler un bon vieux
déplombage de 1985... Ca te va ???
- Ho, tu sais... Au point ou
j'en suis... C'est quoi ton déplombage ???
- Borrowed time... Et puis
juste aprés, je te fais Road Race...
- Super, c'est parfait... tu
sais que tu est vraiment le plus beau, le
plus
génial, le plus intelligent, le plus viril, tu est mon sauveur,
je t'aime, je
suis fou de toi, de tes bos zyeux, de ta belle chute de
reins, de tes
oreilles, de tes mains fines, de...
- Arrette... Ca suffit, les
lecteurs vont finir par croire que c'est
moi qui
écrit ton texte... (Mais bien sur que non c'est pas moi...)
- Bon ok, tu m'envoies tout
ça d'ici trois jours...
- He, du calme, c'est long
à écrire un fichier... Allez, je te poste
tout ça
lundi, (on est jeudi...) tu le recois mardi ou mercredi...
Et tu es
heureux...
- Attention... si j'ai rien
merceredi, je ne t'attend pas, je
diffuse...
- (Putain, on se croirait
à la redaction des Dingodossiers...)
Dis moi, tu en
manque vraiment de fichiers ???
- Ta gueulle... Au boulot...
- Tres bien, salut ma
poule...
- Salut ma cocote à
poil dur...
Bon, on a parlé d'autres choses mais ça ne vous
interresse pas... Mettons
nous plutot au déplombage de borrowed time... Moi, j'ai bien
aimé et ca m'a
pris a peu prés deux heures et deux verres de Coca (de 23h00
à 1h00. Meme que
papa et maman ont pas été trés content du nombre
infernal de recalibatrion que
j'ai fait ce soir la. Vous m'exusez, il est 13h04 et je viens de me
rendre
compte que je vais etre à la bourre à mon boulot (et oui,
y'en a qui bossent
pendans les vacances: LES MEILLEURS...) alors je vous reprend (oh oui,
prends
moi encore...) ce soir... de toute façon, j'ai rien d'autre
à foutre...
Ca y'est, il est 20h40 et j'ai fini de bosser comme un dingue...
Ou en étions
nous ? bon, je remonte lire tout ça et je continue... Mouai,
j'ai pas fait
grand chose... Tiens, je vais vous montrer comment se faire de la pub en
faisant croire qu'on en fait pour les autres... Y'en a-t-il parmis vous
qui
connaissent Sygmapple ??? Oui ? Et bien que les deux premiers vous
plaisent,
ou qu'il vous fillent des boutons, prenez absolument le numero trois qui
devrait sortir d'ici peu... Je m'explique... (non je ne mettrais pas
'ploque'...) Je vais pour cela prendre une phrase célébre
de ce cher Godfather
et la modifier un petit peu : Je suis sur qu'il y en a parmis vous qui
se
disent: 'Le langage Machine c'est trop dur pour moi...' Et bien non !!!
Car
grace au plus Bo, (Comment ça: c'est qui le plus Bo ??? On vous
ne le répétera
donc jamais assez... le plus Bo c'est moi...) et à Sygmapple,
vous allez
pouvoir devenir un maitre de la programmation... (Oui, c'est ça,
un maitre
comme MOI.) En effet je vais avoir une rubrique 'cours de...
d'assembleur' qui
commence au niveau le plus bas que l'on puisse trouver... il suffit
simplement
d'avoir quelques connaissance en Basic et de ne pas etre trop bete
(mais si
vous inssister, vous pouvez l'etre un peu...) Conclusion si vous n'avez
plus
qu'un disk vierge, ne le dépucelez qu'avec Sygmapple 3...
Allez hop, assez causé, on déplombe... Borrowed
time est un disk (mais si..)
en 16 secteurs (ouf... coucou The Satanic...) mais ou les marqueurs ont
été
modifies... On va donc tout d'abbord récuperer la routine de
lecture de ce
Bo(rrowed time... là, il y a un gag trés subtil... si,
si, cherchez bien...)
jeu. Et pour cela, on fait ceci :
CALL-151
1600<C600.C700M
16F8:A9 0 8D 55 8 4C 1 8
1600G (Avec Borrowed time in the lecteur de disk...(Ce message ne doit
pas
etre tapé (et le précédent non plus (oh et puis
merde, faites ce que vous
voulez...))))
Et hop, dès qu'on a la main, on saute regarder ce qu'il y a en
$801 et on
remarque qu'il y a un petit saut en $900... On regarde donc en $900 et
on voit
un autre petit saut en $B2A On va donc faire un tour en $B2A et on
remarque un
JSR $6000 qui se trouve etre la présentation trés belle
mais trés con... (ils
affichent une suite de fenetres au lieu de faire des calculs
scientifiques...
Enfin, c'est leur problème...) Et juste avant ce JSR, il y a un
long acces
disk... On va donc pouvoir comprendre comment marche leur RWTS... On
regarde
vite fait et comme on est trés intelligent, (vous je sais pas
mais moi c'est
trés trés nettement au dessus de la moyenne...) on
comprend tout de suite...
(Je vous céde que j'ai tout de meme quelques faiblesses en
français, mais comme
je hais le français, je n'en ai rien à battre...) Et on
realise les
differentes choses suivantes:
On recommence la meme chose qu'au dessus. (vous n'etes pas
obligé de
le refaire si vous n'avez touché à rien...)
1600<C600.C700M
16F8:A9 0 8D 55 8 4C 1 8
1600G
puis 2000<900.1FFFM
De là, on fait C600G avec un dos dans le drive et on fait un
grand sourir en
attendant le ] prompt.
hop, on fait un CALL-151
puis 900<2000.36FFM
suivit d'un superbe Control-C
et d'un magnifique BSAVE RWTS.BORRO,A$900,L$16FF
En suite, on prends son meilleur assembleur par la main et on
lui demande
gentillement de nous assembler ça (Attention, j'ai
rajouté pour les ceusses qui
n'on qu'un drive des lignes qui débutent par un *; faites gaffe
à pas vous
gourer dans vos disk parceque je ne gere aucun affichage du genre 'disk
original' ou 'copie'... De plus, je vous donne plainement le droit de
critiquer
ce programme parcequ'il n'écrit pas les secteurs dans le sens
inverse d'où
perte de temps, mais je n'écouterais pas vos critique...en
effet, le temps que
mets ce programme pour démuffiniser un disk est exactement celui
que je mets
pour aller boire un Coca dans la cuisine...):
ORG
$1F00
LDA #$00
STA $BA0 ;SECTEUR
STA $06
STA $B9E ;PISTE
STA $B7EC
STA $B7EB
STA $B7ED
STA $B7F0
LDA #$20
STA $B9A ;BUFF CHARG.
HAUT
STA $B7F1
LDA #$90
STA $BA2 ;FIN DU BUFF
CHARG.
LDA #$02
STA $B7F4
* LDA #$01 ;drive
écriture... à rajouter si 1 drive
STA $B7EA
DEBUT JSR $B99
* STA $C010 ;à
rajouter si 1 drive
* JSR $CCED ;à
rajouter si 1 drive
LDX #$00
AGAG2 TXA
PHA
LDA #$B7
LDY #$E8
JSR $B7B5
INC $B7ED
LDA $B7ED
CMP #$10
BNE TRUC
LDA #0
STA $B7ED
INC $B7EC
TRUC INC $B7F1
PLA
TAX
INX
CPX #$70 ;7PISTES...
BNE AGAG2
* STA $C010 ;à
rajouter si 1 drive
* JSR $CCED ;à
rajouter si 1 drive
LDA #$20
STA $B9A
STA $B7F1
LDA $B9E
CLC
ADC #$7
STA $B9E
INC $06
LDA $06
CMP #$5 ;5*7=35 PISTES
BNE DEBUT
RTS
Ah, merde, je viens de m'asseoir sur mes lunnettes et je suis
dans la merde
parceque j'ai pété une branche... Enfin, ça tiens
à peu prés en équilibre...
Bon, passons, maintenant que tout ça est assemblé et
sauvé sur disk sous le non
de demufborro, vous faites ceci:
BLOAD RWTS.BORRO
BLOAD DEMUFBORRO
CALL-151
Là, je vous laisse ruser comme un fou pour essayer de vous
retrouver sur la
piste 0... C'est pas dur, si par exemple vous avez un //c, vous n'avez
qu'à
reloger la routine de boot en $9600 et mettre en 9634:4C 59 FF... pour
un //e,
vous cherchez ou il faut mettre ce JMP ou bien vous ne vous gonflez
pas, vous
faites ça en 96F8 parceque ça ne détruira que
$800...puisqu'il n'y a qu'un
secteur de chargé...
Control-E Return
:00 60
BA3:4C 59 FF 60
PUIS 900G
(Tout ça, c'est pour initialiser plein de trucs pour sa
routine de
lecture...)
Ensuite, on rétabli ce qu'on a modifié plus haut de cette
manière:
BA3:20 29 11
Et à partir de ce moment là, on peut taper d'une
main agile et vigoureuse,
la phrase de la victoire sur la protection... 1F00G (Ca c'est une phrase
qu'elle est belle...) Bon, si vous avez 2 drives, vous allez prendre un
café pour vous reposer de ce travail fastidieux... Et si vous
n'en avez
qu'un, c'est bien fait pour vous... Na !!! Tralalalalère...
y va etre obligé de rester à coté de son Apple
pour changer les disks et
appuyer sur des boutons... Pas moi, Pas moi...
Heu, s'il vous plait, voulez vous cessez ces enfantillages messieurs...
Bon, ca y'est, vous avez un bo disk bien copiable... et bien
profitez
en pour faire la deuxième face de la meme façon... Et
hop, un deuxième café...
Maintenant, on va passer au truc le plus chiant... le boot...
encore,
la c'est pas trop dur... Ce qui est chiant c'est que c'est The Satanic
qui m'a
prété tous les beaux originaux que j'ai
déplombé mais que ce fumier les a
repris donc je n'ai plus d'original pour comparer les routines de
lectures et
je suis dans la merde... Mais comme je vous aime tendrement, je vais me
forcer
un peu et vous montrer que je suis le plus fort... Je m'arme donc d'un
crayon,
d'un papier, d'un éditeur de secteur, d'un casque, de quelques
rations de
survie, d'un sac de couchage et je pars à la recherche de toutes
les choses à
modifier...
C'est marrant, je suis pas vraiment sur de moi... Enfin, s'il y
a des
érreurs, rendez vous dans DEP.10... Et puis de toute
façon, vous n'avez pas à
etre préssé puisque ça fait un bout de temps qu'il
est diffusé ce beau
programme...
Je crois donc me rappeler qu'il faut changer tout ça:
(Désolé, je n'ai plus
les anciennes valeurs...)
P$0 S$0 B$C0: F7
------- B$CA: ED
------- B$D5: E2
------- B$FB: C9 DE EA
P$0 S$2 B$06: C9 AA EA
P$0 S$9 B$D4: A9 AA EA
------- B$DA: A9 96 EA
P$3 S$B B$1B: F7
------- B$25: ED
------- B$30: E2
------- B$56: C9 DE EA
------- B$61: C9 AA EA
Et si ça boot, vous n'avez plus qu'à etre heureux
et à m'admirer comme il se
doit... Bon, moi je vais me mettre à Road Race mais je sent que
je vais faire
un truc trés long parce que c'était pas dur et
pratiquement pas drole...
A tout de suite...
O.Twist...
Le code dé-code
,créé par 'EL MATHOS' le 13/11/87
-----------------------------------------------------------
Avant toute chose ,puisqu'il s'agit du premier
de mes
articles dans DEPLOMBAGE MODE D'EMPLOI ,je
tiens à mettre
au point certaines choses:
1 - Je ne suis pas et ne serai jamais un
cracker.
2 - Ma carte de visite serai plutot:
'EL MATHOS' from D.H.V.
Création
,protection ,recherche et bidouilles diverses
à l'EXCLUSION
du crackage et de toutes ses formes.
3 - Bien que souvent en étroite
collaboration ,D.H.V. et
P.A.D sont DEUX CLUBS
DISTINCTS dont les principaux
membres sont:
Dany sector from
P.A.D
'El mathos' from
D.H.V.
J'espère ainsi que les confusions
faites par certains
cesseront enfin. Merci d'avance.
-----------------------------------------------------------
Cher lecteur ( ou éventuellement chers
lecteurs ,ou
chère lectrice ou encore chères
lectrices ), un instinct
genial semble vous avoir guidé durant
ces derniers instants
Ne gaspillez-pas un tel coup de chance,
continuez donc à
lire cette doc passionnante et enrichissante,
surtout pour
ceux qui n'ont rien à faire d'autre...
Et j'oubliai, si vous ne possédez pas
d'apple // ( toutes
versions confondues, avec une
préférence pour le //c et le
//gs ),oubliez tout ceci et allez vous faire
cuire un racine
cubique de 729 !!!
Introduction
Si je vous dis "code", à quoi
pensez-vous ?
1 - Canal plus
2 - Aux feux d'une voiture
3 - A quelques bidouillages destinés
à modifier le nom +
ou -
protégé par un auteur quelconque
4 - A un système de protection
intéressant mais limité
5 - A un système complexe, puissant, et
partout omnipresent
6 - Au schmilblic
Selon la meilleure proposition, lisez un des
paragraphes
suivants:
1 - Veinard ...
2 - Rebooter un bon jeu d'arcade bien nul,
speedway par
exemple.
3 - Si vous etes un name-killer, pendez-vous
tout de suite
au lieu d'attendre de
me rencontrer.
4 - Vous etes dur la bonne voie, mais la route
est longue.
5 - Mon avis est suffisamment proche du votre
pour affirmer
ceci: nous sommes
d'accord.
6 - ( censuré ) !!!
Avant de passer aux choses sérieuses (
et elles le seront )
je profite de cette introduction pour quelques
messages
personnels:
( selon la formule habituelle .. ) THANKS TO:
- Dany Sector pour m'aider à
préparer et diffuser mes
diverses créations (
d'autant qu'il est le seul , j'attend
vos propositions ).
- Numéro 6 pour son soutien moral et
trés occasionnelement
matériel, mais capital.
- Godfather and Co pour leurs docs
bénévolement écrites,
regroupées et
diffusées.
- Robin Hood et Fanfoué pour leurs
encouragements.
Mon plus vif ressentiment à :
- Les name-killers en activité ( Je
pardonne à tous ceux
chez qui la sagesse l'a
emportée. )
- Tous ceux qui osent vendre ce qu'ils n'ont
pas le droit de
vendre.( J'espère qu'ils
comprendront et se reconnaitront)
Et voilà pour les messages personnels.
Et je réponds maintenant à la
question que personne ne se
pose: A quoi sert cette doc à la ... ?
Tout simplement à vulgariser
l'utilisation des codages en
tout genre, particulièrement les
résistants, cela dans un
but humanitaire pour sauver les crackers de
l'ennui...
D'où le badge suivant:
***********
**** OPERATION ****
*
CODAGE *
* SAUVER LES *
**** CRACKERS. ****
***********
Dans ce but, plusieurs rubriques:
- "Qu'est ce ?" : Etude générale
d'un procédé de codage.
- "Application pratique" : pour vous aider
à créer vos
routines.
- "Exemple" : pas de commentaires ,sauf sur
ceux qui n'ont
pas compris ce que sera cette
rubrique.
- "Moyens de lutte" : pour vous guider sur la
voie du
décodage direct.
- "A propos d'anstrom" : pour vous aider
à manipuler un des
meilleurs outils de recherche et
de décodage ( référence
sur la version 2.3 ).
Les différents codages que j'ai
étudié sont présentés dans
un ordre de difficulté à peu
près croissante ( cf plan
général plus loin ).
N'ayez donc aucune crainte, meme les moins
branchés langage
machine peuvent suivre le début.
Mais ne réver pas ,tout suivre va etre
assez difficile.
Mais ne vous affolez pas non plus, ce premier
chapitre
restera trés simple dans l'ensemble.
Je signale aussi aux plus branchés que
le début risque de
leur paraitre un peu nul, mais il fallait bien
commencer
quelque part. Néanmoins qu'ils ne
s'inquiètent pas : la fin
est infernale ( notamment les formats
spéciaux, le codeur
automodifiable est le compresseur binaire,
mais pour cela
il faudra attendre mes éventuels
prochains articles ) !!!
PLAN GENERAL
Premier livre: Les codages simples
I/ Les codages par substitution
A - Les codes
à opérateur unique
B - Les codes
à rotation
C - Les codes
à transcription
D - Les codes
à pseudo-substitution
II/ Les codages évolutifs
A - Les codes
à opérateur évolutif
B - Les codes
à entremelement
III/ Les codages à modification
d'occupation mev
A - Les codes
à échange
B - Les codes
à division
Second livre: les codages multiples
( contenu exact sous réserve )
Entre autre: formats spéciaux et
codeurs à mot de passe.
codage GENESIS.
Troisième livre: Les codages complexes
( contenu exact sous réserve )
Entre autre: compresseur binaire.
codage "invisible": IRD.
Quatrième livre: Annexes
( contenu exact sous réserve )
Entre autre: les principes du décodage
indirect
Attention : Ce plan n'est donné
qu'à titre purement
indicatif, et n'est en aucun cas restrictif.
NB: Chaque article sera
précédé en plus de son identifica-
tion d'un code de
difficulté
Echelle des niveaux:
HN - Hors niveau ,accessible
à tous
0 - Accessible avec une
connaissance limitée du langage
machine.
1 - Accessible avec une
connaissance générale du langage
machine.
2 - Accessible avec une
bonne connaissance du langage
machine et une certaine expérience d'utilisation.
3 - Accessible avec une
connaissance poussée du langage
machine et une bonne expérience d'utilisation.
4 - Niveau 2 ou 3 avec une
connaissance de base des
processus de commande du drive.
5 - Niveau 2 ou 3 avec une
connaissance poussée des
processus de commande du drive.
LEGENDE DES ORGANIGRAMMES UTILISES A L'AVENIR:
" ( ... ) " : Limite du cadre
d'une commande. Il est
recommandé de tracer ces cadres sur un
tirage papier éventuel.
" ** ... ** " : Limite du cadre d'un test
conditionnel. L'
expression contenue dans ce cadre peut etre
soit vraie (oui), soit fausse (non), Il est
recommandé de tracer ces cadres sur un
tirage papier éventuel, dans une autre
couleur que celle de " ( ... ) ".
" A --> --= " : Flèches de liaison
entre les cadres.
" ! !
" Il est recommandé de tracer les flèches sur
" ! V
" un tirage papier éventuel.
" <-- V "
" ( JSR ) <---> " : Appel de
sous-programme.
" oui " & " non " : Indicateurs
liés aux cadres
conditionnels.
" =---------= " : Cadre de sous-programme. Il
est recommandé
"
! ! " de le
tracer sur un tirage papier éventuel.
" =---------= "
" = RTS = " : Commande de
retour de sous-programme.
" =--------= "
" 'POINTEUR' " : Contenu de l'adresse
pointée par POINTEUR.
" 'POINTEUR' ,Index " : Contenu de l'adresse
pointée par
POINTEUR indéxé par le registre
INDEX.
" A <-- B " : Donne à A la valeur B.
" $xx " : Valeur héxadécimale.
Le code dé-code
,créé par 'EL MATHOS' le 13/11/87
PREMIER LIVRE - LES CODAGES SIMPLES
"Qu'est ce?": ( HN )
Un grand nombre de codages repose sur une
transformation
effectuée par un programme court
utilisant une boucle
répétitive et effectuant
à chaque passage la modification d'
un octect. Un tel système de codage
sera appelé codage
simple, bien qu'il ne le soit pas forcement.
I/ Les codages par substitution
"Qu'est ce?": ( HN )
Le principe du codage par substitution est de
remplacer un
code héxadécimal par un autre
code héxadécimal ,toujours le
meme. Le decodage s'effectuant par la
manoeuvre inverse.
Ce sont les systèmes les plus anciens,
les plus connus et
les plus utilisés à ce jour
,mais leur efficacité est trop
faible désormais pour que leur
utilisation soit encore
intéressante. Néanmoins il est
préférable de les connaitre
en détail car les protecteurs ne sont
pas encore tous per-
suadés de leur manque
d'efficacité.
A - Les codes à opérateur unique
"Qu'est ce?": ( 0 )
Ils consistent à modifier chaque octet
par un opérateur
unique et un seul, EOR, ADC, SBC, INC, DEX,
les trois
premiers utilisant un paramètre.
Si les codages par substitution sont
relativement grillés,
ceux-ci sont totalement carbonisées.
Alors ne facilitez pas
le travail des name-killers, utilisez autre
chose.
Le EOR est de loin le plus utilisé de
tous. Un tel choix
n'etait pas dépourvu de logique,
à l'époque, puisque le
éorage avec un paramètre bien
choisi rend les octets codés
méconnaissables.
ex: B O N J O U R eor #$37 donne u
x y è x b e
On remarquera aussi que le eor modifie
généralement les
écarts entre les octets ( 12 car. entre
B et O contre 2
car. entre u et x ) ce qui evite de conserver
d'éventuelle
progression logique à l'opposé
du ADC #$xx.
( On remarque en effet que SBC #$xx = ADC
#$100-xx ,INC =
ADC #$01 et DEC = ADC #$FF : les 4 se
ramènent à un ADC )
Je ne parlerai pas du ORA et du AND qui ne
permettent pas un
décodage viable pour les 256 octets
,puisqu'il "égare" une
partie des informations en forçant
certains bits à 0 ou à 1
sans tenir compte de leur valeur initiale ,ce
qui rend
impossible le décodage de ces bits.
"Application pratique": ( 0 )
Un organigramme très simple au coeur
duquel on place
l'opérateur désiré pour
effectuer le codage, et l'opérateur
inverse pour effectuer le décodage.
ENTREE PRINCIPALE
( Adr 1 <- adresse de début )
!
V
( Adr 2 <- adresse de fin )
!
V
non
( A <- 'Adr 1' ) <---------------=
!
!
V
! oui
( OPERATEUR
) ** Adr 1 >= Adr 2
** -----> FIN
!
A
V
!
( 'Adr 1' <- A ) -------> ( Adr 1 <-
Adr 1 + 1 )
"Exemple": ( 0 )
Une application directe de l'organigramme
précédent dans le
cas où : Opérateur = EOR #$A5
Adresse 1 = $800 et est stockée en $3C
- $3D
Adresse 2 = $9A0 et est stockée en $3E
- $3F
Soit: Qui
donne assemblé en $300
LDA
#$00
300 : A9 00
STA
$3C
85 3C
LDA
#$08
A9 08
STA
$3D
85 3D
LDA
#$A0
A9 A0
STA
$3E
85 3E
LDA
#$09
A9 09
STA
$3F
85 3F
LDY
#$00
A0 00
1 LDA
($3C),Y
B1 3C
EOR
#$A5
49 A5
STA
($3C),Y
91 3C
INC
$3C
E6 3C
BNE
2
D0 02
INC
$3D
E6 3D
2 LDA
$3D
A5 3D
CMP
$3F
C5 3F
BCC
1
90 EE
LDA
$3C
A5 3C
CMP
$3E
C5 3E
BCC
1
90 E8
RTS
60 ( 43 Octets )
( Programme 1 )
J'espère que vous avez remarqué
que ce programme est trop
long et trop systématique, et avec un
petit effort:
LDA
#$00
300 : A9 00
STA
$3C
85 3C
LDA
#$08
A9 08
STA
$3D
85 3D
LDY
#$00
A0 00
1 LDA
($3C),Y
B1 3C
EOR
#$A5
49 A5
STA
($3C),Y
91 3C
INC
$3C
E6 3C
BNE
2
D0 02
INC
$3D
E6 3D
2 LDA
$3D
A5 3D
CMP
#$09
C9 09
BCC
1
90 EE
LDA
$3C
A5 3C
CMP
#$A0
C9 A0
BCC
1
90 E8
RTS
60 ( 35 Octets )
( Programme 2 )
"Exemple": ( 1 )
On peut encore améliorer ce programme
en le rendant plus
rapide grace à cette organigramme:
ENTREE PRINCIPALE
( Y <- 0 )
!
V
( X <- Nb de changement de page )
!
V
non FIN
( A <- 'Adr 1',Y )
<----=-------= A
!
! ! !oui
V
! ! !
( OPERATEUR
) non! ** Y <
$A0 **
!
! A
V
! !oui
( 'Adr 1',Y <- A )
** X = 0 **
!
A A
V
! !
( Y <- Y+1
)
! !
!
! !
V non
! !
** Y = 0 **
---------= !
!
!
=--------> ( Adr 1 <- Adr 1 + 256 )
oui ( X <- X +
1 )
X contient le nombre de changement de page (
$01 )
$A0 étant la partie inférieure
du nb d'octet à tranférer
( sur $800 à $9A0 = $A0 sur $01A0 )
Dans cette exemple on passe de 13199 cycles
à 9654.
Toujours le meme exemple ,assemblé en
$300 avec cette
organigramme:
LDX
#$01
300: A2 01
LDY
#$00
A0 00
1 LDA (Adr
1),Y
B9 00 08
EOR
#$A5
49 A5
STA (Adr
1),Y
99 00 08
INY
C8
BNE
2
D0 07
INC (1)
+2
EE 06 03
INC (1)
+7
EE 0B 03
DEX
CA
2 CPX
#$00
E0 00
BNE
1
D0 EA
CPY
#$A0
C0 A0
BCC
1
90 E6
RTS
60 ( 31 Octets )
( Programme 3 )
Ou pour ceux qui n'aiment pas les programmes
s'automodifiant
LDX
#$01
300: A2 01
LDY
#$00
A0 00
STY
$3C
84 3C
LDA
#$08
A9 08
STA
$3D
85 3D
1 LDA
($3C),Y
B1 3C
EOR
#$A5
49 A5
STA
($3C),Y
91 3C
INY
C8
BNE
2
D0 03
DEX
CA
INC
$3D
E6 3D
2 CPX
#$00
E0 00
BNE
1
D0 F0
CPY
#$A0
C0 A0
BCC
1
90 EC
RTS
60 ( 31 Octets )
( Programme 4 )
"Moyen de lutte": ( 1 )
Tous les codages par substitution à
opérateur unique se
résument donc soit à un EOR #$xx
,soit à un ADC #$xx.
( Soit en tout 512 possibilitées )
On remarque de plus que EOR et ADC ont chacun
un opérateur
inverse: EOR et SBC. Grace à cette
propriété, il est aisé
de rechercher au milieu d'une masse de
donnée un message
connu ,cripté par un codage à
opérateur unique.
Soit Adr 1 l'adresse du tampon contenant le
message connu et
recherché. Soit Adr 2 l'adresse du
tampon contenant le
message dont on désire savoir s'il
correspond au message
recherché mais codé par un EOR
ou un ADC.
Supposons que MESSAGE 2 = MESSAGE 1 EOR
code
On a alors la série
d'égalités:
( Adr 1 )
EOR code = ( Adr 2 )
( Adr 1 +1 ) EOR code
= ( Adr 2 +1 )
............ ... ....
. ............
( Adr 1 +L ) EOR code
= ( Adr 2 +L )
L représentant la longueur des messages
- 1.
Ce qui d'après la
propriété de l'opérateur inverse s'écrit:
( Adr 1 )
EOR ( Adr 2 ) = code
.........
... ......... . ....
( Adr 1 +L ) EOR ( Adr
2 +L ) = code
De meme pour MESSAGE 2 = MESSAGE 1 ADC
code, on peut
établir les égalités:
( Adr 1 )
ADC code = ( Adr 2 )
( Adr 1 +1 ) ADC code
= ( Adr 2 +1 )
............ ... ....
. ............
( Adr 1 +L ) ADC code
= ( Adr 2 +L )
Et par l'opérateur inverse:
( Adr 1 )
SBC ( Adr 2 ) = code
.........
... ......... . ....
( Adr 1 +L ) SBC ( Adr
2 +L ) = code
NB: Les opérateurs de calcul
considérés sont évidemment
L'addition et la
soustraction sans retenue ( le cas
sera traité
plus loin ) :
CLC ADC
#$xx et SEC SBC #$xx
Il suffit donc de calculer CODE
dans la premiére égalité
utilisant l'opérateur inverse, puis de
vérifier si la
valeur trouvée convient dans les
autres. Si oui, le message
Adr 2 est égale au message Adr 1
EOR ( ou ADC ) la valeur
de code. En déplacant Adr 2 dans toute
la masse de données
on trouvera fatalement le message codé
s'il existe.
On peut organiser la recherche selon
l'organigramme suivant:
ENTREE PRINCIPALE
( Adr 2 <- début de la masse de
donnée )
( Adr 1 <- début du tampon
contenant )
( le message
recherché
) ( FIN )
!
A
V
non
!
( Y <- 0 ) <---------- ** Adr 2 = Fin des données **
!
A
V
!
( Code <- 'Adr 2 +Y'
)
( Adr 2 <- Adr 2 + 1 )
( EOR 'Adr 1
+Y'
)
A
!
!
V
oui
!
( Y <-
Y + 1 )
<-----------------=
!
!
!
!
V
non ** Code = 'Adr 2 +Y' ** !
** Y = longueur
** -----> ** EOR 'ADR 1 +Y' ** !
!
!
!
!oui
!
!
V
!non
!
( Message trouvé en Adr 2
)
!
!
( Selon le code EOR Code
)
!
!
V
!
( Message trouvé en Adr 2
) ( Y <- 0
)
!
( Selon le code ADC Code
)
!
!
A
V
!
!
( Code <- 'Adr 2 +Y' ) !
!
=------------- ( SBC 'Adr 1 +Y'
) !
!oui
!
!
!
V
oui
!
! ( Y <- Y + 1 )
<-----------------=
A
!
!
!
!
!
V
non ** Code = 'Adr 2 +Y' ** non!
=- ** Y = longueur ** -----> **
SBC 'ADR 1 +Y' ** ---=
!
!
( Reprise de la recherche ) -----=
ENTREE DE POURSUITE DE LA RECHERCHE
Que l'on peut transcrire sous la forme d'un
programme de ce
genre:
On posera au préalable:
- Adr 1 en $08 - $09
- Adr 2 en $0A - $0B
- Code en $0C
- Pointeur de la fin des
données en $0D - $0E
- Longueur (nb d'octets) du
message à rechercher en $0F
- Message à rechercher
à partir de l'adresse pointée par
$08-$09
L'initialisation de ces paramètres
n'est pas incluse dans le
programme suivant :
Ce qui donne assemblé en $300
1 LDY
#$00
300: A0 00
LDA
($0A),Y
B1 0A
EOR
($08),Y
51 08
STA
$0C
85 0C
2
INY
C8
CPY
$0F
C4 0F
BEQ
6
F0 32
LDA
($0A),Y
B1 0A
EOR
($08),Y
51 08
CMP
$0C
311: C5 0C
BEQ
2
F0 F3
LDY
#$00
A0 00
LDA
($0A),Y
B1 0A
SEC
38
SBC
($08),Y
F1 08
STA
$0C
85 0C
3
INY
C8
CPY
$0F
C4 0F
BEQ
7
321: F0 20
LDA
($0A),Y
B1 0A
SEC
38
SBC
($08),Y
F1 08
CMP
$0C
C5 0C
BEQ
3
F0 F2
4 INC
$0A
E6 0A
BNE
5
D0 02
INC
$0B
330: E6 0B
5 LDA
$0B
A5 0B
CMP
$0E
C5 0E
BCC
1
90 C8
LDA
$0A
A5 0A
CMP
$0D
C5 0D
BCC
1
90 C2
RTS
60
6 LDA #$C5
)
A9 C5
BNE
8 ) Cette
partie 341: D0 02
7 LDA #$C1 )
affiche
"E"
A9 C1
8 JSR $FBFD ) ou "A"
pour
20 FD FB
LDA
$0C ) la nature
du
A5 0C
JSR $FDDA
) code, puis
le 20
DA FD
LDA
#$A0 )
paramètre,
A9 A0
JSR $FBFD
) puis
l'adresse
20 FD FB
LDA
$0B ) de
la
352: A5 0B
JSR $FDDA
)
formule
20 DA FD
LDA
$0A )
trouvée
A5 0A
JSR $FDDA
) ( Adr 2
).
20 DA FD
LDA
#$A0
)
A9 A0
JSR $FBFD
)
20 FD FB
CLC
)
18
BCC
4
)
35D: 90 C8
( Programme 5 )
Ce programme peut sembler intéressant
à certains, du moins
je l'espère, mais dans la pluspart des
cas, il sera vous
inutile...
"A propos d'Anstrom": ( HN )
Grace à son système de recherche
performant et son éditeur
de code multiple à subtitution
EOR - ADC - ROTATION ,
Anstrom était déja un des bons
utilitaires de recherche
et de codage. Avec le Super Scanner de la
version 2.3 ,il
est probablement devenu l'un des plus complets
et des plus puissants.
Mais laissons l'étude de son potentiel
élévé à plus tard ,
et intéressons-nous à la
recherche-décodage des codes par
substitution à opérateur unique
,au niveau de l'utilisation
pratique:
1 - Charger le Super Scanner en utilisant le
menu opplus.
2 - Sélectionner opplus actif.
3 - Sélectionner "Recherche" dans le
menu Disk.
4 - Sélectionner la nature du message
recherché:
-
Texte - Héxadéximal -
Bits séparés
5 - Sélectionner le mode de recherche
décodage.
6 - Sélectionner le Champ De Recherche
( CDR ):
- les 35 pistes: Toute
la disquette.
- Suite: Tout le reste
de la disquette à partir de celui
pointé par Piste/Secteur.
- Cdt: Sur une suite
définie de secteurs, par exemple un
fichier (
Il est d'abord nécessaire de définir le
fichier en
question par:
1 -
"Indication-création" dans cdt.
2 -
"Effacement".
3 -
"Cumul" ( Si besoin ).
4 -
"Certains fichiers".
5 -
Cliquer sur le ou les fichiers désirés
6 -
"Recherche" pour revenir au Super Scanner )
7 - Sélectionner le mode de renvoi:
- Ecran: pour avoir
directement le résultat en édition
- Cdt ou Cdt
opposé: pour établir dans le cdt la liste
des
secteurs contenant le message codé.
- Mixte: Les deux
précédents en meme temps.
8 - Cliquer dans le bas de l'écran pour
définir le message
recherché.
9 - Cliquer sur RECHERCHE pour débuter
la recherche.
10- Utiliser éventuellement:
- Cont.Rech: pour
reprendre la recherche.
- Décodage:
pour décoder selon le multicode à opérateur
unique
affiché.
- Recodage: pour
recoder ...
NB:Pour plus de détails consulter la
notice du Super Scanner
Il est
préférable d'utiliser le Super Scanner plutot que
le système de base
car celui-ci, contrairement au Super
Scanner ,n'inclue pas dans
le mode décodage le codage ADC
mais se contente du EOR.
Mais attention, si ceci permet de chercher,
décoder, recoder
et modifier certains messages, n'oubliez pas
que ceux-ci
peuvent etre protégés par des
vérificateurs qu'il faudrait
aussi neutraliser ou de
préférence adapter. Méfiez-vous
aussi des messages bidons...
Une étude de la lutte contre les
vérificateurs et les
messages bidons fera probablement partie des
annexes du
livre quatre.
"Application pratique": ( 0 )
Je rappelle la table des opérateurs
inverses qui permet de
transformer un codeur en décodeur et
vice-versa: ( la table
se lit dans les deux sens )
opérateur ! opérateur
inverse
-------------------!-------------------
CLC ADC
#$xx ! SEC SBC #$xx
SEC ADC
#$xx ! CLC SBC #$xx
EOR
#$xx ! EOR #$xx
INC
! DEC
-------------------!-------------------
opérateur inverse
! opérateur
NB: Je tient à préciser à
ceux qui m'accuserait avec anstrom
de m'etre tourner vers
le NAME-KILLERING alors que je me
prétends
opposé à ce procédé, que NAME-KILLERING
n'est
pas modifier des noms
ou des mentions protégés et
justifiés, mais
réside dans le fait d'oser disffuser de
tels faux dans le but
de s'accaparer le mérite des
autres. La
recherche-modification personnelle à elle
seule n'est nullement
répréhensible à mon avis est peut
constituer une
étape importante pour devenir un bon
bidouilleur
informatique.
B - Les codages à rotation:
"Qu'est ce?": ( 0 )
L'unité de stockage de données
en mémoire est l'octet ( = 8
bits ). Les codages à rotation reposent
sur une modification
de l'ordre de ces 8 bits dans chaque octet.
Appelons ces 8 bits B0 à B7.
Leur ordre normal est : B7 B6 B5 B4 B3
B2 B1 B0
Ainsi un codage à rotation peut
transformer les octets par
exemple de cette manière:
B7 B6 B5 B4 B3 B2 B1 B0
--> B1 B0 B7 B6 B5 B4 B3 B2
pour
$A5 on
obtient $69
1 0 1 0 0
1 0 1 --> 0 1 1
0 1 0 0 1
On distingue 2 sous-catégories de
codages à rotation:
- les rotations pures qui effectuent une
véritable rotation
des bits , comme dans l'exemple
précédent.
- les brasseurs de bits qui modifient
n'importe comment l'
ordre des bits ( à
l'exception donc de l'équivalent des
rotations pures ) comme par
exemple:
B7 B6 B5 B4 B3 B2 B1 B0 --> B6
B4 B0 B7 B1 B2 B5 B3
( SUITE DANS LE FICHIER CDC2 )
Le code-décode,
créé par 'EL MATHOS', le 13/11/87
1 - Les rotations pures par octet:
"Application pratique" ( 1 )
Nous allons réutiliser l'organigramme
des codages à
opérateur unique ,en remplaçant
l'opérateur par un systéme
de rotation 8 bits.
Il n'existe que 2 rotations de base sur 8 bits:
- 1 vers la
gauche 7 <- 6 <- 5 <- 4 <- 3
<- 2 <- 1 <- 0
!
A
!__________________________________!
- 1 vers la
droite 7 -> 6 -> 5 -> 4 -> 3
-> 2 -> 1 -> 0
A
!
!__________________________________!
Pour obtenir d'autres rotations ,on
répètera plusieurs fois
l'une des rotations de base. Ce nombre de fois
sera le
paramètre. Par convention le
paramètre sera le nombre de
rotation équivalente dans le sens
rotation droite.
ex: 2 ROT droite a pour paramètre
2
5 ROT gauche a pour
paramètre 3 ( = 8 - 5 )
17 ROT droite a pour
paramètre 1 ( = 17 - 8 - 8 )
1 ROT gauche a pour
paramètre 7 ( = 8 - 1 )
En effet on constate que : ROT gauche (x) =
ROT droite (8-x)
ROT droite (x) = ROT droite (8+x)
= ROT droite (8-x)
Ainsi toutes les rotations pourront s'exprimer
selon un
paramètre de rotation droite compris
entre 0 et 7.
Et ainsi l'opérateur inverse de ROT (x)
= ROT (8-x)
( par défaut ROT signifiera ROT droite )
Mais on peut aussi considérer ROT
gauche (x) comme l'
opérateur inverse de ROT droite (x).
L'opérateur langage machine
utilisé pour ROT droite est:
PHA LSR PLA
ROR soit 48 4A 68 6A
L'opérateur langage machine
utilisé pour ROT gauche est:
PHA ASL PLA
ROL soit 48 0A 68 2A
"Exemple" ( 1 )
Tiré directement de l'organigramme du
codage à opérateur
unique avec la modification annoncée:
- le paramètre ( 1 à 7 )
stocké en $FF
- Adr 1 et Adr 2 comme
précédemment en $3C à $3F au meme
valeur ( $800 et $9A0 ).
Soit: Qui
donne assemblé en $300
LDA
#$00
300 : A9 00
STA
$3C
85 3C
LDA
#$08
A9 08
STA
$3D
85 3D
LDA
#$A0
A9 A0
STA
$3E
85 3E
LDA
#$09
A9 09
STA
$3F
85 3F
LDY
#$00
A0 00
1 LDX
$FF
A6 FF
LDA
($3C),Y
B1 3C
2
PHA
48
LSR
4A
PLA
68
ROR
6A
DEX
CA
BNE
2
D0 F9
STA
($3C),Y
91 3C
INC
$3C
E6 3C
BNE
3
D0 02
INC
$3D
E6 3D
3 LDA
$3D
A5 3D
CMP
$3F
C5 3F
BCC
1
90 E7
LDA
$3C
A5 3C
CMP
$3E
C5 3E
BCC
1
90 E1
RTS
60 ( 50 Octets )
( Programme 6 )
Les modifications proposées pour le
codeur à opérateur
unique sont aussi valables pour ce programme.
"Moyens de lutte:" ( 1 )
Il suffira de réutiliser l'organigramme
du scanner décodeur
EOR-ADC en supprimant la seconde partie (
recherche ADC ) et
en modifiant la premiére pour l'adapter
aux rotations.
Mais je signale que les rotations pures
étant peu utilisées,
il est plus simple de se contenter du
système de recherche
général de codage par
substitution, le système analogique.
( voir plus loin )
Je donne néanmoins pour les amateurs
l'organigramme et le
listing complet:
ENTREE PRINCIPALE
( Adr 2 <- début de la masse de
donnée )
( Adr 1 <- début du tampon
contenant )
( le message
recherché
) ( FIN )
!
A
V
non
!
( Y <- 0 ) <---------- ** Adr 2 = Fin des données **
( X <- 1
)
A
!
!
V
=-> ( Adr 2 <- Adr 2 + 1 )
( A <- 'Adr 2 +Y'
)
!
A
!
!oui
!
V
non
!
!
( ROT gauche 1 )
<------- ** X = 8
**
!
!
A
!
V
non
!
!
** A = 'Adr 1 +Y' **
---> ( X <- X + 1
)
!
oui!
!
V
!
(
Code <- X
)
!
!
A
V
oui
!
( Y <-
Y + 1 )
<-----------------=
!
!
!
non!
V
non ** 'Adr 2 +Y '
** !
** Y = longueur
** -----> ** ROT gauche code **----=
!
** = 'Adr 1 +Y' ** !
!oui
A
V
!
( Message trouvé en Adr 2
) ENTREE
DE !
( Selon le code ROT Code ) (
Reprise de la recherche ) -=
Que l'on peut transcrire sous la forme d'un
programme de ce
genre:
On posera au préalable:
- Adr 1 en $08 - $09
- Adr 2 en $0A - $0B
- Code en $0C
- Fin des données en $0D -
$0E
- Longueur du message en $0F
- Message à rechercher dans
le tampon pointé par $08-$09
L'initialisation de ces paramètres
n'est pas incluse dans le
programme suivant :
Ce qui donne assemblé en $300
1 LDY
#$00
300: A0 00
LDX
#$01
A2 01
LDA
($0A),Y
B1 0A
2
PHA
48
ASL
0A
PLA
68
ROL
2A
CMP
($08),Y
D1 08
BEQ
3
F0 07
INX
E8
CPX
#$09
E0 09
BNE
2
311: D0 F3
BEQ
6
F0 16
3 STX
$0C
86 0C
4
INY
C8
CPY
$0F
C4 0F
BEQ
8
F0 22
LDA
($0A),Y
B1 0A
LDX
$0C
A6 0C
5
PHA
320: 48
ASL
0A
PLA
68
ROL
2A
DEX
CA
BNE
5
D0 F9
CMP
($08),Y
D1 08
BEQ
4
F0 EC
6 INC
$0A
E6 0A
BNE
7
D0 02
INC
$0B
E6 0B
7 LDA
$0B
331: A5 0B
CMP
$0E
C5 0E
BCC
1
90 C9
LDA
$0A
A5 0A
CMP
$0D
C5 0D
BCC
1
90 C3
RTS
60
8 LDA #$D2 )
Affiche
A9 D2
JSR $FBFD
) "R"
pour
340: 20 FD FB
LDA
$0C ) la nature
du
A5 0C
AND
#$07
)
29 07
JSR $FDDA
) code, puis
le 20
DA FD
LDA
#$A0 )
paramètre,
A9 A0
JSR $FBFD
) puis
l'adresse
20 FD FB
LDA
$0B ) de
la
A5 0B
JSR $FDDA
)
formule
20 DA FD
LDA
$0A )
trouvée
352: A5 0A
JSR $FDDA
) ( Adr 2
).
20 DA FD
LDA
#$A0
)
A9 A0
JSR $FBFD
)
20 FD FB
CLC
)
18
BCC
6
)
90 CA
( Programme 7 )
2 - Les brasseurs de bits sur octet:
"Application pratique" ( 1 )
Le brassage sur octet consiste à
mélanger les 8 bits d'un
octet d'une manière
irrégulière.
Procéder par rotation serait
délicat et limiterait les
combinaisons possibles. Nous allons donc
utiliser un système
apparament plus complexe mais en
réalité plus simple et plus
efficace , en utilisant 2 tables de 8 octets
chacunes.
La première, la table A
contiendra 8 octets témoins des 8
bits différents existants. Ainsi:
Table A :
0 $01 0 0 0 0 0 0 0 1
1 $02 0 0 0 0 0 0 1 0
2 $04 0 0 0 0 0 1 0 0
3 $08 0 0 0 0 1 0 0 0
4 $10 0 0 0 1 0 0 0 0
5 $20 0 0 1 0 0 0 0 0
6 $40 0 1 0 0 0 0 0 0
7 $80 1 0 0 0 0 0 0 0
La seconde , la table B , contiendra 8 octets
témoins des 8
bits de substitution , caractéristiques
du brassage.
Ainsi pour le codage:
B7 B6 B5 B4 B3 B2 B1 B0 ---> B2
B5 B7 B4 B0 B6 B3 B1
Table B :
0 $08 0 0 0 0 1 0 0 0
1 $01 0 0 0 0 0 0 0 1
2 $80 1 0 0 0 0 0 0 0
3 $02 0 0 0 0 0 0 1 0
4 $10 0 0 0 1 0 0 0 0
5 $40 0 1 0 0 0 0 0 0
6 $04 0 0 0 0 0 1 0 0
7 $20 0 0 1 0 0 0 0 0
Il suffit ensuite , grace à la table A
de tester chacun des
8 bits de l'octet à coder. Puis l'octet
résultat , d'abord à
$00 , voit mis à 1 les bits de
substitution des bits de l'
octet à coder qui étaient
à 1.
Soit l'organigramme suivant :
ENTREE PRINCIPALE : OCTET A CODER
( octet résultat <-- $00 )
! SORTIE
FINALE : OCTET CODE
V (
octer résultat pret )
( X <-- 0
)
A
!
!oui
V
non !
( A <-- octet à coder )
<--- ** X = 8 **
!
!
V
!
( A <-- A AND
) ( X <-- X + 1 ) <----=
( 'Table A' , X
)
A
!
!
!
!
V
oui
!
!
** A
= 0 **
------------=
!
!non
!
V
!
( octet résultat <-- octet
résultat ORA 'Table B' , X )
Et il suffit d'inclure ceci dans la
traditionnele boucle de codage (
ou de décodage ).
Le décodage s'obtient facilement en
inversant les tables A
et B.
"Exemple" ( 1 )
Tiré directement de l'organigramme
précédent. Et cette fois
je ne vous macherai pas tout le travail car je
ne donnerai
pas de listing entier.
Posons : A contient l'octet à coder
à l'entrée
B contient l'octet codé à la sortie
$40 stocke l'octet à coder
$41 stocke l'octet codé
Table A en
$360 - $367
Table B en
$368 - $36F
On obtient:
Assemblé en $314 on obtient
STA
$40
314: 85 40
LDX
#$00
A2 00
STX
$41
86 41
1 LDA
$40
A5 40
AND
$0360,X
3D 60 03
BEQ
2
F0 07
LDA
$41
A5 41
ORA
$0368,X
1D 68 03
STA
$41
85 41
2
INX
E8
CPX
#$08
E0 08
BNE
1
D0 ED
LDA
$41
A5 41
( Programme 8 )
Je vous laisse le soin d'adapter la boucle sur
ce programme,
avec toutes les modifications que vous
voudrez.( Au boulot!)
"Moyen de lutte" ( HN )
Plus encore que pour le
précédent codage , il est de très
loin préférable de se fier au
système analogique.
Je ne proposerai pas de système de
recherche spécial pour
le brassage de bits, car son efficacité
et sa rapidité ne
pourront meme pas concurencer de loin les
performance du
système analogique, ce qui était
par contre le cas avec
le scanner spécial rotations pures.
C - Les codages à transcription
"Qu'est ce?": ( HN )
Le principe des codages à transcription
est très simple:
remplacer un octet par un autre en utilisant
une table de
traduction fixé une fois pour toute.
La table est établie sans la moindre
logique , à l'exception
du fait obligatoire suivant:
Une meme valeur de traduction ne doit pas se
répéter plus d'
une fois dans la table. ( ce qui correspond
mathématiquement
au fait que l'application de codage doit etre
bijective.)
Sinon le décodage devient impossible...
( Si un octet a 2
antécédents , comment retrouver
le bon ? )
"Application pratique" ( 0 )
Je vais étudier un transcripteur
d'octet à 8 bits
significatifs ( pouvant coder des octets de 0
à 255 ).
Le décodage s'effectuera grace à
la table inverse de la
table de codage, établie grace à
un inverseur de table
( ce qui peut paraitre relativement logique ).
Le codeur-décodeur: un organigramme
très simple
ENTREE PRINCIPALE
( Adr 1 <-- adresse de début
'inclue' )
( Adr 2 <-- adresse de fin
'exclue' )
!
V
( Y <--
0 ) <-------------------=
!
!
V
!
( X <-- 'Adr 1 ,Y'
)
!
!
!
V
!
( A <-- 'TABLE' ,X
)
!
!
!
V
!
( 'Adr 1 ,Y' <-- A
)
!
!
!oui
V
! non
( Adr 1 <-- Adr 1 + 1 ) --> ** Adr 1
< Adr 2 ** ----> FIN
L'inverseur de code: Encore plus simple:
ENTREE PRINCIPALE
( Y <-- 0 )
!
V
( X <-- 'TABLE 1',Y ) <----- ( Y <--
Y + 1 )
!
A
V
non! oui
( 'TABLE 2',X <-- Y ) ------> ** Y = 255
** -----> FIN
Et l'on constate bien que si table 1 contient
2 fois la meme valeur ,
le programme écrira par 2 fois sur le
meme octet de
la table 2, et cette table inversée
sera donc inutilisable.
"Exemple" ( 0 )
Tout d'abord le codeur-décodeur:
Tiré directement de l'organigramme
précédent et sous sa
forme complète en posant:
Adr 1 stockée en $3C-$3D =
$0800
Adr 2 stockée en $3E-$3F =
$09A0
Table en $1000-$1100
Soit
ce qui donne assemblé en $300:
LDA
#$00
$300: A9 00
STA
$3C
85 3C
LDA
#$08
A9 08
STA
$3D
85 3D
LDA
#$A0
A9 A0
STA
$3E
85 3E
LDA
#$09
A9 09
STA
$3F
85 3F
1 LDY
#$00
$310: A0 00
LDA
($3C),Y
B1 3C
TAX
AA
LDA
$1000,Y
BD 00 10
STA
($3C),Y
91 3C
INC
$3C
E6 3C
BNE
2
D0 02
INC
$3D
E6 3D
2 LDA
$3D
$320: A5 3D
CMP
$3F
C5 3F
BCC
1
90 EA
LDA
$3C
A5 3C
CMP
$3E
C5 3E
BCC
1
90 E4
RTS
60
( Programme 9 )
Avec comme d'habitude toutes les modifs
pensables ou
souhaitables selon votre convenance.
Quant à l'inverseur de table , selon
l'organigramme annoncé
avec quelques simplifications , en
insérant les adresses des
2 tables directement dans le programme:
En posant TABLE 1 en $1000-$10FF
TABLE 2 en $1100-$11FF
Soit
Qui assemblé en $300 donne:
LDY
#$00
$300: A0 00
1 LDA (TABLE
1),Y
B9 00 10
TAX
AA
TYA
98
STA (TABLE
2),X
9D 00 11
INY
C8
BNE
1
D0 F5
RTS
60
( Programme 10 )
"Exemple" ( HN )
Pour ceux qui diraient que ce système
de codage est trop
lourd à cause de la table qu'il
nécessite et qu'il est donc
très peu utilisé , je signale
que c'est pourtant parmi les
coadages simples l'un des plus utilisé.
En effet le stockage
des données sur disquette
nécessite entre autre l'utilisa-
tion de ce système de codage. Je
reparlerai plus tard
avec beaucoup de détails de ces
problèmes de précodage des
données ( voir le livre 2 ) non
seulement pour les formats
standarts mais aussi pour les formats
spéciaux ( et très
spéciaux ).
"Moyen de lutte" ( HN )
Dans les codages à substitution, il
existe:
- 512 codes à opérateur unique,
soit EOR, soit ADC mais qui
se déduisent très
facilement et dont le décodage ne
nécessite que 2 tests.
- 7 codes à rotation pure, plus
complexes et qui nécessite
7 tests différents pour
leur recherche.
- 40320 codes à brassage de bits, eux
aussi complexes et qui
nécessiteraient 40320 tests
différents pour leur recherche
( Se qui sur 1K de données
prendrait quelques dizaines de
minutes ... ce qui explique
pourquoi je ne m'y suis pas
intéressé en
détails ).
- Mais ceci n'est rien qu'une mini-goutte
d'eau dans une mer
démesurée ,
puisqu'il existe environ 8.578 * 10 exp. 506
codes à transcription, soit
bien plus que le nombre de
particules
élémentaires que peut contenir l'univers tel
qu'on le suppose ( environ 10 exp.
130 particules ) s'il
était entiérement
rempli de matière à la densité des trous
noirs. Il va sans dire qu'aucun
programme ne peut tous les
essayer !!!!! ( d'autant que sur
un petit message
recherché, un nombre
immense de ces codes fonctionneraient
encore, et lequel serait vraiment
le bon ?
Cette question est d'ailleurs
impossible à résoudre avec
certitude, sauf en trouvant la
routine de codage ou de
décodage.
Mais il existe heureusement un moyen plus
rapide pour
repérer un message cripté par un
système de codage à
substitution ( que l'on peut aussi appeler
systéme de codage
à transcription ): Le système de
recherche analogique.
( Depuis le temps que je l'annoncais .... Pas
trop tot. )
Bon alors ce système analogique comment
ça fonctionne ?
Très simple... ( comme tout ce que vous
trouverez dans ce
premier chapitre d'ailleurs ) Il réside
sur le fait qu'un
meme octet et toujours remplacer par une meme
valeur. Il
est difficile hélas d'utiliser cette
propriété si le message
codé est trés court ou s'il ne
comporte pas de caractéres
identiques. Mais sur un message du genre:
" RETURN TO CONTINUE " c'est un vrai
rève:
4 fois "espace" , 3 fois "T" , 3 fois "N" , 2
fois "R" , 2
fois "E" , 2 fois "U" , 2 fois "O" , 1 fois
"C" et "I".
Croyez-vous qu'il existe beaucoup de
séquences contenant 9
caractéres différents , se
répétant le nombre de fois
voulues , au positions voulues ?
Evidemment non !!!
Mais je rappelle que si ce système
repère assez fiablement
un message codé, il ne peut pas
indiquer quel est le système
de codage utilisé. Il faut alors le
chercher par d'autres moyens
éventuellement beaucoup plus lents
mais, qui n'ayant
plus à chercher dans une très
vaste zone mais sur un seul
message, peuvent résoudre
néanmoins assez rapidement le
problème, ce qu'ils ne pourraient pas
faire si la zone à
fouiller était trop vaste. C'est le
systéme qui est utilisé
sur le système analogique d'anstrom,
couplé avec un multi-
décodeur assez puissant, mais
très lent.
Si le principe est simple, attention
l'application est bien
plus délicate.
Si vous ne voulez pas vous cassez les pieds ,
sautez tout de suite à
"A propos d'anstrom". Sinon, changez le ruban
de
votre imprimante, buvez 1 ou 2 cafés et
lisez la suite...
( SUITE DANS LE FICHIER CDC3 )
Le code-décode,
créé par 'El Mathos', le 13/11/1987.
"Moyens de lutte" ( 2 )
Pour obtenir un rendement optimal lors de la
recherche du
message, il est nécessaire de
précoder ce message. Pour cela
on isole à l'avance les
caractères de meme valeur, et on
sépare ceux dont les valeurs doivent
etre différentes,
puisque c'est sur ces 2 principes que repose
la recherche
analogique.
Le but du précodage est donc de
transformer le message à
rechercher en données significatives
des propriétés
précédentes, pouvant etre
rapidement utilisées par le
systéme de recherche.
Pour cela le message à rechercher va
etre éplucher octet par
octet. La position relative des séries
d'octets identiques
par rapport au début du message va etre
stockée dans une
table linéaire. Une série de
positions relatives pointant
un ou plusieurs octets de meme valeur, cette
série étant
appelé un champ, sera
séparée de la précédente et de la
suivante par un valeur particuliére,
appelé pointeur de fin
de champ. Deux pointeurs de fin de champ
consécutifs
signaleront la fin des données
précodés.
Concrètement, pour le message "A
RECHERCHER" , cela donnera:
00 FF 01 FF 02 07 0B FF 03 06 0A
FF 04 08 FF 05 09 FF FF
! !
!
!
!
! ! !
A B
C
D
E
F G H
Notes:
A:position relative des caractéres "A"
dans le message:
un A en position 00 : début
du message.
Cet octet, à lui seul,
constitue un champ.
B:pointeur de fin de champ: valeur FF
C:position relative des espaces dans le
message.
D:positions relatives des caractéres
"R" dans le message:
trois "R" en position 2, 7 et 11
en numérotant les
caractéres de gauche
à droite, en commencant par la
valeur zéro pour le premier
carctére.
Ces trois octets constituent un
champ.
E:F:G:positions relatives des
caractères "E", "C" et "H"
H:Double FF, pointeur de fin des
données précodées.
Pour procéder à cet
opération, je vais utiliser un certain
nombre de pointeurs et de tables:
Les tables:
- MESSAGE qui contient les
octets du message à rechercher
L'adresse
MESSAGE correspond donc à l'adresse du
premier octet du
message.
- UTILISE qui contient un
indicateur des indicateurs d'
utilisation, en
paralléle à chacun des octets de la
table MESSAGE.
L'indicateur est
à 0 si l'octet correspondant de la
table MESSAGE
n'a pas été encore précodé, et à 1
dans
le cas contraire.
- RESULTAT qui contient les
données précodées.
Les pointeurs:
- PTRAIT, le pointeur de
traitement qui repère l'octet
du message en
cours de traitement, cet octet servant de
référence pour la création d'un champ: sont
placés dans
le prochain
champ les positions relatives de tous les
octet de meme
valeur que cet octet ( lui y compris ).
- VALEUR contient la valeur
de cet octet pour faciliter
la recherche des
octets de meme valeur.
- LONGUEUR, qui indique la
longueur du message à chercher
( nombre d'octet
)
- PRESULTAT, qui pointe en
position dans RESULTAT le
prochain octet
à utilisé ( 0 correspond au 1er octet de
de la table
RESULTAT )
La table RESULTAT représente les seuls
données à conserver
pour utiliser le système de recherche
lui-meme.
Pour mieux expliquer le principe du
précodeur, j'utilise
comme d'habitude un organigramme:
( Y <--
0 )
!
V
non
( 'UTILISE' ,Y <-- 0 ) <----------=
!
!
V
!
( Y <-- Y+1 )
----> ** Y = LONGUEUR **
!
!oui
( fin du
précodage.
) V
( X <--
PRESULTAT ) ( PRESULTAT <-- 0 )
( 'RESULTAT' ,X <-- $FF )
( PTRAIT <-- 0 )
A
!
!oui
!
!
non V
** PTRAIT = LONGUEUR ** ----> ( Y <--
PTRAIT )
A
!
!
non V
( PTRAIT <-- PTRAIT+1 ) <---- **
'UTILISE' ,Y = 0 **
A
!
!
=------------= oui
!
!
!
V =--------------------------=
! ( VALEUR <-- )
! ( X <-- PRESULTAT ) !
! ( 'MESSAGE' ,Y )
!
V !
!
! ! ( 'RESULTAT'
,X <-- Y ) !
!
V
!
V !
! ( JSR )
<---->! ( PRESULTAT <--
) !
!
!
! ( PRESULTAT+1 )
!
!
V
!
V !
! ( Y <-- Y+1
) ! ( 'UTILISE' ,Y <-- 1 ) !
!
! A
!
!
!
! ! =--------=
RTS =--------=
!
!
!
=--------= A
!
!
!
!
!
!
!
V
!
! =------------=------------- ( JSR )
!
V
A
non
A
! **
Y = LONGUEUR ** ---> ** VALEUR = ** ---=
! oui
! non ** 'MESSAGE' ,Y
** oui
!
V
( X <--
PRESULTAT )
( 'RESULTAT' ,X <--
$FF )
( PRESULTAT <-- PRESULTAT+1 )
Comme d'habitude, voici un exemple
assemblé tiré de l'orga-
nigramme précédent.
On pose au préalable:
3 pointeurs doubles contenant l'adresse de
début de chacune
des 3 tables utilisées:
- MESSAGE en $18,
$19 ( exemple : $900 )
- UTILISE en $1A,
$1B ( exemple : $940 )
- RESULTAT en $1C,
$1D ( exemple : $980 )
Le contenu de ces 6 adresses doit etre
fixé par l'
utilisateur.
( D'après les valeurs choisies dans
l'exemple, la longueur
du message ne peut pas dépassé
$40, soit 64 octets.)
Les 4 pointeurs simples de l'organigramme :
- PTRAIT en $06
- VALEUR en $07
- LONGUEUR en
$08 ( à fixé par l'utilisateur )
- PRESULTAT en $09
On obtient
donc:
Assemblé en $300:
LDY
#$00
300 : A0 00
TYA
98
1 STA
($1A),Y
91 1A
INY
C8
CPY
$08
C4 08
BNE
1
D0 F9
STA
$09
85 09
STA
$06
85 06
2 LDY
$06
A4 06
LDA
($1A),Y
310 : B1 1A
BNE
6
D0 1C
LDA
($18),Y
B1 18
STA
$07
85 07
3 JSR
7
20 3F 03
4
INY
C8
CPY
$08
C4 08
BEQ
5
F0 08
LDA
($18),Y
320 : B1 18
CMP
$07
C5 07
BEQ
3
F0 F2
BNE
4
D0 F3
5 LDY
$09
A4 09
LDA
#$FF
A9 FF
STA
($1C),Y
91 1C
INC
$09
E6 09
6 INC
$06
330 : E6 06
LDA
$06
A5 06
CMP
$08
C5 08
BNE
2
D0 D6
LDY
$09
A4 09
LDA
#$FF
A9 FF
STA
($1C),Y
91 1C
RTS
60
7
TYA
)
98
PHA ) Par
malchance 340 : 48
LDY
$09 )
l'adressage
A4 09
STA ($1C),Y )
indéxé par
X 91
1C
INC
$09 )
concerne
E6 09
PLA ) le
pointeur
68
TAY )
lui-meme
et
A8
LDA
#$01 ) non
l'adresse
A9 01
STA ($1A),Y ) qu'il
contient. 91 1A
RTS ) On
utilise donc 34D : 60
cet astuce en
remplacement:
On sauvegarde la valeur de Y et on utilise Y
pour l'adresse
indéxé.
Après avoir précodé le
message à rechercher, il reste encore
à se servir de ces données pour
finir la recherche.
Pour savoir si les données
pointées par le pointeur Adresse1
correspondent au message recherché
codé par un codage par
transcription, on utilisera le système
suivant:
Adresse1 pointe les données à
tester.
Adresse2 pointe la table RESULTAT contenant le
message
précodé.
PTRAIT sert de pointeur de lecture de la table
RESULTAT.
Supposons que l'on recherche le message
codé dans une zone
de données incluse entre les pointeurs
Adresse3 ( adresse
de début incluse ) et Adresse4 (
adresse de fin exclue )
Le pointeur Adresse1 prend successivement tous
les valeurs
comprises entre Adresse3 et Adresse4.
La technique consiste à lire RESULTAT
champ par champ et à
comparer les octets correspondants de Adresse1
pour chaque
champ ( L'adresse de ces octets est
égal à la somme de
Adresse1 et de la position relative lu dans le
champ ).
Si tous ces octets sont identiques pour un
meme champ, leur
valeur commune est mise de coté dans la
table DIFFERENT.
Si cela est vrai pour tous les champs, alors
on passe à la
vérification de la table DIFFERENT (
voir plus loin ).
Par contre, si pour un quelconque champ,
certains octets
correspondants sont différents, les
données pointées par
Adresse2 ne peuvent correspondre au message
recherché.
Mais finalement cette méthode ne permet
que de vérifier le
fait que des octets identiques du message
correspondent à
des octets de données eux-aussi
identiques. Mais il faut
encore vérifier que si 2 octets du
message sont différents,
les octets de données correspondant
sont différents.
Pour cela, il suffit de comparer les valeurs de
transcription des différents champs (
On appelle valeur de
transcription d'un champ la valeur commune des
octets de
données correspondant à un meme
champ. Cet valeur a été
mise de coté à la fin du test de
chaque champ, dans la table
DIFFERENT )
Donc si tous les octets de la table DIFFERENT
sont
différents les uns des autres, les
données pointées par
Adresse1 correspondent au message
recherché codé par
transcription. Sinon, il y a
incompatibilité.
NB : Les zones de données identiques
passent donc toujours
victorieusement
le premier test, et ne sont refusées
que par le
second, alors que des données quelconques
sont
généralement évincées dès le
début du premier
test. Ainsi
lorsque le système de recherche parcourt
une zone de
données identiques et que le temps de
recherche
augmente considérablement, ne vous affolez
pas, rien de
plus normal.
Pour ceux qui n'auraient pas tout compris, un
petit
organigramme pour tout éclaicir.
Si vous avez suivi ce qui
précède, vous avez remarqué qu'
il manquait un pointeur pour la table
DIFFERENT. Rajoutons
le. Plus un autre dont vous n'avez peut-etre
pas remarquer
l'absence. On obtient donc:
- Les pointeurs doubles Adresse1 et
Adresse2.
- Les pointeurs doubles Adresse3 et
Adresse4.
( La signification de ces pointeurs est
indiqué ci-dessus )
- Le pointeur double DIFFERENT, pointant
la table DIFFERENT
- Les pointeurs simples:
- PTRAIT, pointeur de
traitement.
- PDIFF, pointant le
prochain octet de DIFFERENT à uti-
liser.
- VALEUR, un pointeur de
service ou est mise de coté la
valeur de
transcription du champ en cours d'analyse.
( On peut se passer de Adresse3 en mettant
directement la
première valeur de Adresse1 dans
Adresse1. )
( SORTIE FINALE )
A
!
( Adresse1 <-- Adresse1+1 ) --->
** Adresse1 < Adresse4 **
A
!
!
!oui
! ( PTRAIT <-- 0 )
<------------=--- ( ENTREE PRINCIPALE )
! ( PDIFF <-- 0 )
! !
! V
! ( Y <--
PTRAIT )
! ( A <-- 'Adresse2',Y )
!
!
!
V
non
!
( Y <--
A ) <------ ** A =
$FF **-=
! ( VALEUR <-- 'Adresse1',Y
)
A oui!
!
!
! !
!
V ( PTRAIT
<-- PTRAIT+1 ) !
! ( PTRAIT <-- PTRAIT+1
) ( Y <--
PTRAIT ) !
! ( Y <--
PTRAIT ) ( A <--
'Adresse2',Y ) !
! ( A <-- 'Adresse2',Y
)
A
!
!
A
!
!
!
!
!
V oui
( Y <-- PDIFF
) !
! ! ** A =
$FF ** ---> ( 'DIFFERENT',Y
) !
!
!
!
( <-- VALEUR
) !
!
!
!non ( PDIFF
<-- PDIFF+1 ) !
!
!
V
!
! !
( Y <--
A
)
=-----------=
! ! ( A <--
'Adresse1',Y
)
!
!
!
!
!
! =---=
oui
!
!
!
!
V
!
=---- ** A = VALEUR
**
!
!
non
V
!
( PTRAIT <-- 0 )
!
!
!
V
!
( Y <-- PTRAIT ) <---=
!
! !
!
V !
!
( A <-- 'DIFFERENT',Y ) !
!
! !
!
oui
non
V !
=---- ** 'DIFFERENT',Y = A
** ----> ( Y <-- Y+1 ) !
!
A
! !
!
!
non
V !
!
=------------ ** Y = PDIFF **
!
!
!
!
!
V
!
!
( PTRAIT <-- PTRAIT+1 ) !
! ( Message
recherché
)
!
!
=-- ( trouvé à l'adresse
) oui
V non !
( de
'Adresse1' ) <- ** PTRAIT =
PDIFF ** ---=
On tire de l'organigramme suivant un exemple
assemblé, en
posant:
- Adresse1 en $18, $19
( $1000 par exemple )
- Adresse2 en $1A, $1B
( $980 dans l'exemple précédent )
- Adresse4 en $1C, $1D
( $2000 par exemple )
- DIFFERENT en $1E, $1F ( on
peut réutiliser $900 )
- PTRAIT en $06
- PDIFF en $07
- VALEUR en $08
Ce qui donne par
exemple: ( Assemblé en $300 )
1 LDA
#$00
300 : A9 00
STA
$06
85 06
STA
$07
85 07
LDY
$06
A4 06
LDA
($1A),Y
B1 1A
2
TAY
A8
LDA
($18),Y
B1 18
STA
$08
85 08
3 INC
$06
E6 06
LDY
$06
311 : A4 06
LDA
($1A),Y
B1 1A
CMP
#$FF
C9 FF
BNE
9
D0 40
LDY
$07
A4 07
LDA
$08
A5 08
STA
($1E),Y
91 1E
INC
$07
E6 07
INC
$06
321 : E6 06
LDY
$06
A4 06
LDA
($1A),Y
B1 1A
CMP
#$FF
C9 FF
BNE
2
D0 DF
LDA
#$00
A9 00
STA
$06
85 06
4 LDY
$06
A4 06
LDA
($1E),Y
331 : B1 1E
5
INY
C8
CPY
$07
C4 07
BEQ
8
F0 17
CMP
($1E),Y
D1 1E
BNE
5
D0 F7
6 INC
$18
E6 18
BNE
7
D0 02
INC
$19
340 : E6 19
7 LDA
$19
A5 19
CMP
$1D
C5 1D
BCC
1
90 B8
LDA
$18
A5 18
CMP
$1C
C5 1C
BCC
1
90 B2
RTS ( Sortie finale
) 60
8 INC
$06
E6 06
LDA
$06
351 : A5 06
CMP
$07
C5 07
BNE
4
D0 D8
BEQ
0
F0 09
9
TAY
A8
LDA
($18),Y
B1 18
CMP
$08
C5 08
BEQ
3
F0 AF
BNE
6
360 : D0 DA
0 LDA $19
)
Affichage
A5 19
JSR $FDDA
)
de
20 DA FD
LDA
$18 )
'Adresse1'
A5 18
JSR $FDDA
)
20 DA FD
LDA
#$A0
)
A9 A0
JSR $FBFD
)
20 FD FB
CLC
371 : 18
BCC
6
90 C8
( Programme 12 )
"A propos d'anstrom:" ( HN )
L'utilisation pratique de Anstrom pour le
système analogique
ressemble en tous points à celle du
système décodage
ADC-EOR. Je recite néanmoins dans
l'ordre toutes les opéra-
tions:
1 - Charger le Super Scanner en utilisant le
menu opplus.
2 - Sélectionner opplus actif.
3 - Sélectionner "Recherche" dans le
menu Disk.
4 - Sélectionner la nature du message
recherché:
-
Texte - Héxadéximal -
Bits séparés
5 - Sélectionner le mode de recherche
analogique.
6 - Sélectionner le Champ De Recherche
( CDR ):
- les 35 pistes: Toute
la disquette.
- Suite: Tout le reste
de la disquette à partir de celui
pointé par Piste/Secteur.
- Cdt: Sur une suite
définie de secteurs, par exemple un
fichier (
Il est d'abord nécessaire de définir le
fichier en
question par:
1 -
"Indication-création" dans cdt.
2 -
"Effacement".
3 -
"Cumul" ( Si besoin ).
4 -
"Certains fichiers".
5 -
Cliquer sur le ou les fichiers désirés
6 -
"Recherche" pour revenir au Super Scanner )
7 - Sélectionner le mode de renvoi:
- Ecran: pour avoir
directement le résultat en édition
- Cdt ou Cdt
opposé: pour établir dans le cdt la liste
des
secteurs contenant le message codé.
- Mixte: Les deux
précédents en meme temps.
8 - Cliquer dans le bas de l'écran pour
définir le message
recherché.
(Attention, dans ce mode les caches ne
fonctionnent plus.)
9 - Cliquer sur RECHERCHE pour débuter
la recherche.
Si un message correspondant est trouvé
et que le renvoi
est sur écran ou sur mixte, le
système tente de décoder
le message repéré grace à
une routine de décodage multiple
pouvant combiné tout les
mélanges de EOR, ADC et ROTATION
possible. Si cette tentative réussit,
le secteur édité est
décodé selon le code
trouvé, ce code étant affiché dans le
cadre réservé au code. Sinon le
secteur est édité comme il
a été lu, et toute tentative de
décodage par la commande
DECODAGE est alors inutile.
10 - Cont.Rech: pour reprendre
éventuellement la recherche.
NB: Attention, il est absolument capital de
taper le message
à rechercher le
plus parfaitement possible.
En effet, par exemple,
le message "the battle" au lieu
de "the Battle" sera
repéré sans problémes car il n'y
a qu'un seul "B". Pour
le système analogique peu importe
qu'il soit en
majuscule ou en minuscule. Car pour lui
les caractères
ne comptent que comme identiques ou dif-
férents des
autres caractères du message. Et le "b" à
ces niveaux-là
a les memes propriétés que le "B". Mais
attention, pour le
multi-décodeur, il est très important
de taper exactement le
message, sinon le code risque de
ne pas etre reconnu
car le multi-décodeur travaille avec
les valeurs exacts et
pour lui "b" différent de "B".
A BIENTOT POUR LE CHAPITRE DEUX, POUR L'ETUDE
DES CODAGES
EVOLUTIFS.
+-----------------------------------------------------------------------------+
! INDOOR SPORTS (C) 1987 BY
MINDSCAPE
DENY from the Highlanders !
+-----------------------------------------------------------------------------+
Salut mes chéri(e)s,
Voici, en dernière exclusivité, en clair et sans
décodeur, le déplombage du
tout dernier Mindscape, j'ai nommé : ' INDOOR SPORTS '
Tout de suite, et sans autre forme de procés, une page de pub,
comme dans tous
les bons fichiers text qui se respectent......
" Ce tres bo soft a été acheté grace
à la trés trés trés belle organisation
THE BLACK CHEST, fondée par LOOCKHEED....si vous désirez
de plus amples
renseignements sur THE BLACK CHEST et sur les types cools qui la
composent,
n'hésitez pas un instant : piquez le minitel de votre voisine,
et tapez
le code magique : ' 36-14 code : RTEL bal : LOOCKHEED '......vous ne le
regretterez pas...."
Avant de tout vous dire sur le déplombage de ce bo soft,
quelques mots sur
la protection :
Tout comme Balance of Power, édité également chez
Mindscape, la protection
consiste en un ProDos patched....revoici, en condensé ( comme le
lait ), les
grandes lignes du pourquoi du comment du ProDos patched version
Mindscape...
Le ProDos patched utilisé par Mindscape utilise les deux
schémas de protection
suivants :
1) Les tables de translation ( vous savez, celles qui servent à
convertir les
nibbles de la diskette en octets et vice et versa ) sont anormales...
Le résultat est que si on lit les secteurs de l'original avec
une table de
translation normale, les secteurs de celui-ci vont alors ressembler
à un trés
trés trés trés joli n'importe quoi..... ( pour de
plus amples renseignements
sur le très délicat sujet des tables de translation du
ProDos et du Dos 3.3,
reportez-vous à mon fichier sur Balance of Power et à
celui de Kristo sur
Infiltrator....)....
2) Il y a un nibble-count ( oui, je crois qu'on peut appeller ça
comme ça ), en
plein milieu du ProDos, qui teste la présence d'une chaine de
nibbles sur le
disk...si elle s'y trouve, c'est que la diskette est l'originale,
sinon, c'est
qu'il s'agit d'une infaaaaaaaame copie.......
Cette routine de nibble-count se trouve en $FF00 en carte langage (
C083 )...
Là encore, voyez mon fichier sur Balance of Power.....
Ces rappels étant effectués, voici le déplombage (
enfin ! ) de ce bo soft....
1) Bootez ' advanced demuffin 1.1 ', puis faites un exit to monitor :
de là,
tapez de vos doigts jaunis par la nicotine :
* BA96:3F
* BAFF:00
* 800G
Puis, convertissez les deux faces de l'original....Cette
étape permet de
recréer un schéma de translation normal sur
le disk....
Au fait, il est possible que les T$00 S$00 et S$0E ne
passent pas...
Ne vous inquiétez pas, c'est normal.....
2) Prenez un éditeur de secteur et recopiez :
T$00 S$00 de l'original ( face 1 ) sur T$00 S$00 de la copie ( face 1 )
S$0E
S$0E
S$0D
S$0D
S$0C
S$0C
Répétez la meme opération avec les
faces 2 de l'original et de la copie.
3) Toujours avec le meme éditeur de secteur, changez les octets
suivants sur
la copie face 1 :
T$00 S$0E octet $32 : 60
T$04 S$0B octet $96 : 00 ( was FC )
octet $FF : FC ( was 00 )
T$04 S$0A octet $03 : 96 ( was FF )
octet $FF : FF ( was 96 )
Ces modifications servent à remettre une table de
translation normale dans
le ProDos.....
4) Enfin, changez, toujours sur la face 1 de la copie :
T$01 S$0F octet $84 : 2C 0C FF ( was 20 00 FF )
On vient de remplacer le JSR à la routine de
vérif par une instruction qui
n'a aucune utilité ( BIT $FF0C ), mais qui permet
de parer à un éventuel
checksum de la mémoire, car équivalente au
JSR...( c'est pas trés clair, je
sais, mais je fais ce que je peux...)
------------------------
Et voilà, c'est fini, vous avez, comble de la joie dans les
chaumières, une
copie parfaitement déplombée de Indoor sports....chance
!!!!!
Pour finir, j'aimerais dédier ce bo fichier text à Anne,
qui illumine mes jours
et augmente mes factures de téléphone !!!!
' Bonne nuit les petits ', nous dit NouNours sur son nuage volant......
-------------------------------------------------------(k) 1988 by
DENY--------
===============================================================================
LOS ANGELES CRACKDOWN (c) EPYX
1988
(K) Max a gaZ DIJON
===============================================================================
Salut à tous,
Pour ceux qui ne me connaissent pas encore (y'en a ???) je
dirais simplement
que je déplombe depuis peu grace aux sages conseils de
Godfather...Comme Adam,
(qui avait fait 2 piti fichiers dans Dep.me 8) je tiens à
signaler que j'ai
débuté comme lui en ne connaissant que le basic et que
les cours de déplombe
du maitre m'ont aidé à m'ammener au niveau que j'ai
atteint.
Pour ceux qui ne connaissent pas les cours de GDF (y'en a
???), je dirais
simplement qu'il en a fait un sur la protection Epyx (un best seller,
je dois
l'avouer).
Pour ceux qui ne connaissent pas LA protection Epyx, je ne
puis que les
inviter à lire ce piti fichier...Allez, once l'anse:
On remarque tout d'abord que le programme ne passe
pas au Locksmith rapide.
Onsdi alors que c'est p'tèt ben un disk en format patched et
qu'ce s'rait p'tèt
ben une bonne idée de le convertir au format normal avec un Adv.
Demuffin par
exemple:
]CALL-151
*B942:18
*BRUN ADVANCED DEMUFFIN 1.1
On choisi l'option convert disk et c'est parti !!!
(On répète l'opération pour la face 2)
On lance la copie demuffin (au cas où la protection ne serait
qu'un simple
changement format...on peut toujours rèver !) qui charge trois
fois rien et
qui reboote sans arrèt...il y a donc une vérif au boot et
pour faire plaisir
à GDF, on va boot-tracer:
]CALL-151
*1600<C600.C700M ; On reloge le Boot 0 pour le
modifier.
*16F8:60
; On le modifie pour qu'il rende main.
*1600G
*C0E8
; Facultatif: stoppe le drive.
*801L
En explorant cette routine en 801, on s'aperçoit qu'en $84D on a
un
JMP $F000 alors qu'on devrait trouver un JMP $B700 sur un disk normal
(à peu
près au mème endroit) au format 3.3 et que sur les autres
Epyx sous 3.3 on
trouve un JMP $BB00 (mais vous vous en foutez surement car c'est pas ce
qui
nous intéresse).
On va donc continuer à boot tracer pour voir ce que cette
routine charge
en $F000:
*16F8:A9 60 8D 4D 8 4C 1 8 ; Pour que le prgm rende la main en
$8FD au lieu
*1600G
; d'aller voir en $F000 ce qui s'y passe...
En zieutant en $F000, on retrouve la vérif folle de la
désormais célèbre
Désynchro Epyx (je vais pas la détailler, reportez vous
au cracking des Epyx
dans Dep.me 8). Le principe de cette vérif c'est de rechercher 8
nibbles sur
le disk, que ces nibbles ne se trouvent que sur l'original, et qu'avec,
elle
va décoder une partie de la mémoire pour s'y rendre
aprés ce décodage.
La vérif a quelque peu changé par rapport à Rad
Warrior par exemple, mais pour
celui qui sait, c'est toujours la méme chose; ce qui a
changé:
- l'emplacement de la désynchro mais celà ne sert pas
à grand chose pour faire
sauter c'te vérif (pour les fouineurs, je dirais qu'elle
se trouve en piste
$20 sur le secteur $00, si je ne m'abuse)
- L'emplacement en mémoire où sont stockés les 8
nibbles: avant, ils étaient
mis de $F0 à $F7 et là ils se trouvent entre $F8
et $FF.
- L'ordre des nibbles stockés: on avait avant en $F0 - FC EE EE
FC E7 EE FC E7
et on a maintenant les mèmes mais dans le sens inverse en
$F8, à savoir:
$F8 - E7 FC EE E7 FC EE EE FC
- et enfin l'adresse à laquelle le programme se branche
après le décodage : au
lieu de $B700 comme toute RWTS 3.3 qui se respecte, on trouve un
JMP ($08FD)
mais avec EC00 en $08FD (JMP ($8FD) = JMP $EC00).
Pour faire sauter la vérif, il suffit donc de poker les bonnes
valeurs en
mémoire et de brancher tout de suite après le prgm sur
l'adresse de la routine
de décodage. On prend donc un bon éditeur de secteur,
Diskfixer 4.0 par exemple
ou mieux encore: Mobby disk II (faudrait vous y habituer car dans le
genre, on
ne fait pas mieux). On lit en piste $00 le secteur $05 et on inscrit
à partir
de l'octet $00:
A9
E7 85 F8 85 FB A9 FC
85
F9 85 FC 85 FF A9 EE
85
FA 85 FD 85 FE 4C 7C
F0
...et c'en est fini pour cet Epyx !!!
On peux cependant procéder d'une autre façon, qui demande
à en comprendre plus
dans la vérif mais qui présentera un léger gain de
vitesse et surtout un gain
de place sur le disk...
Quand on continue à explorer la vérif, on
s'aperçoit que la routine inscrit
$EC en $F1 et qu'ensuite elle décode deux pages mémoire
(2 * $FF) à partir de
$EC00 justement, avec deux des nibbles stockés en $F8. On va
donc recharger
Mobby disk II et décoder ces pages à la main (c'est
à dire 2 secteur).
On lit le secteur $01 de la piste $00, on tape + (Codage EOR) et FC
puis on
réécrit cette piste décodée au mème
endroit.
On passe ensuite au secteur suivant de la mème piste, à
savoir le $02 et on
EOR ce secteur avec la valeur E7 : on tape donc + suivit de E7 et on
réécrit
celà sur le disk.
Il nous reste ensuite à modifier le JMP $F000 (qui se trouve en
$8FD) en un
JMP $EC00; on se place donc sur le secteur $00 de la piste $00 et on
modifie
l'octect $4F en inscrivant à la place de F0 un EC.
comme ça, la vérif est neutralisée totalement et
il nous reste le secteur $05
de la piste $00 pour y faire ce qu'on veut puisque maintemant la
vérif ne
sert plus à rien.
Ainsi se termine ce crack sympa. Je profite que j'ai
encore la parole pour
vous parler un ch'ti peu d'une nouvelle saga de docs. Ca s'appelle DOX
A GAZ et
c'en est pour l'instant au numéro II dont la version 1.0 a
été terminée le 16
Aout. C'est super, tout est en français !! On trouve entre autre
dessus:
DOX A GAZ n°1: la doc complète de BARD'S
TALE II
DOX A GAZ n°2: les docs françaises de:
BOULDERDASH CST.KIT
WORLD CLASS LEADER BOARD
LEGACY OF THE ANCIENTS
et les codes de PIRATES !
DOX A GAZ n°3: (en préparation)
DECISION IN THE DESERT (c'est tout pour l'instant)
...alors à bientot dans DOX A GAZ !!!
Max A Gaz
==:=========================================================================:==
_____________________________________________________________________________
!
!
! Déplombage de "L.A. CRACKDOWN" par THE JOKERSOFT et LOOCKHEED
pour DEP.ME 9 !
!
---------------------------------------------------------------------------
!
! Un super fichier explicatif sur le comment du
pourquoi de ce plombage !
! Fait le 29/7/88 jour de l'achat du 14ème soft Black
Chest et de son crack !
!_________________________________________________________________________TJS_!
Ce soft comme beaucoup d'autres qui sont sortis récemment chez
EPYX, est
lisible au DISK MUNCHER et se convertit au format 3.3 avec ADVANCED
DEMUFFIN.
]BLOAD ADVANCED DEMUFFIN 1.1
;disponible dans toutes les bonnes crèmeries
]CALL-151
*B942:18 N
800G
; classique mais si efficace
>CONVERT
DISK
; Y(ES) si nécessaire
Et copiez les 2 faces en ayant pris soin auparavant d'avoir formatter
de votre
disk vierge.
Puis on boote-trace :
]CALL-151
*1600<C600.C6FFM
*16F8:60
*1600G
; reboot
*C0E8
; permet d'éteindre le lecteur
*801L
; examinons le BOOT0
en 807: JSR $861
et 861: AD 81 C0 AD 81 C0
... suite
88B: AD 83 C0 AD 83
C0 ; tiens on est
dans le bank2
891:
60
; on retourne en 80A
en 80A: suite
et 839: 6C 3E
00
; JMP ($003E) çà ressemble bcp à du boot 3.3
On continue notre listage et on touve le saut fatidique :
84D: 4C 00
F0
; JMP $F000 en plein dans le bank
Mais qu'il y a t'il en $F000?
On reboot le soft puis 2 secondes après le boot on fait
ctrl-pomme-reset puis
très rapidement ctrl-reset, puis :
]CALL-151
*300:AD 83 C0 AD 83 C0 A0 00 B9 00 F0 99 00 20 C8 D0 F7 EE 0A 03 EE 0D
03
AD 0D 03 C9 21 D0 E8 AD 81 C0 AD 81 C0 60
*300G
C'est-à-dire une super routine de move $F000 (bank) en $2000
(ram normale).
*2000L
2000- A9 00
LDA #$00 ; début de la
routine (avant en $F000)
2002- 8D 78 04 STA $0478
2005- A9 40
LDA #$40
....
200E- 85 FC
STA $FC ; mais que stocke
t'il en page zéro?
....
201A- 85 FD
STA $FD ; mais c'est dingue
çà!!!
....
202B- A0 00
LDY #$00 ; on saute de joie, c'est
la verif'
202D- BD 8C C0 LDA $C08C,X
2030- 10 FB
BPL $202D
....
2043- C9 E7
CMP #$E7 ; vous avez dit bizarre!
....
204C- C9 E7
CMP #$E7 ; comme c'est bizarre!
....
2055- C9 E7
CMP #$E7 ; vous avez dit
étrange!
....
2068- C9 EE
CMP #$EE ; comme c'est
étrange!
....
2075- 99 00 00 STA
$0000,Y ; on tiens presque le bout
....
207A- 30 F4
BMI $2070 ; fin de la vérif'
207C- A9 00
LDA #$00 ; routine qui
décode les EOR #
207E-
A8 TAY
207F- 85 F0
STA $F0 ; encore dans la page
zéro
....
208E: 6C FD 08 JMP
($08FD) ; ca ressemble toujours à un boot 3.3
On décide alors de regarder ce qu'il y a dans la page
zéro :
*F0.FF
*F0- 00 EE 00 00 D5 AA 96 DE
*F8- E7 FC EE E7 FC EE EE FC
A l'aide de DISKFIXER V4.0 (et surtout pas MOBBY DISK II) on rentre la
routine
suivante :
P$00, S$05 (c'est-à-dire ORG$F000), O$2B :
A9 FC 85 F9 85 FC 85 FF A9 EE 85 FA 85 FD 85 FE A9 E7 85 F8 85 FB 4C 7C
F0
On met les EOR # :
- FC dans F9, FC, FF,
- EE dans FA, FD, FE,
- E7 dans F8, FB
Puis on saute à la routine qui décode ces EOR #, en $F07C.
Le prg sauve des parties sur le disk (en piste $0F), mais il a une RWTS
classique, on pourra d'ailleurs repérer les headers avec Nibbles
Away :
D5 AA 96 DE AA EB D5 AA AD.
Pour finir, je peux vous dire qu'il y a un catalog sur le disk mais il
ne sert
à rien, peut-etre a t'il été oublié par les
programmeurs!!!
_______________________________________IT'S ANOTHER CRACK FROM THE
BRAIN TRUST
____________________________________________________________________________
!
!
! Toutes les news en
attente...
!
!
!
!_The_Brain_Trust_:_NEWS_(_ENTERTAINMENT_+_EDUCATIONAL_)____________30/07/88_!
- Bad Street Brawler (Mindscape)
- Bismarck (Datasoft)
- Blackjack Academy (Activision)
- Card Sharks (Accolade)
- Computer Statis Pro Baseball (Avalon Hill)
- Crosscheck (Datasoft)
- Crosscheck Data Disks (Datasoft)
- Create A Calendar
(Epyx)
(g: on a déjà ma poule!)
- Deflexor (Epyx)
- Dive Bomber (Epyx)
- Firepower (Activision)
- Full Count Baseball (Lance Haffner Games)
- Graphics Scrapbook Chapter 1 : Sports (Epyx)
- Graphics Scrapbook Chapter 2 : Off the Wall (Epyx)
- Graphics Scrapbook Chapter 3 : School (Epyx)
- Homecourt (Origin Systems, Inc.)
- Home Video Producer (Epyx)
- Howard the Duck (Activision)
- Impossible Mission II (Epyx)
- It's Only Rock and Roll or Hot and Cool Jazz (EOA)
- Mind Mirror
(EOA)
(g: on a déja!)
- Mind Pursuit (Datasoft)
- Mother Goose (Sierra On-Line)
- Omnicron Conspiracy (Epyx)
- Periscope (Action Software)
- Rampage (Activision)
- Software Golden Oldies
(EOA)
(g: nul!.. des reprises)
- Space Rogue (Origin Systems, Inc.)
- Spiderbot (Epyx)
- Sporting News Baseball (Epyx)
- Statmanager (Software Simulations)
- Star Rank Boxing II (Gamestar)
- Sticker Maker (Epyx)
- Street Sports Soccer (Epyx)
- Tank Battle Simulator (Epyx)
- The Games : Winter Edition (Epyx)
- The Sporting News Baseball (Epyx)
- Ticket to London, Paris, Spain, or Washington D.C. (Bullseye)
- The Last Ninja (Activision)
- Uridium (Mindscpe)
- VCR Workshop (Epyx)
- Video Title Shop Graphics Companion (Datasoft)
Soit 18 Epyx, 5 Activision et Datasoft, 3 EOA et Mindscape, 2 Origin,
etc...
et quelques 9 Sierra On Line dont j'ai pas mis tous les titres ici.
The Brain Trust feat. Captain Crack, Copperfield, Loockheed, and The
JokerSoft
_______________________________________________________________________________
ATTENTION : VOICI LE REGLEMENT DU NOUVEAU BLACK CHEST
!!!!!
___________________________________________________________
Salut les sganophar-vulkanostatiks !
En ce moment tout bouge dans
le monde de la micro-informatique!
Preuves :
Loockheed et le brain trust
m'ont volé le black chest, dont je suis
le créateur seul et
unique - c'était il y a plus d'un an maintenant -
Ils sont en train d'insulter
tout le monde sans exception dans leur dos
ou en public, ils croient
avoir des amis partout alors qu'ils n'en ont
nulle part, ils croient..
ils pensent.. et ils se trompent..
et today, je lance un
nouveau Black Chest.. c'est normal.
et meilleur que le leur,
c'est la moindre des choses.
Le principe est le suivant :
Plutot que d'acheter un soft
GRACE A VOUS, de le déplomber GRACE A VOUS
et de le signer de mon
pseudo mégalo GRACE A VOUS, je me suis dit qu'il
serait plus normal de
l'acheter POUR VOUS, de VOUS le faire déplomber
en VOUS AIDANT quand il le
faut, et enfin de VOUS le faire signer,
en vous aidant encore si
necessaire.
C'est pas plus logique ?
Ainsi, vous mettriez 40
Francs (c'est la somme retenue, mais plus vous
mettrez, plus on s'envelera
bien sur!, et plus on vous aimera.)
dans un soft, on l'achete,
on vous en poste une copie plombée, avec
une aide technique
très précise pour que vous le déplombiez vous-memes
avec tous les utilitaires
souvent inédits et necessaire à cela,
on vous dit aussi comment le
signer, on peut meme inclure au boot une
image ou tout ce que vous
voudrez, POUR VOUS !!!
Le reste est le principe
bete d'une coopérative d'achat comme vous les
connaissez maintenant sur
Apple II... et pour l'instant, not IIgs.
J'ai dit pour l'instant...
Bref, j'en avais
déjà prévenu certains et puis j'ai avancé
du fric,
et participé
moi-meme, pour acheter LE dernier Epyx, à savoir :
STREET SPORT SOCCER (c) Epyx 1989
Pour nous aider à le
financer après coup, ET pour participer au
prochain, pensez-y, vous
pouvez nous poster, à l'adr. suivante,
votre reglement plus cinq
disks qu'on arrivera bien à remplir de
trucs cheese inédits,
ainsi donc que de ce méga jeu de cours de
récréation
very sympa !.. sérieux.
Les explications pour que
VOUS le déplombiez et le signiez sont déjà
rédigées, et
pretes à partir.. et pour le moment, nous sommes les seuls
à l'avoir dans ce
beau pays. VOUS pouvez le déplomber avant tout le
monde, but faites vite !.
Merci.. Merci de nous aider
! Et de nous faire connaitre.
Ca vaut le coup
!
___________________________________
!
!
! Contactez moi en 3615 code RTEL !
! Bal
GODFATHER
!
!
!
! Et laissez moi votre adresse, !
! Pour que tout vole
!
!
!___________________________________!