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 Claas Abraham
(Article écrit par Xavier Leclercq et extrait d'A-News (Amiga News) - avril 1990)
|
|
Ce virus ne se dévoilera pas (rien à voir avec le voile islamique) d'une manière visuelle (rien à voir avec l'Abra
le seul virus en mode HAM ?). Le seul moyen de le repérer serait de s'étonner d'une erreur de lecture/écriture
qui peut survenir sans aucune raison logique.
Je vais vous en expliquer la cause. Je tiens d'abord à signaler que ce virus fonctionne parfaitement avec
la ROM 1.2, la 1.3 et fonctionnera sans doute également sous une future ROM 1.4. Ce n'est pas le cas de tous
les virus dont certains effectuent des appels en ROM pour une version spécifique (IRQ Team, GX.TEAM, DASA, etc.).
Points communs avec le Lamer Exterminator
Les points communs du virus Abraham avec le Lamer Exterminator
(pour les trois premières versions) sont troublants.
Le codage est réalisé d'une manière identique. La clé de codage provient de la position du faisceau d'électrons balayant
votre écran cathodique (move.b $dff006,(Clé)). De ce fait, un nombre est généré au hasard et servira de
clé de codage à chaque reproduction du virus. L'aspect de ce dernier change donc à chaque nouvelle génération.
Si un antivirus ne tient pas compte du codage, il n'y a pas moyen de repérer une nouvelle génération. De plus,
un repérage visuel ("ASCII dump") devient pratiquement impossible. Sauver le bloc d'amorce
pour le sauvegarder dans une bibliothèque ne sert à rien, car il y aura dans ce cas autant de versions
différentes du virus que de mutants... C'est parce que le message signalant leur identité nuisible
est codé que des noms étranges sont attribués à certains microbes. On appelle "DASA" le "Mighty Byte Warrior",
"DASA" étant le seul mot lisible par un débutant qui tente de visualiser le bloc d'amorce
en ASCII. Pour une raison inconnue d'autres nomment l'Abraham le MCA Virus.
L'autre point commun avec le "Lamer Exterminator" est que, comme ce dernier, l'Abraham formatera une piste de
votre disquette. Cette piste est la 40e et le formatage est déclenché par un compteur de reproduction.
Le compteur dépassant $f est remis à zéro et sera le signal de l'écriture sur cette 40e piste qui n'est
rien d'autre que le bloc contenant le répertoire racine (root). Diskdoctor pourra recalculer les sommes
de contrôle et reconstruire le répertoire mais un fichier occupant un ou plusieurs secteurs de la piste
40 risque bien de ne pas s'en remettre. En d'autres mots, il sera perdu !
Encore heureux que Diskdoctor puisse reconstruire le répertoire facilement. Sur d'autres bécanes comme le PC,
il aurait fallu jouer avec les moniteurs de disquettes. L'Amiga avec son système plus lent conserve quelques
avantages... c'était l'occasion d'en mettre un en relief.
Abraham, différents des autres virus
Ce qui différencie l'Abraham des autres virus de sa génération c'est l'utilisation d'un serveur d'interruption
pour à intervalles régulier (à chaque interruption) réinitialiser les vecteurs stratégiques qui permettent de
le maintenir en vie lors d'une réinitialisation. Cela signifie que si l'on ne tient pas compte de cette interruption,
il est impossible de se débarrasser du virus !
Certains "protecteurs" de virus restent donc impuissants face à ce genre de protection. En effet, ils peuvent détecter
que des vecteurs comme CoolCapture,DoIO... sont déviés et croient qu'il suffit de remettre les décalages d'appels de
la ROM pour éliminer le microbe. Erreur ! L'interruption est toujours "virussée" et dans la micro-seconde qui suit
elle remettra les vecteurs en place. Vraiment une micro-seconde ? Non, car il ne s'agit pas d'une interruption régulière
comme l'interruption IRQ cadencée à une fréquence fixe. Cette classe d'interruption est de "niveau deux".
Il s'agit de la classe d'interruptions du premier CIA qui dirige aussi la gérance des unités de disquettes.
Démonstration
Une démonstration : c'est ultra-simple.
Si "NewInterrupt" modifie les registres (ce qui n'est pas le cas ici) vous ne devez pas oublier de sauver
les registres sur la pile afin de récupérer les valeurs en fin de routine (comme le virus). Conclusion :
l'interruption ne se manifeste que lors d'un accès au disque... Le danger est comme je l'ai expliqué de
ne pas en tenir compte (si l'on se veut un protecteur de virus) dans le bloc d'amorce ; car une fois que
la main est rendue à la routine ROM, cette dernière va générer une "interrupt" de niveau deux et donc
l'Abraham ressuscitera (sans jeu de mots) sans y avoir été invité !
|