<br><br><div class="gmail_quote">On Fri, Dec 9, 2011 at 2:04 PM, Eric Christopher <span dir="ltr"><<a href="mailto:echristo@apple.com">echristo@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="HOEnZb"><div class="h5"><br>
On Dec 9, 2011, at 11:46 AM, Alexander Potapenko wrote:<br>
<br>
>> Link time is of course better.<br>
>> But if there is a syscall (like the one used by setarch) we could call it<br>
>> and reexec.<br>
>> Using setenv("DYLD_NO_PIE")+reexec looks gross to me.<br>
> There's posix_spawnattr_setflags() that can do the job<br>
> (<a href="http://reverse.put.as/2011/08/11/how-gdb-disables-aslr-in-mac-os-x-lion/" target="_blank">http://reverse.put.as/2011/08/11/how-gdb-disables-aslr-in-mac-os-x-lion/</a>),<br>
> but the necessary flag appeared only in Lion.<br>
><br>
> To the best of my knowledge, there's no link-time option that disables<br>
> ASLR but keeps PIE on Snow Leopard or Lion.<br>
> At the moment we're using DYLD_NO_PIE with Chromium binaries to<br>
> disable ASLR at runtime.<br>
<br>
</div></div>One bit that may make sense is to support the newest (Lion) style and give<br>
a descriptive error message for the other two cases? I.e. if we notice that<br>
MH_PIE is set in the executable, but we're not on Lion and we don't have<br>
DYLD_NO_PIE set in the environment give an error?<br>
<br>
Or some combination of this.<br></blockquote><div>Yea, something like this will be simpler to maintain. </div><div><br></div><div>--kcc </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<span class="HOEnZb"><font color="#888888"><br>
-eric<br>
</font></span></blockquote></div><br>