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).
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.