Hvad er selvflytning?
Selvudflytning er ejendom, som et meget lille antal computerprogrammer besidder. Disse programmer kan ændre deres placeringer i hukommelsen, mens de udføres. De fleste programmer har ringe eller ingen kontrol over deres egen baseprogrammering; i stedet håndteres det af højere ordre-programmer. Disse systemer kan ændre deres placering ved enten at flytte deres programmering eller ved at oprette en kopi af sig selv. Når der laves en kopi, ændres eksekveringsstedet typisk til det nye program, og den gamle kode forbliver sovende.
I de fleste tilfælde er et eksekverende computerprogram placeret i to områder samtidigt. Det er placeret i computerens fysiske lager, som en harddisk eller anden lagerenhed og i den flygtige hukommelse. Programmet flyttes til flygtig hukommelse ved udførelse for at fremskynde adgangstiden og få det til at arbejde hurtigere. Dens placering på begge disse placeringer bestemmes generelt af computerens operativsystem.
Placeringen af disse programmer kaldes adresser. Disse adresser bruges af systemet og andre programmer til hurtigt at finde et program efter behov. Hvis et program opdeles i lager, fungerer det langsommere end hvis det hele er sammen; derfor forsøger de fleste systemer at gemme større programmer over sekventielle adresser. Igen falder valget af at gøre dette typisk på operativsystemet, og programmet har ingen direkte kontrol over det.
Når et program bruger selvflytning, har det markant mere kontrol over disse processer end typiske programmer. Det har evnen til at kontrollere de adresser, som den kører på. Mens det er i brug, kan programmet flytte sin samlede programmering fra det sted, det er på, til et andet sted i hukommelsen på den samme computer. Nogle programmer kan kun ændre en af de to adresser, mens andre kan ændre begge.
I sig selv er selvflytning en ualmindelig, men ikke problematisk proces. Den sande fare kommer, når selvudflytning bruges sammen med ondsindet forsæt. Det er muligt for et program at gøre et stort antal uventede ting, når det har kontrol over sig selv. Det kan oprette adskillige fysiske eller flygtige kopier for at tilstoppe en computers hukommelse. Dette kan forårsage en genstart og kan være en forløber for et startangreb.
Derudover kan programmet foretage sikkerhedskopier af sig selv for at forhindre, at det fjernes. Hvis et program med selvflytning skulle udføre og derefter kopiere sig selv, vil det originale program stadig findes, selv når det ikke bruges. Hvis programmet er ondsindet, og systemet forsøger at fjerne det, kan det aktive program ganske enkelt genaktivere den originale kode, før det fjernes.