News for hackers. Stuff that matters.
Re:Why is 0x00400000 the default base address for an executa... by pmalynin on Friday October 03, 2014 @04:22PM (#8407442)
Hmm, also on x86 in order to be able to access more than 4 GiB of physical memory there was a new paging mode, Physical Address Extension, that makes the pages 4MiB in size, that might have affected that as well but I doubt it. However this mode is required when entering long mode.
Re:Why is 0x00400000 the default base address for an executa... by 0x0 on Friday October 03, 2014 @11:12PM (#8408654)
PAE came ~20 years later, so it's not related to the OP
Re:Why is 0x00400000 the default base address for an executa... by conductor on Friday October 03, 2014 @05:12PM (#8407672)
A small addition though: although the operating system can address more than 4GiB of memory (up to 64 GiB) in PAE-enabled 32-bit x86 CPUs, the user-space applications are still limited to 4GiB of virtual address space and can't address more than that.

But I don't see how it's related to the default base address chosen by linkers being 0x00400000. It's just a field in the PE header and can be easily changed.

Re:Why is 0x00400000 the default base address for an executa... by mobilio on Friday October 03, 2014 @07:04PM (#8408113)
Address 0x00400000 can't be just changed in PE header. You need also to "rebase" your app with SDK tool.

Tool is now deprecated because ALSR and reason that all apps/libraries should be relocable runtime.

Re:Why is 0x00400000 the default base address for an executa... by conductor on Friday October 03, 2014 @07:32PM (#8408185)
> You need also to "rebase" your app

Sure you need to (unless it's some kind of a base independent code like a well-written shellcode). I was just saying that 0x00400000 isn't hard-coded in the x86 architecture or in Windows and it can be set to anything (aligned to 0x10000 boundary).

Re:Why is 0x00400000 the default base address for an executa... by userbinator on Friday October 03, 2014 @09:11PM (#8408444)
With PAE pages can be either 4KB or 2MB. You're thinking of PSE-36.