)
const (
- IMAGE_FILE_MACHINE_I386 = 0x14c
- IMAGE_FILE_MACHINE_AMD64 = 0x8664
- IMAGE_FILE_MACHINE_ARM = 0x1c0
- IMAGE_FILE_MACHINE_ARMNT = 0x1c4
- IMAGE_FILE_RELOCS_STRIPPED = 0x0001
- IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002
- IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004
- IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020
- IMAGE_FILE_32BIT_MACHINE = 0x0100
- IMAGE_FILE_DEBUG_STRIPPED = 0x0200
- IMAGE_SCN_CNT_CODE = 0x00000020
- IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040
- IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080
- IMAGE_SCN_MEM_EXECUTE = 0x20000000
- IMAGE_SCN_MEM_READ = 0x40000000
- IMAGE_SCN_MEM_WRITE = 0x80000000
- IMAGE_SCN_MEM_DISCARDABLE = 0x2000000
- IMAGE_SCN_LNK_NRELOC_OVFL = 0x1000000
- IMAGE_SCN_ALIGN_32BYTES = 0x600000
- IMAGE_DIRECTORY_ENTRY_EXPORT = 0
- IMAGE_DIRECTORY_ENTRY_IMPORT = 1
- IMAGE_DIRECTORY_ENTRY_RESOURCE = 2
- IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3
- IMAGE_DIRECTORY_ENTRY_SECURITY = 4
- IMAGE_DIRECTORY_ENTRY_BASERELOC = 5
- IMAGE_DIRECTORY_ENTRY_DEBUG = 6
- IMAGE_DIRECTORY_ENTRY_COPYRIGHT = 7
- IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7
- IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8
- IMAGE_DIRECTORY_ENTRY_TLS = 9
- IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10
- IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11
- IMAGE_DIRECTORY_ENTRY_IAT = 12
- IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13
- IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14
- IMAGE_SUBSYSTEM_WINDOWS_GUI = 2
- IMAGE_SUBSYSTEM_WINDOWS_CUI = 3
- IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE = 0x0040
- IMAGE_DLLCHARACTERISTICS_NX_COMPAT = 0x0100
+ IMAGE_FILE_MACHINE_I386 = 0x14c
+ IMAGE_FILE_MACHINE_AMD64 = 0x8664
+ IMAGE_FILE_MACHINE_ARM = 0x1c0
+ IMAGE_FILE_MACHINE_ARMNT = 0x1c4
+ IMAGE_FILE_RELOCS_STRIPPED = 0x0001
+ IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002
+ IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004
+ IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020
+ IMAGE_FILE_32BIT_MACHINE = 0x0100
+ IMAGE_FILE_DEBUG_STRIPPED = 0x0200
+ IMAGE_SCN_CNT_CODE = 0x00000020
+ IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040
+ IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080
+ IMAGE_SCN_MEM_EXECUTE = 0x20000000
+ IMAGE_SCN_MEM_READ = 0x40000000
+ IMAGE_SCN_MEM_WRITE = 0x80000000
+ IMAGE_SCN_MEM_DISCARDABLE = 0x2000000
+ IMAGE_SCN_LNK_NRELOC_OVFL = 0x1000000
+ IMAGE_SCN_ALIGN_32BYTES = 0x600000
+ IMAGE_DIRECTORY_ENTRY_EXPORT = 0
+ IMAGE_DIRECTORY_ENTRY_IMPORT = 1
+ IMAGE_DIRECTORY_ENTRY_RESOURCE = 2
+ IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3
+ IMAGE_DIRECTORY_ENTRY_SECURITY = 4
+ IMAGE_DIRECTORY_ENTRY_BASERELOC = 5
+ IMAGE_DIRECTORY_ENTRY_DEBUG = 6
+ IMAGE_DIRECTORY_ENTRY_COPYRIGHT = 7
+ IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7
+ IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8
+ IMAGE_DIRECTORY_ENTRY_TLS = 9
+ IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10
+ IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11
+ IMAGE_DIRECTORY_ENTRY_IAT = 12
+ IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13
+ IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14
+ IMAGE_SUBSYSTEM_WINDOWS_GUI = 2
+ IMAGE_SUBSYSTEM_WINDOWS_CUI = 3
+ IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE = 0x0040
+ IMAGE_DLLCHARACTERISTICS_NX_COMPAT = 0x0100
+ IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000
)
// TODO(crawshaw): add these constants to debug/pe.
oh.DllCharacteristics = IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE | IMAGE_DLLCHARACTERISTICS_NX_COMPAT
}
+ // Mark as having awareness of terminal services, to avoid ancient compatibility hacks.
+ oh64.DllCharacteristics |= IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE
+ oh.DllCharacteristics |= IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE
+
// Disable stack growth as we don't want Windows to
// fiddle with the thread stack limits, which we set
// ourselves to circumvent the stack checks in the