Uses std::uint16_t for SubsystemId enum

Ensures consistency by using `std::uint16_t` instead of `uint16_t` for the `SubsystemId` enum.

Relates to feature/pe_scanner
This commit is contained in:
2025-10-09 20:01:34 +03:00
parent 72b54e9673
commit 3129e32f0c
5 changed files with 41 additions and 41 deletions

View File

@@ -7,7 +7,7 @@
namespace omath::system::pe
{
struct DosHeader
struct DosHeader final
{
std::uint16_t e_magic;
std::uint16_t e_cblp;

View File

@@ -43,7 +43,7 @@ namespace omath::system::pe
CEE = 0xC0EE,
};
struct FileHeader
struct FileHeader final
{
MachineId machine;
uint16_t num_sections;

View File

@@ -14,7 +14,7 @@ namespace omath::system::pe
x64_bit,
};
template<NtArchitecture architecture>
struct ImageNtHeaders
struct ImageNtHeaders final
{
std::uint32_t signature;
FileHeader file_header;

View File

@@ -8,71 +8,71 @@ namespace omath::system::pe
{
static constexpr std::uint16_t opt_hdr32_magic = 0x010B;
static constexpr std::uint16_t opt_hdr64_magic = 0x020B;
enum class SubsystemId : uint16_t
enum class SubsystemId : std::uint16_t
{
unknown = 0x0000, // Unknown subsystem.
native = 0x0001, // Image doesn't require a subsystem.
windows_gui = 0x0002, // Image runs in the Windows GUI subsystem.
windows_cui = 0x0003, // Image runs in the Windows character subsystem
os2_cui = 0x0005, // image runs in the OS/2 character subsystem.
posix_cui = 0x0007, // image runs in the Posix character subsystem.
native_windows = 0x0008, // image is a native Win9x driver.
windows_ce_gui = 0x0009, // Image runs in the Windows CE subsystem.
efi_application = 0x000A, //
efi_boot_service_driver = 0x000B, //
efi_runtime_driver = 0x000C, //
unknown = 0x0000,
native = 0x0001,
windows_gui = 0x0002,
windows_cui = 0x0003,
os2_cui = 0x0005,
posix_cui = 0x0007,
native_windows = 0x0008,
windows_ce_gui = 0x0009,
efi_application = 0x000A,
efi_boot_service_driver = 0x000B,
efi_runtime_driver = 0x000C,
efi_rom = 0x000D,
xbox = 0x000E,
windows_boot_application = 0x0010,
xbox_code_catalog = 0x0011,
};
struct DataDirectory
struct DataDirectory final
{
uint32_t rva;
uint32_t size;
std::uint32_t rva;
std::uint32_t size;
};
struct OptionalHeaderX64
struct OptionalHeaderX64 final
{
// Standard fields.
uint16_t magic;
std::uint16_t magic;
std::uint16_t linker_version;
uint32_t size_code;
uint32_t size_init_data;
uint32_t size_uninit_data;
std::uint32_t size_code;
std::uint32_t size_init_data;
std::uint32_t size_uninit_data;
uint32_t entry_point;
uint32_t base_of_code;
std::uint32_t entry_point;
std::uint32_t base_of_code;
// NT additional fields.
uint64_t image_base;
uint32_t section_alignment;
uint32_t file_alignment;
std::uint64_t image_base;
std::uint32_t section_alignment;
std::uint32_t file_alignment;
std::uint32_t os_version;
std::uint32_t img_version;
std::uint32_t subsystem_version;
uint32_t win32_version_value;
std::uint32_t win32_version_value;
uint32_t size_image;
uint32_t size_headers;
std::uint32_t size_image;
std::uint32_t size_headers;
uint32_t checksum;
std::uint32_t checksum;
SubsystemId subsystem;
SubsystemId characteristics;
std::uint16_t characteristics;
uint64_t size_stack_reserve;
uint64_t size_stack_commit;
uint64_t size_heap_reserve;
uint64_t size_heap_commit;
std::uint64_t size_stack_reserve;
std::uint64_t size_stack_commit;
std::uint64_t size_heap_reserve;
std::uint64_t size_heap_commit;
uint32_t ldr_flags;
std::uint32_t ldr_flags;
uint32_t num_data_directories;
std::uint32_t num_data_directories;
DataDirectory data_directories[16];
};
struct OptionalHeaderX86
struct OptionalHeaderX86 final
{
// Standard fields.
uint16_t magic;

View File

@@ -9,7 +9,7 @@
//
namespace omath::system::pe
{
struct SectionHeader
struct SectionHeader final
{
char name[8];
union