Module: wine Branch: master Commit: 518e394794160818ffe6826c874ff2f550c95bbb URL: https://gitlab.winehq.org/wine/wine/-/commit/518e394794160818ffe6826c874ff2f...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Sep 25 19:07:47 2023 +0200
winebuild: Set ASLR-related dll flags by default.
---
tools/winebuild/build.h | 14 ++++++++++++-- tools/winebuild/main.c | 5 +++++ tools/winebuild/utils.c | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h index dfa8574a5da..96bb0ce16c5 100644 --- a/tools/winebuild/build.h +++ b/tools/winebuild/build.h @@ -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 diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c index c5f5b56c20e..ac925471771 100644 --- a/tools/winebuild/main.c +++ b/tools/winebuild/main.c @@ -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; diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c index 64437acf9ce..77478476b1c 100644 --- a/tools/winebuild/utils.c +++ b/tools/winebuild/utils.c @@ -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; }