Was ist Selbstverlagerung?
Selbstverlagerung ist Eigentum einer sehr geringen Anzahl von Computerprogrammen. Diese Programme können während der Ausführung ihre Position im Speicher ändern. Die meisten Programme haben kaum oder gar keine Kontrolle über ihre eigene Basisprogrammierung. Stattdessen wird dies von Programmen höherer Ordnung erledigt. Diese Systeme können ihren Standort ändern, indem sie entweder ihre Programmierung verschieben oder eine Kopie von sich selbst erstellen. Wenn eine Kopie erstellt wird, wechselt der Ausführungsort normalerweise zum neuen Programm, und der alte Code bleibt inaktiv.
In den meisten Fällen befindet sich ein ausführendes Computerprogramm gleichzeitig in zwei Bereichen. Es befindet sich im physischen Speicher des Computers, z. B. auf einer Festplatte oder einer anderen Speichereinheit, und im flüchtigen Speicher. Das Programm wird bei der Ausführung in den flüchtigen Speicher verschoben, um die Zugriffszeit zu verkürzen und die Arbeit zu beschleunigen. Die Position an beiden Standorten wird im Allgemeinen vom Betriebssystem des Computers bestimmt.
Die Speicherorte dieser Programme werden als Adressen bezeichnet. Diese Adressen werden vom System und anderen Programmen verwendet, um bei Bedarf schnell ein Programm zu finden. Wenn ein Programm im Speicher unterbrochen wird, wird es langsamer ausgeführt als wenn es alle zusammen sind. Daher versuchen die meisten Systeme, größere Programme über sequentielle Adressen zu speichern. Auch hier liegt die Entscheidung in der Regel beim Betriebssystem, und das Programm hat keine direkte Kontrolle darüber.
Wenn ein Programm die Selbstverlagerung verwendet, hat es wesentlich mehr Kontrolle über diese Prozesse als typische Programme. Es kann die Adressen steuern, an denen es ausgeführt wird. Während der Verwendung kann das Programm seine gesamte Programmierung von dem Ort, an dem es sich befindet, an einen anderen Ort im Speicher desselben Computers verschieben. Einige Programme können nur eine der beiden Adressen ändern, während andere beide ändern können.
Selbstverlagerung ist an sich ein ungewöhnlicher, aber kein problematischer Prozess. Die wahre Gefahr besteht, wenn die Selbstverlagerung zusammen mit böswilligen Absichten angewendet wird. Es ist möglich, dass ein Programm eine große Anzahl unerwarteter Dinge ausführt, wenn es die Kontrolle über sich selbst hat. Es können zahlreiche physische oder flüchtige Kopien erstellt werden, um den Arbeitsspeicher eines Computers zu verstopfen. Dies kann einen Neustart verursachen und ein Vorläufer eines Startangriffs sein.
Darüber hinaus kann das Programm Backups von sich selbst erstellen, um das Entfernen zu verhindern. Wenn ein Programm mit Selbstverlagerung ausgeführt wird und sich dann selbst kopiert, bleibt das ursprüngliche Programm bestehen, auch wenn es nicht verwendet wird. Wenn das Programm bösartig ist und das System versucht, es zu entfernen, kann das aktive Programm den ursprünglichen Code einfach wieder aktivieren, bevor er entfernt wird.