The noexecstack option has no affect on shell code or any other interpreted 
language.  It only prevents native code (aka machine code) from executing.

     --- Wade


On 2010-10-10, at 6:53, Brchk05 <brch...@aim.com> wrote:

> 
> I am running Debian 2.6.26-21lenny4 and I am puzzled by an issue with the 
> enforcement of page permissions.  I have written a simple program with a 
> basic buffer overflow and compiled two versions using gcc: one with -z 
> execstack and another with -z noexecstack.  
> 
> So, to verify that the option takes:
> 
> For the -z execstack version:
> $ readelf -l a.out | grep -i -A1 stack
>   GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE 0x4
> 
> For the -z noexecstack version:
> $ readelf -l a.out | grep -i -A1 stack
>   GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x4
> 
> However, I am able to inject and execute shellcode from a stack local 
> character buffer in both versions.  Is there another system option I am 
> unaware of that affects enforcement?  Is enforcement not supported for my 
> system version?
> 
> Thanks for your help.

Reply via email to