Desativar randomização de layout de espaço de endereçamento (ASLR) para meus processos

3

Eu quero rodar alguns programas no Linux onde eu quero desabilitar o ASLR (Address Space Layout Randomization). Eu sei para desativá-lo no nível do sistema, que é definindo /proc/sys/kernel/randomize_va_space para 0.

No entanto, não tenho acesso para alterar o valor de /proc/sys/kernel/randomize_va_space , pois não tenho direitos de administrador e o administrador também não aceita minha solicitação. Então, quero desabilitá-lo apenas para meus próprios processos. É possível?

    
por Gilles 29.06.2011 / 16:04

1 resposta

4

Acho que você pode fazer assim:

  • Escreva um programa que bifurque
  • Após o fork você deve fazer algo como

    int old, rc;
    old = personality(0xffffffff); /* Fetch old personality. */
    rc = personality(old | ADDR_NO_RANDOMIZE);
    if (-1 == rc) {
        perror("personality");
    }
    
  • E, em seguida, exec do seu programa

por 29.06.2011 / 16:19