Hva er selvflytting?
Selvflytting er eiendom som besittes av et veldig lite antall dataprogrammer. Disse programmene kan endre plasseringene i minnet mens de kjøres. De fleste programmer har liten eller ingen kontroll over sin egen baseprogrammering; i stedet blir det håndtert av høyere ordre. Disse systemene kan endre sin beliggenhet enten ved å flytte programmeringen eller ved å lage en kopi av seg selv. Når en kopi er laget, endres utførelsesstedet vanligvis til det nye programmet, og den gamle koden blir liggende i dvale.
I de fleste tilfeller er et utførende dataprogram lokalisert i to områder samtidig. Den er plassert i datamaskinens fysiske lagring, som en harddisk eller annen lagringsenhet, og i det flyktige minnet. Programmet blir flyttet inn i flyktig minne ved utførelse for å få raskere tilgangstid og få det til å fungere raskere. Plasseringen på begge disse stedene bestemmes generelt av datamaskinens operativsystem.
Plasseringene av disse programmene kalles adresser. Disse adressene brukes av systemet og andre programmer for raskt å finne et program når det er nødvendig. Hvis et program brytes opp i lagring, vil det fungere saktere enn hvis det hele er sammen; derfor prøver de fleste systemer å lagre større programmer over sekvensielle adresser. Nok en gang faller valget mellom å gjøre dette på operativsystemet, og programmet har ingen direkte kontroll over det.
Når et program bruker selvflytting, har det betydelig mer kontroll over disse prosessene enn typiske programmer. Den har muligheten til å kontrollere adressene den kjører. Mens det er i bruk, kan programmet flytte den totale programmeringen fra det stedet det er til et annet sted i minnet til den samme datamaskinen. Noen programmer kan bare endre en av de to adressene, mens andre kan endre begge.
I seg selv er selvflytting en uvanlig, men ikke problematisk prosess. Den sanne faren kommer når selvflytting brukes sammen med ondsinnet hensikt. Det er mulig for et program å gjøre et stort antall uventede ting når det har kontroll over seg selv. Den kan lage mange fysiske eller flyktige kopier for å tette datamaskinens minne. Dette kan forårsake en omstart og kan være en forløper for et startangrep.
I tillegg kan programmet lage sikkerhetskopier av seg selv for å forhindre fjerning av det. Hvis et program med selvflytting skulle utføre og deretter kopiere seg selv, vil det originale programmet fortsatt eksistere selv når det ikke brukes. Hvis programmet er ondsinnet og systemet prøver å fjerne det, kan det aktive programmet ganske enkelt aktivere den opprinnelige koden før den fjernes.