1.1.
Principe
Il est possible d’écrire des virus en se
servant des instructions du langage RPL. Le virus très simple qui va être
décrit ci après utilise deux instructions propre au RPL, qui sont ‘->str’ et
‘obj->’. L’instruction ‘->str’ convertit tout objet de la HP48 en une
chaîne de caractères (objet string) qui est celle qu’aurait affiché l’éditeur
de la HP48 en éditant cet objet. L’instruction ‘obj->’ joue ici le rôle
inverse de ‘->str’. Il est donc possible, en particulier, de transformer un
programme en chaîne de caractères, de modifier cette chaîne en lui accolant la
chaîne du programme du virus, puis de re-transformer le tout en programme. On a
ainsi un virus infecteur de fichiers programmes. Nous baptiserons ce virus
Lapin, car il se reproduit bêtement sans prendre aucune précaution. Son
organigramme est indiqué en figure 2.
1.2.
Le virus détaillé
1.2.1.
Boucle de recherche d’un
fichier à infecter
Lapin est
programmé pour chercher des objets de type programme en parcourant de manière
aléatoire l’arborescence des répertoires. Il réalise cela dans la boucle While repeat
end ci
dessous :
while
vars dup size rand * ceil get dup vtype 15 + ==
repeat
dup eval swap +
end
Plus
précisément, ‘vars dup size * ceil
get’ prend un
objet au hasard dans la liste des variables du répertoire courant, donnée par
vars. Puis ‘dup vtype 15 + ==’ teste si le type de cet
objet vaux 15, auquel cas il s’agit d’un répertoire et on l’ouvre par ‘dup eval’. ‘swap +’ sert à mémoriser le
parcours effectué dans l’arborescence, de façon à pouvoir revenir au répertoire
d’origine.

Aucun commentaire:
Enregistrer un commentaire