//go:build (windows && amd64) || (windows && arm64) // +build windows,amd64 windows,arm64 /* SPDX-License-Identifier: MIT * * Copyright (C) 2017-2021 WireGuard LLC. All Rights Reserved. */ package memmod // Optional header format type IMAGE_OPTIONAL_HEADER struct { Magic uint16 MajorLinkerVersion uint8 MinorLinkerVersion uint8 SizeOfCode uint32 SizeOfInitializedData uint32 SizeOfUninitializedData uint32 AddressOfEntryPoint uint32 BaseOfCode uint32 ImageBase uintptr SectionAlignment uint32 FileAlignment uint32 MajorOperatingSystemVersion uint16 MinorOperatingSystemVersion uint16 MajorImageVersion uint16 MinorImageVersion uint16 MajorSubsystemVersion uint16 MinorSubsystemVersion uint16 Win32VersionValue uint32 SizeOfImage uint32 SizeOfHeaders uint32 CheckSum uint32 Subsystem uint16 DllCharacteristics uint16 SizeOfStackReserve uintptr SizeOfStackCommit uintptr SizeOfHeapReserve uintptr SizeOfHeapCommit uintptr LoaderFlags uint32 NumberOfRvaAndSizes uint32 DataDirectory [IMAGE_NUMBEROF_DIRECTORY_ENTRIES]IMAGE_DATA_DIRECTORY } const IMAGE_ORDINAL_FLAG uintptr = 0x8000000000000000 type IMAGE_LOAD_CONFIG_DIRECTORY struct { Size uint32 TimeDateStamp uint32 MajorVersion uint16 MinorVersion uint16 GlobalFlagsClear uint32 GlobalFlagsSet uint32 CriticalSectionDefaultTimeout uint32 DeCommitFreeBlockThreshold uint64 DeCommitTotalFreeThreshold uint64 LockPrefixTable uint64 MaximumAllocationSize uint64 VirtualMemoryThreshold uint64 ProcessAffinityMask uint64 ProcessHeapFlags uint32 CSDVersion uint16 DependentLoadFlags uint16 EditList uint64 SecurityCookie uint64 SEHandlerTable uint64 SEHandlerCount uint64 GuardCFCheckFunctionPointer uint64 GuardCFDispatchFunctionPointer uint64 GuardCFFunctionTable uint64 GuardCFFunctionCount uint64 GuardFlags uint32 CodeIntegrity IMAGE_LOAD_CONFIG_CODE_INTEGRITY GuardAddressTakenIatEntryTable uint64 GuardAddressTakenIatEntryCount uint64 GuardLongJumpTargetTable uint64 GuardLongJumpTargetCount uint64 DynamicValueRelocTable uint64 CHPEMetadataPointer uint64 GuardRFFailureRoutine uint64 GuardRFFailureRoutineFunctionPointer uint64 DynamicValueRelocTableOffset uint32 DynamicValueRelocTableSection uint16 Reserved2 uint16 GuardRFVerifyStackPointerFunctionPointer uint64 HotPatchTableOffset uint32 Reserved3 uint32 EnclaveConfigurationPointer uint64 VolatileMetadataPointer uint64 GuardEHContinuationTable uint64 GuardEHContinuationCount uint64 GuardXFGCheckFunctionPointer uint64 GuardXFGDispatchFunctionPointer uint64 GuardXFGTableDispatchFunctionPointer uint64 CastGuardOsDeterminedFailureMode uint64 }