lundi 27 août 2012

Virus infecteur de programme écrit en langage de haut niveau



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