내 프로세스에 대해 ASLR(Address Space Layout Randomization)을 비활성화합니다.

내 프로세스에 대해 ASLR(Address Space Layout Randomization)을 비활성화합니다.

ASLR(Address Space Layout Randomization)이 비활성화된 Linux에서 일부 프로그램을 실행하고 싶습니다. 시스템 수준에서는 비활성화되어 있다는 것을 알고 있습니다. 즉, /proc/sys/kernel/randomize_va_space0으로 설정되어 있습니다.

/proc/sys/kernel/randomize_va_space하지만 관리자 권한이 없기 때문에 값을 변경할 수 있는 권한이 없으며 , 관리자가 내 요청을 수락하지 않습니다. 그래서 나는 내 자신의 프로세스에 대해 그것을 비활성화하고 싶습니다. 가능합니까?

답변1

나는 당신이 이것을 할 수 있다고 생각합니다 :

  • 분기된 프로그램 작성
  • 포크 후에는 다음과 같은 작업을 수행해야 합니다.

    int old, rc;
    old = personality(0xffffffff); /* Fetch old personality. */
    rc = personality(old | ADDR_NO_RANDOMIZE);
    if (-1 == rc) {
        perror("personality");
    }
    
  • 그런 다음 exec프로그램

관련 정보