Memory part 3: Virtual Memory
Posted Oct 9, 2007 17:40 UTC (Tue) by
bluefoxicy (guest, #25366)
Parent article:
Memory part 3: Virtual Memory
> If performance is really much more important than security, randomization
> can be turned off. The OS will then usually at least load all DSOs
> contiguously in virtual memory.
Normally (i.e. under PaX and I think Exec Shield, but not OpenBSD), the base of the Stack and mmap() (i.e. DSO load area) regions gets randomized. Beyond this, the kernel continues to select virtual addresses as normal; pretty much between identical runs, a DSO wll load at ${MMAP_BASE} - ${OFFSET}, where ${OFFSET} remains constant between runs for the given DSO and ${MMAP_BASE} changes each time.
The heap and (for PIEs) executable base can also change in this manner.
(
Log in to post comments)