Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Dossier : Le virus Return Of The Lamer Exterminator
(Article écrit par Xavier Leclerq et extrait d'Amiga News - mars 1991)
|
|
Une page de l'histoire des fléaux informatiques vient encore d'être tournée. Les qualificatifs
que je vais employer pour décrire le Return Of The Lamer Exterminator (déjà tout un programme en
traduisant simplement le nom : "le retour de l'exterminateur de débutant") traduit tout mon désarroi :
très dangereux, peu commun, discret, très virulent... En un mot, ce microbe est révolutionnaire et
il risque de porter un coup à la réputation de la machine.
Hiérarchie dans les méfaits
Le seul fait d'insérer une disquette infectée dans un lecteur activera le virus en mémoire !
Les nostalgiques des pokes et peeks (d'époque épique) regretteront le temps où seul le virus
by SCA se répandait autour de la planète.
Pour être actif en mémoire, un virus sous n'importe quelle forme doit être "lancé" d'une manière ou d'une autre :
- Il peut par exemple être activé lors du chargement du bloc d'amorce (SCA et virus de première génération).
- Il existe également des fichiers vérolés qui modifient la startup-sequence pour pouvoir être rendu actif dès
l'exécution de cette dernière (BGS9 et virus de deuxième génération) ou par le simple fait d'exécuter le fichier
infecté (XENO).
- Enfin, il existe aujourd'hui une troisième voie seulement utilisée actuellement par le Return Of The Lamer Exterminator.
Beaucoup plus complexe que les deux autres mais possédant un avantage énorme : plus besoin de démarrer
sur une disquette pour que le virus soit rendu actif. Le simple fait d'insérer la disquette provoquera son activation !
Donc l'utilisateur ne lançant jamais des disquettes étrangères et utilisant toujours son disque dur pour démarrer
n'est plus à l'abri et peut désormais, lui aussi, redouter d'être infecté par un virus de cette troisième génération.
Un exemple concret : vous avez des copies de Fred Fish à faire et vous utilisez un copieur qui respecte le multitâche.
C'est cuit ! Si la disquette numéro "x" est insérée et contient le Return Of The Lamer Exterminator, celui-ci se
nichera automatiquement en mémoire en créant des erreurs de lecture/écriture sur les autres disquettes insérées pour
la copie ! Le Diskcopy du Workbench et pas mal d'autres copieurs sont donc maintenant à bannir.
Astucieux
Mais comment est-ce possible, allez-vous me demander ? C'est très astucieux. Le virus se place dans le répertoire
"L:" sous le nom du "disk-validator" avec le taille du disk-validator, c'est-à-dire 1848 octets.
Il est bien entendu codé (procédé aléatoire).
Suivons pas à pas sa manière de procéder pour véroler d'autres disquettes. Si une disquette est insérée dans un
lecteur, AmigaOS lira le bloc d'amorce (secteur 0) et le bloc racine (répertoire en secteur 880 = $370 pour
les disquettes) automatiquement. Le virus qui dévie le "BeginIo" du trackdisk.device intercepte les commandes
de lecture (CMD_READ) et d'écriture (CMD_WRITE) et réagira suivant le schéma suivant :
Commande |
Protection en écriture |
Secteur 0 |
Secteur 880 |
Actions |
CMD_READ |
Oui |
Oui |
Non |
(1) |
CMD_WRITE |
Oui/Non |
Oui |
Non |
(1) |
CMD_READ |
Non |
Oui |
Non |
(2) |
CMD_READ |
Oui/Non |
Non |
Oui |
(3) |
CMD_WRITE |
Non/(Oui) |
Non |
Oui |
(4) |
(1) Lit/écrit normalement le secteur.
(2) Si déjà trois changements de disquettes, écriture d'un secteur au hasard qui contiendra le message
"LAMER!!!" x fois. Le secteur est perdu et cela provoquera un message du type "read/write error".
Le virus après écriture de ce secteur ira lire normalement le bloc d'amorce = (1).
(3) L'Emflag (décalage 312) qui détermine la validité du "bitmap" sera mis à True
($FF.1). Donc même si le bitmap est invalide, le virus fait croire à AmigaOS qu'elle est valide.
(4) Tentative d'écriture de la piste 40. Dans ce cas, le bitmap écrit est de type "Invalid" False. ($00.1).
Si on écrit/efface/déplace des fichiers d'une disquette insérée dans un lecteur, cela provoquera l'écriture d'un
nouveau bitmap (qui alloue/libère le nombre de secteurs réservés pour les fichiers) et donc immédiatement
ce bitmap sera rendu de type "Invalid" par le virus et ceci sans que vous puissiez vous en rendre compte.
En effet, une relecture du nouveau bitmap le rendra à nouveau valide par le virus (opération (3)).
Le virus dévie un vecteur du console.device et s'en sert comme interruption en décrémentant un compteur qui,
lorsqu'il arrive à zéro, provoque le formatage complet de n'importe quelle disquette déprotégée présente
dans n'importe quel lecteur (et effectue une réinitialisation après avoir affiché un message qui trahit son identité).
Le virus ne se reproduit qu'à la réinitialisation (ouf !) mais, malheureusement, BeginIo est dévié dès l'insertion
d'une disquette dans un lecteur, et donc les erreurs de lecture/écriture intempestives et le formatage complet
de la disquette peuvent toujours avoir lieu avant une éventuelle reproduction !
L'interruption "raster" supervise l'Amiga en empêchant toute tentative de modification du KickTagPtr.
Le virus, s'il est capable de s'installer sur le disque dur, n'a pas été programmé dans ce but.
Le trackdisk.device est utilisé par les unités de disquettes et donc le disque dur n'a pas à craindre
d'éventuelles erreurs de lecture/écriture, ni même un formatage. De plus, le bitmap d'un disque dur
ne se retrouvera pas à la même place que celui destiné aux disquettes. Donc le risque est que le virus
se charge en mémoire pour formater et provoquer des erreurs de lecture/écriture et infecté des disquettes
seulement (le "seulement" est là pour combler des blancs dans la phrase...).
La phase reproduction
L'ordre "Read" de la bibliothèque "Dos_Interne" (utilisée par les ordres CLI/Shell) est déviée à la
réinitialisation. Deux cas sont alors possibles. Le premier cas est celui où la disquette est déprotêgée,
validée et non infectée. Une tentative de lecture d'un fichier (startup-sequence) utilisera la fonction
"Read" et donc le virus prendra le contrôle et chargera le disk-validator s'il existe, sinon il y aura
une tentative de création du L:, et dans tous les cas création du disk-validator, c'est-à-dire construction
du virus. Mais comme il y a écriture d'un fichier le bitmap est modifié et, par conséquent, rendu "Invalid"
par le virus. La fonction "Read" est remise à sa valeur initiale (le virus ne peut donc se reproduire qu'à
la réinitialisation). Le deuxième cas est celui d'un disque vérolé ou protégé en écriture : le
Return Of The Lamer le constatera et rien ne se produira.
A l'insertion d'une disquette dans le lecteur (sans présence du virus en mémoire ; et si évidemment le disque
est infecté) : la disquette insérée a un bitmap d'un type "Invalid" (False = $00.1) et donc AmigaOS
va essayer pour y remédier de charger le disk-validator du disque... Le vrai virus et donc le faux
disk-validator sera exécuté. Le virus est maintenant en mémoire ! Durant toute la durée de son activité,
le virus "tue" les messages qui pourraient être affichés par AmigaOS (du style le disque n'est pas validé)
et donc toutes les opérations restent d'une discrétion absolue...
L'auteur du Return Of The Lamer Exterminator est à enfermer s'il s'agit de la même personne qui a programmé les sept
clones du Lamer Exterminator et le Revenge Of The Lamer Exterminator.
Pourtant, il s'agit de quelqu'un qui possède de sérieuses connaissances de la programmation système
et qui donc pourrait rendre de grands services à l'Amiga en essayant, de part des utilitaires divers,
d'améliorer le CLI, le Shell, le Workbench...
Le Return Of The Lamer Exterminator est encore assez bénin par rapport à une version qui aurait pu formater
le disque dur, ou infecter une disquette à chaque insertion dans un lecteur, au lieu d'une reproduction à
chaque réinitialisation. Mais le Lamer Exterminator a produit sept émules et le pire est peut-être encore
à venir. Quoi qu'il en soit, c'est bien dommage pour la machine...
|