Add PE load configuration directory; fix naming

This commit is contained in:
Matt Nadareski
2022-11-05 22:34:33 -07:00
parent a1d7e65ffb
commit 0dc4f0f11a
5 changed files with 430 additions and 22 deletions

View File

@@ -449,6 +449,74 @@ namespace BurnOutSharp.Models.PortableExecutable
IMAGE_DLLCHARACTERISTICS_EX_CET_COMPAT = 0x0001,
}
[Flags]
public enum GuardFlags : uint
{
/// <summary>
/// Module performs control flow integrity checks using
/// system-supplied support.
/// </summary>
IMAGE_GUARD_CF_INSTRUMENTED = 0x00000100,
/// <summary>
/// Module performs control flow and write integrity checks.
/// </summary>
IMAGE_GUARD_CFW_INSTRUMENTED = 0x00000200,
/// <summary>
/// Module contains valid control flow target metadata.
/// </summary>
IMAGE_GUARD_CF_FUNCTION_TABLE_PRESENT = 0x00000400,
/// <summary>
/// Module does not make use of the /GS security cookie.
/// </summary>
IMAGE_GUARD_SECURITY_COOKIE_UNUSED = 0x00000800,
/// <summary>
/// Module supports read only delay load IAT.
/// </summary>
IMAGE_GUARD_PROTECT_DELAYLOAD_IAT = 0x00001000,
/// <summary>
/// Delayload import table in its own .didat section (with
/// nothing else in it) that can be freely reprotected.
/// </summary>
IMAGE_GUARD_DELAYLOAD_IAT_IN_ITS_OWN_SECTION = 0x00002000,
/// <summary>
/// Module contains suppressed export information. This also
/// infers that the address taken IAT table is also present
/// in the load config.
/// </summary>
IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT = 0x00004000,
/// <summary>
/// Module enables suppression of exports.
/// </summary>
IMAGE_GUARD_CF_ENABLE_EXPORT_SUPPRESSION = 0x00008000,
/// <summary>
/// Module contains longjmp target information.
/// </summary>
IMAGE_GUARD_CF_LONGJUMP_TABLE_PRESENT = 0x00010000,
/// <summary>
/// Mask for the subfield that contains the stride of Control
/// Flow Guard function table entries (that is, the additional
/// count of bytes per table entry).
/// </summary>
IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_MASK = 0xF0000000,
/// <summary>
/// Additionally, the Windows SDK winnt.h header defines this
/// macro for the amount of bits to right-shift the GuardFlags
/// value to right-justify the Control Flow Guard function table
/// stride:
/// </summary>
IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_SHIFT = 28,
}
public enum ImportType : ushort
{
/// <summary>