Hi Prabhu,

On Sun, Oct 17, 2010 at 7:47 PM, Prabhu nath <[email protected]> wrote:
> What I have understood is, the stack segment and the heap segment in the
> virtual address space of an application is allocated by the kernel and the
> starting address of these segments vary for every execution of a program (
> on the premise that the program is not changed). Unlike the program's .text
> and .data sections where the starting address is defined by the linker
> script and will be same for a program unless one changes the program
> contents.
>
> Even I am interested in knowing the exact reason/algorithm adopted by the
> kernel.

The reason for doing this is to make it more difficult for certain
exploits to work. Stack overwrite exploits typically require that the
stack be at a particular location. By randomizing it, it makes this
particular type of exploit much more difficult to create.

-- 
Dave Hylands
Shuswap, BC, Canada
http://www.DaveHylands.com/

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to