winebuild: Set ASLR-related dll flags by default.

This commit is contained in:
Alexandre Julliard 2023-09-25 19:07:47 +02:00
parent 0abd795ff0
commit 518e394794
3 changed files with 18 additions and 3 deletions

View file

@ -216,8 +216,18 @@ static inline int is_pe(void)
#define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000
#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000
#define IMAGE_DLLCHARACTERISTICS_PREFER_NATIVE 0x0010 /* Wine extension */
#define IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100
#define IMAGE_DLLCHARACTERISTICS_PREFER_NATIVE 0x0010 /* Wine extension */
#define IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA 0x0020
#define IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 0x0040
#define IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY 0x0080
#define IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100
#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200
#define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400
#define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800
#define IMAGE_DLLCHARACTERISTICS_APPCONTAINER 0x1000
#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000
#define IMAGE_DLLCHARACTERISTICS_GUARD_CF 0x4000
#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000
#define IMAGE_SUBSYSTEM_NATIVE 1
#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2

View file

@ -641,9 +641,14 @@ int main(int argc, char **argv)
/* fall through */
case MODE_EXE:
if (get_ptr_size() == 4)
{
spec->characteristics |= IMAGE_FILE_32BIT_MACHINE;
}
else
{
spec->characteristics |= IMAGE_FILE_LARGE_ADDRESS_AWARE;
spec->dll_characteristics |= IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA;
}
files = load_resources( files, spec );
if (spec_file_name && !parse_input_file( spec )) break;

View file

@ -629,7 +629,7 @@ DLLSPEC *alloc_dll_spec(void)
spec->subsystem_major = 4;
spec->subsystem_minor = 0;
spec->syscall_table = 0;
spec->dll_characteristics = IMAGE_DLLCHARACTERISTICS_NX_COMPAT;
spec->dll_characteristics = IMAGE_DLLCHARACTERISTICS_NX_COMPAT | IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE;
return spec;
}