Onde a localização da seção de código de um processo no linux?

2

Eu quero restaurar a pilha e o heap quando o processo está inativo. Portanto, devo garantir que o endereço da função permaneça o mesmo sempre que for iniciado, se o binário permanecer o mesmo.

Existe alguém que possa ajudar?

    
por 张宏博 12.07.2018 / 06:18

1 resposta

0

Se a aleatorização do layout do espaço de endereço estiver ativada - que é o caso na maioria dos sistemas Linux atuais -, não, os endereços de função não permanecem os mesmos sempre que um binário é carregado. Existem várias aleatorizações de layout diferentes que são aplicadas e, se o binário for independente de posição, todas elas podem ser aplicadas; em particular, biblioteca ASLR significa que bibliotecas são carregadas em um lugar diferente toda vez, e execução ASLR significa que binários independentes de posição são carregados em um lugar diferente a cada momento também.

O wiki do Ubuntu tem um bom resumo das diferentes possibilidades; eles não são específicos do Ubuntu.

Você pode desativar tudo isso (o que não é recomendado) alterando a configuração /proc/sys/kernel/randomize_va_space : 0 desativará o ASLR.

    
por 12.07.2018 / 09:39

Tags