La auto-reubicación es propiedad poseída por un número muy pequeño de programas de computadora. Estos programas pueden alterar sus ubicaciones en la memoria mientras se ejecutan. La mayoría de los programas tienen poco o ningún control sobre su propia programación básica; en cambio, eso es manejado por programas de orden superior. Estos sistemas pueden cambiar su ubicación moviendo su programación o creando una copia de sí mismos. Cuando se realiza una copia, la ubicación de ejecución generalmente cambia al nuevo programa y el código anterior se deja inactivo.
En la mayoría de los casos, un programa informático en ejecución se ubica en dos áreas simultáneamente. Se encuentra en el almacenamiento físico de la computadora, como un disco duro u otra unidad de almacenamiento, y en la memoria volátil. El programa se mueve a la memoria volátil durante la ejecución para acelerar el tiempo de acceso y hacer que funcione más rápido. Su posición en ambas ubicaciones generalmente está determinada por el sistema operativo de la computadora.
Las ubicaciones de estos programas se denominan direcciones. Estas direcciones son utilizadas por el sistema y otros programas para encontrar rápidamente un programa cuando sea necesario. Si un programa se divide en almacenamiento, funcionará más lentamente que si estuviera todo junto; por lo tanto, la mayoría de los sistemas intentan almacenar programas más grandes en direcciones secuenciales. Una vez más, la elección de hacer esto generalmente recae en el sistema operativo y el programa no tiene control directo sobre él.
Cuando un programa utiliza la auto-reubicación, tiene mucho más control sobre estos procesos que los programas típicos. Tiene la capacidad de controlar las direcciones en las que se ejecuta. Mientras está en uso, el programa puede mover su programación total desde la ubicación en la que se encuentra a otra ubicación dentro de la memoria de la misma computadora. Algunos programas solo pueden cambiar una de las dos direcciones, mientras que otros pueden cambiar ambas.
Por sí misma, la auto-reubicación es un proceso poco común, pero no problemático. El verdadero peligro surge cuando se utiliza la auto-reubicación con intenciones maliciosas. Es posible que un programa haga una gran cantidad de cosas inesperadas cuando tiene control sobre sí mismo. Puede crear numerosas copias físicas o volátiles para obstruir la memoria de una computadora. Esto puede provocar un reinicio y puede ser un precursor de un ataque de arranque.
Además, el programa puede realizar copias de seguridad de sí mismo para evitar su eliminación. Si un programa con auto-reubicación se ejecutara y luego se copiara a sí mismo, el programa original seguirá existiendo incluso cuando no se esté utilizando. Si el programa es malicioso y el sistema intenta eliminarlo, el programa activo puede simplemente volver a habilitar el código original antes de eliminarlo.