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.