Multi codeur * Amstar & cpc 40 - decembre 1989
------------
Herve Monchatre
Multi codeur 1.0 est un programme qui permet de coder des fichiers BINAIRES
tres simplement. Ceux-ci occupant la ram BASIC (entre &0040 et &A67B), le
programme est integralement loge en memoire video. Le but de ce programme
est d'empecher un utilisateur de bricoler vos programmes... Une fois code,
le programme reste utilisable, car Multi codeur y rajoute une routine de
decodage automatique.
Nous allons etudier succintement dans un premier temps les methodes de
codage et leur emploi, puis nous passerons au maniement proprement dit du
logiciel.
LES TECHNIQUES DE CODAGE
------------------------
Avant toute chose, autant vous prevenir tout de suite, ces codages ne
protegeront pas vos creations contre les deplombeurs. Cela compliquera un
peu leur travail mais c'est tout. Par contre, ils se reveleront efficace
contre les fanas de l'editeur de secteurs, qui changent par exemple les noms
des auteurs de programmes plus vite que leur ombre et qui, bien souvent, ne
savent faire que cela.
* le codage XOR
C'est le codage classique par excellence. Il utilise l'instruction assembleur
XOR, qui remplit la meme fonction qu'en Basic (vous referer au guide utilisateur
du cpc pour les details). La routine de decodage peut s'implanter soit au
dessous, soit au dessus du programme binaire, ce qui est tres utile pour coder
des fichiers compactes, avec Zenith par exemple, et dont le code commence "en
bas" de la RAM Basic (&0040).
* Le codage ZENITH
Il s'agit d'un codage tout bete, mais qui presente la particularite de ne pas
allonger le fichier que l'on veut compacter par la suite. N'etant pas
circulaire, les suites d'octets de meme valeur sont preservees, leur compactage
est donc possible. La routine de decodage peut s'implanter au dessus ou au
dessous du programme a coder.
Note T&J : Hop, apres etude de la routine, il s'avere que la routine de decodage
est un peu particuliere, car son code s'automodifie. Rien de tres complexe, mais
ca peut perturber...
* Le codage OVERCODE
Ce type de codage est un peu plus evolue, en ce sens qu'il se code sur lui
meme. Si l'on essaie de modifier la routine implante dans le programme code,
le decodage sera errone, et il y aura des risques de plantage du programme !
Il est recommande de l'utiliser plusieurs fois de suite, pour etre sur qu'une
tentative de decodage manquee se traduira par un plantage du fichier protege.
Attention ! Le decodeur ne s'implante qu'en dessous du fichier code.
* Le codage SP
Ce type de codage utilise la pile pour se decoder. Il se contente d'inverser
les octets du programme deux a deux, ce qui donne des effets tres
interessants lorsque l'on code un programme de pur code machine, sans message
ASCII. Pourquoi ? Eh bien, parce qu'il ne rend par le code machine totalement
incoherent, comme les autres methodes de codage. Un exemple :
On considere la suite d'octets F3,CD,18,E5, ce qui correspond en assembleur a :
DI
CALL &E518
Apres codage, on obtiendra la suite CD,F3,E5,18, ce qui donnera, toujours en
assembleur :
CALL &E5F3
JR xx (argh, carrement une erreur dans la doc originale)
UTILISER LE LOGICIEL
--------------------
Apres avoir tape les fichiers MULTI.BAS et MULTI.DAT, et apres avoir lance
MULTI.DAT, qui va creer un fichier MULTI.BIN, lancer le programme en "runnant"
MULTI.BAS.
Si tout se passe bien, vous devriez avoir sur l'ecran le menu de Multi-codeur
1.00 avec les differents types de codage disponibles.
Une fois celui-ci choisi, le programme va vous demander d'inserer une disquette
dans le lecteur, affichera le catalogue, et vous demandera le nom du fichier a
traiter.
Attention ! Le systeme de saisie du nom du fichier est un peu special. Toutes
les touches susceptibles de planter l'ordinateur (nom de fichier errone) ont
ete gelees. Le programme va d'abord vous demander le nom du fichier, puis son
extension. Pour les valider, appuyez sur la touche <ESPACE>.
Ensuite, Multi-codeur va charger le fichier. Si celui-ci est trop long ou ne
peut etre code avec le systeme de codage choisi, il vous le dira. Le programme
est code, puis apres confirmation, sauvegarde.
Pour une efficacite maximale, il est recommande de panacher les codages.
Note de T&J le 18/11/99 !
Bon, ce programme represente une sorte de brouillon de Multi codeur 2. Les
routines de codage ne sont pas extraordinaires, mais fonctionnent ! Il est
important de noter que l'integralite du programme est code par chaque routine.
Il ne faut donc pas coder trop de fois un programme, car un decodage prend du
temps... Derniere remarque, Multi codeur ne gere par le lecteur B:.