En los ejecutables producidos para Windows NT, la base de imagen predeterminada era 0x10000. Para DLL, el valor predeterminado es 0x400000. En Windows 95, la dirección 0x10000 no se puede utilizar para cargar EXE de 32 bits porque se encuentra dentro de una región de dirección lineal compartida por todos los procesos. Debido a esto, Microsoft ha cambiado la dirección base predeterminada para ejecutables de Win32 a 0x400000.
Cabe mencionar que no todos van hacer 0x400000, pero mas bien la mayoria ya esta definido por esa base de imagen o 'ImageBase' en ingles, La manera de leer el 'ImageBase' es nada mas y nada menos que leyendo el propio PE, y como se hace es con programas como CFF Explorer o Adlice PE Viewer.
Por ende para entender lo que está pasando es imperativo que entiendas lo que es un binario PE o Portable Executable
Fig. A - Formato de Binario Ejecutable
Fig B. Version Mini
Con estos ejemplos de arriba puedes ver como el formato PE está estructurado, de que se compone y de donde salen los valores. Puesto que Microsoft es el autor de dicho formato, te recomiendo que pases por su pagina MSDN (o el "Microsoft Developer Network" por sus siglas en Ingles) y te comiences a ojear los documentos que hay ahi de dicho formato, no solo el MSDN es un gran lugar para aprender mas del formato PE, sino pues explora tambien en otros sitios online, foros, etc., etc.
Saludos,
0xNOP
MOD EDIT: Imagenes adaptadas a lo permitido.