Disable and re-enable address space layout randomization only for myself

前端 未结 2 978
广开言路
广开言路 2020-11-29 05:37

I would like to disable address space layout randomization (ASLR) on my system (Ubuntu Gnu/Linux 2.6.32-41-server), but, if I use

sysctl -w kernel.randomize_         


        
相关标签:
2条回答
  • 2020-11-29 06:01

    The best way to disable locally the ASLR on a Linux-based system is to use processes personality flags. The command to manipulate personality flags is setarch with

    -R, --addr-no-randomize

    Disables randomization of the virtual address space (turns on ADDR_NO_RANDOMIZE).

    Here is how to proceed:

    $> setarch $(uname -m) -R /bin/bash
    

    This command runs a shell in which the ASLR has been disabled. All descendants of this process will inherit of the personality flags of the father and thus have a disabled ASLR. The only way to break the inheritance of the flags would be to call a setuid program (it would be a security breach to support such feature).

    Note that the uname -m is here to not hard-code the architecture of your platform and make this command portable.

    0 讨论(0)
  • 2020-11-29 06:05

    The documentation for the randomize_va_space sysctl setting is in Documentation/sysctl/kernel.txt in the kernel source tree. Basically,

    0 - Turn the process address space randomization off.

    1 - Make the addresses of mmap base, stack and VDSO page randomized.

    2 - Additionally enable heap randomization.

    0 讨论(0)
提交回复
热议问题