Mitä on itsensä muuttaminen?

Itsensä muuttaminen on omaisuutta, jolla on hyvin pieni määrä tietokoneohjelmia. Nämä ohjelmat voivat muuttaa niiden sijainteja muistissa suorituksen aikana. Useimmat ohjelmat eivät juurikaan hallitse omaa perusohjelmointiaan; sen sijaan sitä käsittelevät korkeamman järjestyksen ohjelmat. Nämä järjestelmät voivat muuttaa sijaintiaan joko siirtämällä ohjelmointiaan tai luomalla kopion itsestään. Kun kopioidaan, suorituspaikka muuttuu tyypillisesti uuteen ohjelmaan ja vanha koodi jätetään lepotilaan.

Useimmissa tapauksissa suoritettava tietokoneohjelma sijaitsee kahdella alueella samanaikaisesti. Se sijaitsee tietokoneen fyysisessä muistissa, kuten kiintolevyssä tai muussa tallennusyksikössä, ja haihtuvassa muistissa. Ohjelma siirretään haihtuvaan muistiin suorituksen aikana nopeuttaakseen käyttöaikaa ja nopeuttaakseen sitä. Sen sijainti molemmissa paikoissa määräytyy yleensä tietokoneen käyttöjärjestelmän mukaan.

Näiden ohjelmien sijainteja kutsutaan osoitteiksi. Järjestelmä ja muut ohjelmat käyttävät näitä osoitteita löytääkseen ohjelman nopeasti tarvittaessa. Jos ohjelma hajotetaan tallennustilaan, se toimii hitaammin kuin jos se on kaikki yhdessä; siksi useimmat järjestelmät yrittävät tallentaa suurempia ohjelmia peräkkäisiin osoitteisiin. Jälleen kerran valinta tähän tyypillisesti kuuluu käyttöjärjestelmään, eikä ohjelmalla ole suoraa hallintaa siihen.

Kun ohjelma käyttää itsensä siirtämistä, se hallitsee näitä prosesseja huomattavasti enemmän kuin tyypilliset ohjelmat. Sillä on kyky hallita osoitteita, joilla se suorittaa. Käytön aikana ohjelma voi siirtää kokonaisohjelmansa paikasta, jossa se on, toiseen paikkaan saman tietokoneen muistissa. Jotkut ohjelmat voivat muuttaa vain toista osoitetta, kun taas toiset voivat muuttaa molempia.

Itse siirtäminen on itsessään harvinainen, mutta ei ongelmallinen prosessi. Todellinen vaara tulee, kun itsensä siirtämistä käytetään yhdessä haitallisten aikomusten kanssa. Ohjelma voi tehdä suuren määrän odottamattomia asioita, kun se hallitsee itseään. Se voi luoda lukuisia fyysisiä tai haihtuvia kopioita tietokoneen muistin tukkeutumiseksi. Tämä voi aiheuttaa uudelleenkäynnistyksen ja voi olla käynnistyshyökkäyksen edeltäjä.

Lisäksi ohjelma voi tehdä varmuuskopioita itsestään estääkseen sen poistamisen. Jos itse siirtävä ohjelma suorittaa ja kopioi itsensä, alkuperäinen ohjelma on edelleen olemassa, vaikka sitä ei käytetä. Jos ohjelma on haittaohjelma ja järjestelmä yrittää poistaa sen, aktiivinen ohjelma voi yksinkertaisesti ottaa alkuperäisen koodin uudelleen käyttöön ennen sen poistamista.