本质上我想在 Mac OS X Snow Leopard 中禁用 ASLR 并使用 gcc 来做一些缓冲区溢出和堆栈溢出。有人知道如何禁用 ASLR 吗?
问问题
4073 次
2 回答
3
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/
于 2014-02-24T23:54:57.180 回答
1
您可以设置环境变量“DYLD_NO_PIE”。参见“人 dyld”。这适用于 OS X 10.6,但不适用于 10.5。
于 2011-07-21T15:17:13.053 回答