Qu'est-ce que l'auto-relocalisation?
L'auto-relocalisation est la propriété d'un très petit nombre de programmes informatiques. Ces programmes peuvent modifier leurs emplacements en mémoire lors de l'exécution. La plupart des programmes n’ont pratiquement aucun contrôle sur leurs propres programmes de base; à la place, cela est géré par des programmes d'ordre supérieur. Ces systèmes peuvent changer d’emplacement en déplaçant leur programmation ou en créant une copie d’eux-mêmes. Lorsqu'une copie est faite, l'emplacement d'exécution passe généralement au nouveau programme et l'ancien code est laissé en veille.
Dans la plupart des cas, un programme informatique en cours d'exécution est situé dans deux zones simultanément. Il se trouve dans la mémoire physique de l'ordinateur, comme un disque dur ou une autre unité de stockage, et dans la mémoire volatile. Le programme est déplacé dans la mémoire volatile à l'exécution afin d'accélérer le temps d'accès et de le rendre plus rapide. Sa position dans ces deux emplacements est généralement déterminée par le système d'exploitation de l'ordinateur.
Les emplacements de ces programmes s'appellent des adresses. Ces adresses sont utilisées par le système et d’autres programmes pour trouver rapidement un programme en cas de besoin. Si un programme est divisé en mémoire, il fonctionnera plus lentement que s'il était tout à la fois. par conséquent, la plupart des systèmes tentent de stocker des programmes plus volumineux sur des adresses séquentielles. Encore une fois, le choix de le faire incombe généralement au système d’exploitation et le programme n’a aucun contrôle direct sur celui-ci.
Lorsqu'un programme utilise l'auto-relocalisation, il a beaucoup plus de contrôle sur ces processus que les programmes classiques. Il a la capacité de contrôler les adresses auxquelles il s'exécute. Pendant son utilisation, le programme peut déplacer toute sa programmation de son emplacement actuel vers un autre emplacement de la mémoire du même ordinateur. Certains programmes ne peuvent changer que l'une des deux adresses, alors que d'autres peuvent changer les deux.
L'auto-relocalisation est en soi un processus peu commun, mais pas problématique. Le véritable danger survient lorsque l'auto-relocalisation est utilisée avec une intention malveillante. Un programme peut faire un grand nombre de choses inattendues lorsqu'il a le contrôle de lui-même. Il peut créer de nombreuses copies physiques ou volatiles afin d’obstruer la mémoire d’un ordinateur. Cela peut provoquer un redémarrage et peut être un précurseur d'une attaque de démarrage.
En outre, le programme peut effectuer des sauvegardes de lui-même pour empêcher sa suppression. Si un programme avec auto-relocalisation devait s'exécuter puis se copier, le programme d'origine existera toujours, même s'il n'est pas utilisé. Si le programme est malveillant et que le système tente de le supprimer, le programme actif peut simplement réactiver le code d'origine avant sa suppression.