在Mac OS X Snow Leopard中禁用ASLR

问题描述

| 本质上,我想在Mac OS X SNow Leopard中禁用ASLR,并使用gcc进行一些缓冲区溢出和堆栈溢出。有人知道如何禁用ASLR吗?     

解决方法

        Asan的作者列出了在MacOS中禁用ASLR的几种方法:https://code.google.com/p/address-sanitizer/issues/detail?id=29 对于10.6
export DYLD_NO_PIE=1 
对于10.7及更高版本: 用脚本的
--no-pie
标志“取消已链接的可执行文件中的MH_PIE位” http://src.chromium.org/viewvc/chrome/trunk/src/build/mac/change_mach_o_flags.py?view=markup 或使用--no_pie标志链接程序。 而且gdb还使用了一种困难的方法:http://reverse.put.as/2011/08/11/how-gdb-disables-aslr-in-mac-os-x-lion/     ,        您可以设置环境变量\“ DYLD_NO_PIE \”。参见\“ man dyld \”。这适用于OS X 10.6,但不适用于10.5。