Ce este auto-relocarea?

Auto-relocarea este proprietatea deținută de un număr foarte mic de programe de calculator. Aceste programe își pot modifica locațiile în memorie în timpul execuției. Majoritatea programelor nu au control asupra propriei lor programe de bază; în schimb, aceasta este gestionată de programe de ordin superior. Aceste sisteme își pot schimba locația fie mutându-și programarea, fie creând o copie a lor. Când se face o copie, locația de execuție se schimbă în mod obișnuit în noul program și vechiul cod rămâne latent.

În cele mai multe cazuri, un program de calculator care execută este situat în două zone simultan. Se află în stocarea fizică a computerului, ca un hard disk sau altă unitate de stocare, și în memoria volatilă. Programul este mutat în memoria volatilă la execuție pentru a accelera timpul de acces și a-l face să funcționeze mai rapid. Poziția sa în ambele locații este în general determinată de sistemul de operare al computerului.

Locațiile acestor programe se numesc adrese. Aceste adrese sunt folosite de sistem și de alte programe pentru a găsi rapid un program atunci când este necesar. Dacă un program este rupt în stocare, acesta va funcționa mai lent decât dacă este totul împreună; prin urmare, majoritatea sistemelor încearcă să stocheze programe mai mari pe adrese secvențiale. Încă o dată, alegerea de a face acest lucru revine de obicei sistemului de operare și programul nu are control direct asupra acestuia.

Când un program folosește auto-relocarea, are un control semnificativ mai mare asupra acestor procese decât programele obișnuite. Are capacitatea de a controla adresele la care se execută. În timp ce este în uz, programul își poate muta programarea totală din locația în care se află într-o altă locație din memoria aceluiași computer. Unele programe pot schimba doar una dintre cele două adrese, în timp ce altele le pot schimba pe ambele.

În sine, auto-relocarea este un proces neobișnuit, dar nu problematic. Adevăratul pericol vine atunci când auto-relocarea este folosită împreună cu intenții rău intenționate. Este posibil ca un program să facă un număr mare de lucruri neașteptate atunci când are control asupra lui însuși. Poate crea numeroase copii fizice sau volatile pentru a înfunda memoria unui computer. Acest lucru poate provoca o repornire și poate fi un precursor al unui atac de boot.

În plus, programul poate face copii de rezervă pentru a preveni eliminarea acestuia. Dacă un program cu auto-relocare ar fi executat și apoi să se copieze singur, programul original va exista în continuare chiar și atunci când nu este utilizat. Dacă programul este rău intenționat și sistemul încearcă să-l elimine, programul activ poate pur și simplu să reactiveze codul original înainte de a fi eliminat.