Essentially I want to disable ASLR in Mac OS X Snow Leopard and use gcc todo some buffer overflowing and stack overflows. Anyone know how to disable ASLR?
Asked
Active
Viewed 4,319 times
3
-
I was going to say google it, but google just turns up your question. :( – R.. GitHub STOP HELPING ICE Jun 13 '11 at 00:30
-
The aslr is kernel technology which needs only `PIE` code generation from gcc. Buffer overflow and stack overflow protection is wider than just ASLR. – osgx Jul 21 '11 at 16:10
2 Answers
3
Asan authors listed several ways to disable ASLR in MacOS: https://code.google.com/p/address-sanitizer/issues/detail?id=29
For 10.6
export DYLD_NO_PIE=1
For 10.7 and newer:
"unset the MH_PIE bit in an already linked executable" with
--no-pie
flag of the scripthttp://src.chromium.org/viewvc/chrome/trunk/src/build/mac/change_mach_o_flags.py?view=markup
or link the program with --no_pie flag.
And there is also hard method used by gdb: http://reverse.put.as/2011/08/11/how-gdb-disables-aslr-in-mac-os-x-lion/
1
You can set the environment variable "DYLD_NO_PIE". See "man dyld". This works on OS X 10.6 but not on 10.5.

Mark Seaborn
- 1,392
- 13
- 11