Programa de auto-relocação

Definição - O que significa Programa de Auto-Relocação?

Um programa de auto-relocação é aquele que realoca suas instruções sensíveis ao endereço para outras partes da memória. O programa realiza sua própria realocação e não requer um vinculador. A auto-relocação é usada em sistemas operacionais de compartilhamento de tempo onde o endereço de carregamento de um programa pode mudar para cada execução diferente.

Definirtec explica o programa de auto-relocação

Um programa de auto-relocação se altera para ser executado em um local diferente da memória. A auto-realocação elimina a necessidade de ter várias cópias de um programa em um disco, com cada cópia tendo sua própria origem de carregamento diferente. No entanto, os programas de auto-relocação não são necessários quando o computador usa memória virtual.

Durante o processo de realocação, o programa realoca suas instruções sensíveis ao endereço, o que permite que ele seja executado de qualquer parte da memória. Os requisitos para o processo de realocação são os seguintes:

  • Uma tabela das instruções sensíveis ao endereço. O programa deve saber a origem traduzida e o endereço de início da execução, bem como os endereços das instruções sensíveis ao endereço.
  • Uma lógica de realocação, que é o código que executa o processo de realocação.

As duas funções estão embutidas no programa; o endereço inicial do código de realocação é geralmente especificado como o endereço inicial de execução do programa. Uma vez que o programa é carregado na memória para execução, a lógica de realocação assume o controle e realiza a realocação usando o endereço de carga e as informações sobre as instruções sensíveis ao endereço.

O processo de auto-relocação pode ser estático ou dinâmico. A realocação estática é executada antes da execução do programa, enquanto a realocação dinâmica é executada durante a execução do programa. A realocação dinâmica pode primeiro suspender a execução do programa e realizar a realocação, ou usar um registro de realocação.

Os programas de auto-relocação são menos eficientes em comparação com os programas recarregáveis.

Além dos programas genuínos de auto-relocação, os programas de malware usam o mesmo método de auto-realocação para se propagar através de sistemas e redes para espalhar seu código malicioso.