Bitdefender Hypervisor Memory Introspection
winguest.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 Bitdefender
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 #ifndef _WINGUEST_H_
6 #define _WINGUEST_H_
7 
8 #include "introcore.h"
9 #include "patsig.h"
10 
12 
14 #define IMAGE_BASE_NAME_LEN 16u
15 
17 #define IMAGE_FULL_PATH_LEN 260u
18 
20 #define PROT_PROC_FLAG_NO_PATH 0x00000001
21 
24 {
29 
33  struct
34  {
44 
58  } Protection;
59 
75 
79 
85 {
89  CHAR SectionHint[8];
93 
94 
100 {
103 
106  _Field_size_(PatternsCount)
109 
113 typedef enum
114 {
120 
125 {
126  PROTECTED_MODULE_TYPE Type;
127  const WCHAR *Name;
128  const WCHAR *Path;
129  const WCHAR *DriverObject;
133 
139 
143 typedef enum
144 {
152 
160 typedef enum _WIN_UM_FIELD_DLL
161 {
174 
181 typedef enum _WIN_UM_FIELD_PEB
182 {
191 
197 typedef enum _WIN_UM_FIELD_TEB
198 {
212 
218 typedef enum _WIN_KM_STRUCTURE
219 {
240 
246 typedef enum _WIN_UM_STRUCTURE
247 {
257 
264 {
297 
304 {
324 
331 {
352 
358 typedef enum _WIN_KM_FIELD_PCR
359 {
368 
376 {
385 
397 {
402 
413 
420 {
432 
440 {
455 
463 {
476 
484 {
527 
535 {
543 
564 {
572 
580 
590 
593 
598 
605 
612 {
622 
630 {
639 
661 typedef struct _WIN_OPAQUE_FIELDS
662 {
664  struct
665  {
694  } Km;
695 
697  struct
698  {
705  } Um;
707 
726 #define WIN_KM_FIELD(Structure, Field) gWinGuest->OsSpecificFields.Km.Structure[winKmField##Structure##Field]
727 
744 #define WIN_SYSCALL_NUMBER(Syscall) WIN_KM_FIELD(SyscallNumbers, Syscall)
745 
764 #define WIN_UM_FIELD(Structure, Field) gWinGuest->OsSpecificFields.Um.Structure[winUmField##Structure##Field]
765 
772 {
776 
781 typedef enum
782 {
792 
796 typedef struct _WINDOWS_GUEST
797 {
808 
810  PCHAR VersionString;
818 
819  WIN_PRODUCT_TYPE ProductType;
820 
827 
839 
842 
845 
851 typedef struct _WIN_INIT_SWAP
852 {
854  void *SwapHandle;
855 
859 
860 INTSTATUS
862  void
863  );
864 
865 INTSTATUS
867  void
868  );
869 
870 void
872  void
873  );
874 
875 void
877  void
878  );
879 
880 INTSTATUS
882  _In_ DWORD FullStringSize,
883  _In_ DWORD VersionStringSize,
884  _Out_ CHAR *FullString,
885  _Out_ CHAR *VersionString
886  );
887 
888 INTSTATUS
890  void
891  );
892 
893 INTSTATUS
895  void
896  );
897 
898 #endif // _WINGUEST_H_
uint16_t * PWCHAR
Definition: intro_types.h:63
enum _WIN_KM_FIELD_EPROCESSFLAGS WIN_KM_FIELD_EPROCESSFLAGS
Indexes in the WIN_OPAQUE_FIELDS.Km.EprocessFlags array, containing information about the flags insid...
The end of the fields.
Definition: winguest.h:172
Offset of ParentValue.
Definition: winguest.h:486
_WIN_KM_FIELD_VAD_SHORT
Indexes in the WIN_OPAQUE_FIELDS.Km.VadShort array, containing information about the _MMVAD_SHORT str...
Definition: winguest.h:483
Advanced server.
Definition: winguest.h:785
The relevant size of the _TEB for 64-bit processes.
Definition: winguest.h:199
#define _Out_
Definition: intro_sal.h:22
Offset of Tcb.ApcState.Process.
Definition: winguest.h:312
Offset of Wow64Process (only for 64-bit guests).
Definition: winguest.h:281
Used for the WIN_OPAQUE_FIELDS.Um.Peb array.
Definition: winguest.h:249
enum _WIN_UM_FIELD_PEB WIN_UM_FIELD_PEB
Indexes in the WIN_OPAQUE_FIELDS.Um.Peb array, containing offsets inside the _PEB structure...
Offset of VadRoot.
Definition: winguest.h:274
Offset of Tcb.State.
Definition: winguest.h:310
QWORD MmPfnDatabase
Guest virtual address of the PFN data base.
Definition: winguest.h:823
PROTECTED_MODULE_TYPE Type
The type of the module.
Definition: winguest.h:126
QWORD PropperSyscallGva
Guest virtual address of the KiSystemServiceUser function.
Definition: winguest.h:807
DWORD Original
The original protection flags as received from GLUE_IFACE.AddRemoveProtectedProcessUtf16 or GLUE_IFAC...
Definition: winguest.h:37
QWORD FileSystemDirectory
Guest virtual address of the FileSystem namespace directory.
Definition: winguest.h:826
The NtWriteSyscallMemory syscall number.
Definition: winguest.h:613
uint8_t BYTE
Definition: intro_types.h:47
QWORD RequiredFlags
The introcore options that need to be active in order to protect this module.
Definition: winguest.h:137
Offset of PteAddress (or PteLong).
Definition: winguest.h:399
#define _In_
Definition: intro_sal.h:21
QWORD SyscallAddress
Guest virtual address of the SYSCALL/SYSENTER handler.
Definition: winguest.h:801
The end of the fields.
Definition: winguest.h:453
QWORD Context
The context supplied in the protection policy.
Definition: winguest.h:74
Offset of PrcbData.CurrentThread.
Definition: winguest.h:360
Used for the WIN_OPAQUE_FIELDS.Um.Dll array.
Definition: winguest.h:248
The end of the fields.
Definition: winguest.h:620
Used for the WIN_OPAQUE_FIELDS.Km.VadLong array.
Definition: winguest.h:230
The end of the fields.
Definition: winguest.h:430
struct _WIN_UNEXPORTED_FUNCTION_PATTERN * PWIN_UNEXPORTED_FUNCTION_PATTERN
Information not yet loaded.
Definition: winguest.h:783
_WIN_KM_FIELD_SYSCALL_NUMBERS
Indexes in the WIN_OPAQUE_FIELDS.Km.SyscallNumbers array, containing syscall numbers.The WIN_SYSCALL_NUMBER or WIN_KM_FIELD macros can be used to access these more easily.
Definition: winguest.h:611
The product type is unknown.
Definition: winguest.h:790
INTSTATUS IntWinGuestUnprotectSudExec(void)
Removes the execution EPT hook on SharedUserData.
Definition: winguest.c:1135
_WIN_KM_FIELD_MMPFN
Indexes in the WIN_OPAQUE_FIELDS.Km.Mmpfn array, containing information about the _MMPFN structure...
Definition: winguest.h:396
struct _PROTECTED_PROCESS_INFO * PPROTECTED_PROCESS_INFO
The size of the _FAST_IO_DISPATCH structure.
Definition: winguest.h:341
_WIN_UM_FIELD_TEB
Indexes in the WIN_OPAQUE_FIELDS.Um.Teb array, containing offsets inside the _TEB structure...
Definition: winguest.h:197
enum _WIN_KM_FIELD_VAD_LONG WIN_KM_FIELD_VAD_LONG
Indexes in the WIN_OPAQUE_FIELDS.Km.VadLong array, containing information about the _MMVAD_LONG struc...
QWORD ExFreePoolWithTag
Guest virtual address of the ExFreePoolWithTag kernel function.
Definition: winguest.h:800
enum _WIN_UM_FIELD_DLL WIN_UM_FIELD_DLL
Indexes in the WIN_OPAQUE_FIELDS.Um.Dll array, containing offsets inside the _LDR_DATA_TABLE_ENTRY st...
LIST_ENTRY Link
Link inside the WINDOWS_GUEST.InitSwapHandles list.
Definition: winguest.h:853
Mask for Exiting from _EPROCESS.Flags.
Definition: winguest.h:465
struct _PROTECTED_PROCESS_INFO PROTECTED_PROCESS_INFO
Encapsulates a protected Windows process.
The end of the fields.
Definition: winguest.h:322
Offset of Pcb.UserDirectoryTableBase if it exists, DirectoryTableBase if not.
Definition: winguest.h:267
WIN_PRODUCT_TYPE ProductType
The product type. Obtained directly from the guest during initialization.
Definition: winguest.h:819
enum _WIN_KM_FIELD_VADFLAGS WIN_KM_FIELD_VADFLAGS
Indexes in the WIN_OPAQUE_FIELDS.Km.VadFlags array, containing information about the bits in the winK...
Invalid.
Definition: winguest.h:115
Offset of ExitStatus.
Definition: winguest.h:276
struct _WINDOWS_GUEST WINDOWS_GUEST
Holds information about a Windows guest.
DWORD Current
The currently used protection flags.
Definition: winguest.h:43
enum _WIN_KM_FIELD_PCR WIN_KM_FIELD_PCR
Indexes in the WIN_OPAQUE_FIELDS.Km.Pcr array, containing information about the _KPCR structure...
QWORD Feedback
Flags that will be forced to feedback only mode.
Definition: winguest.h:57
Offset of Tcb.StackBase.
Definition: winguest.h:308
The offset relative tot he EtwDebuggerData structure at which the ETW signature is found...
Definition: winguest.h:447
Offset of Flags.
Definition: winguest.h:282
enum _WIN_KM_FIELD_SYSCALL_NUMBERS WIN_KM_FIELD_SYSCALL_NUMBERS
Indexes in the WIN_OPAQUE_FIELDS.Km.SyscallNumbers array, containing syscall numbers.The WIN_SYSCALL_NUMBER or WIN_KM_FIELD macros can be used to access these more easily.
int INTSTATUS
The status data type.
Definition: introstatus.h:24
Offset of PteAddress (or PteLong) when PAE is enabled.
Definition: winguest.h:404
The end of the fields.
Definition: winguest.h:189
The end of the fields.
Definition: winguest.h:295
Used for the WIN_OPAQUE_FIELDS.Km.Mmpfn array.
Definition: winguest.h:225
Offset of ClientSecurity.
Definition: winguest.h:315
PROTECTED_MODULE_TYPE
Protected kernel module types.
Definition: winguest.h:113
DWORD NumberOfServices
The number of entries in the SSDT.
Definition: winguest.h:805
Used for the WIN_OPAQUE_FIELDS.Km.VadFlags array.
Definition: winguest.h:231
Offset of MitigationFlags if it exists (>= RS3).
Definition: winguest.h:284
Used for the WIN_OPAQUE_FIELDS.Km.EprocessFlags array.
Definition: winguest.h:228
Used for the WIN_OPAQUE_FIELDS.Km.Pcr array.
Definition: winguest.h:223
Offset of GetCpuClock in _WMI_LOGGER_CONTEXT.
Definition: winguest.h:444
DWORD Flags
Flags that describe the protection mode.
Definition: winguest.h:63
QWORD ExAllocatePoolWithTag
Guest virtual address of the ExAllocatePoolWithTag kernel function.
Definition: winguest.h:799
Offset of ObjectTable.
Definition: winguest.h:278
PCHAR ServerVersionString
A NULL terminated string containing Windows server version information.
Definition: winguest.h:817
struct _WIN_MODULE_UNIQUE_KEY WIN_MODULE_UNIQUE_KEY
Information that can identify a module.
#define IMAGE_BASE_NAME_LEN
The maximum length of a process name.
Definition: winguest.h:14
Mask for Delete from _EPROCESS.Flags.
Definition: winguest.h:466
Offset of Privileges.
Definition: winguest.h:421
_WIN_KM_FIELD_DRVOBJ
Indexes in the WIN_OPAQUE_FIELDS.Km.DrvObj array, containing information about the _DRIVER_OBJECT str...
Definition: winguest.h:330
Offset of Tcb.TrapFrame.
Definition: winguest.h:316
struct _WIN_OPAQUE_FIELDS WIN_OPAQUE_FIELDS
Contains information about various Windows user mode and kernel mode structures.Everything about a st...
The minimum size that must be read from the guest in order to properly parse a _MMVAD_SHORT structure...
Definition: winguest.h:520
_WIN_UM_FIELD_PEB
Indexes in the WIN_OPAQUE_FIELDS.Um.Peb array, containing offsets inside the _PEB structure...
Definition: winguest.h:181
Describes a pattern for a kernel function that is not exported.
Definition: winguest.h:84
_WIN_KM_FIELD_UNGROUPED
Indexes in the WIN_OPAQUE_FIELDS.Km.Ungrouped array, containing information about various kernel stru...
Definition: winguest.h:439
Used for the WIN_OPAQUE_FIELDS.Km.Token array.
Definition: winguest.h:226
_WIN_KM_FIELD_VAD_LONG
Indexes in the WIN_OPAQUE_FIELDS.Km.VadLong array, containing information about the _MMVAD_LONG struc...
Definition: winguest.h:534
The mask that must be applied for the private fix-up setting.
Definition: winguest.h:592
Encapsulates a protected Windows process.
Definition: winguest.h:23
INTSTATUS IntWinGuestNew(void)
Starts the initialization and protection process for a new Windows guest.
Definition: winguest.c:2760
The end of the fields.
Definition: winguest.h:525
_WIN_KM_FIELD_PROCESS
Indexes in the WIN_OPAQUE_FIELDS.Km.Process array, containing offsets inside the _EPROCESS structure...
Definition: winguest.h:263
Offset of ActiveProcessLinks.
Definition: winguest.h:269
enum _WIN_KM_FIELD_FILE_OBJECT WIN_KM_FIELD_FILE_OBJECT
Indexes in the WIN_OPAQUE_FIELDS.Km.FileObject array, containing information about the _FILE_OBJECT s...
QWORD PsCreateSystemThread
Guest virtual address of the PsCreateSystemThread kernel function.
Definition: winguest.h:798
The end of the fields.
Definition: winguest.h:366
The offset of the SizeOfImage field for 64-bit modules.
Definition: winguest.h:164
QWORD HalpInterruptControllerGva
Guest virtual address of the HalpInterruptController (owned by hal.dll).
Definition: winguest.h:806
enum _WIN_KM_FIELD_VAD_SHORT WIN_KM_FIELD_VAD_SHORT
Indexes in the WIN_OPAQUE_FIELDS.Km.VadShort array, containing information about the _MMVAD_SHORT str...
Mask for Flag3Crashed from _EPROCESS.Flags.
Definition: winguest.h:467
_WIN_KM_FIELD_EPROCESSFLAGS
Indexes in the WIN_OPAQUE_FIELDS.Km.EprocessFlags array, containing information about the flags insid...
Definition: winguest.h:462
The object was detected after it was created.
Definition: winguest.h:148
Offset of u3.ReferenceCount when PAE is enabled.
Definition: winguest.h:405
Offset of InterruptControllerType.
Definition: winguest.h:443
Offset of RestrictedSidCount.
Definition: winguest.h:423
#define _Field_size_(expr)
Definition: intro_sal.h:41
Antivirus modules.
Definition: winguest.h:117
enum _WIN_KM_FIELD_UNGROUPED WIN_KM_FIELD_UNGROUPED
Indexes in the WIN_OPAQUE_FIELDS.Km.Ungrouped array, containing information about various kernel stru...
DWORD Size
The size of the read.
Definition: winguest.h:857
INTSTATUS IntWinGetVersionString(DWORD FullStringSize, DWORD VersionStringSize, CHAR *FullString, CHAR *VersionString)
Gets the version string for a Windows guest.
Definition: winguest.c:3064
struct _WIN_INIT_SWAP WIN_INIT_SWAP
The initialization swap handle.
enum _WIN_KM_FIELD_DRVOBJ WIN_KM_FIELD_DRVOBJ
Indexes in the WIN_OPAQUE_FIELDS.Km.DrvObj array, containing information about the _DRIVER_OBJECT str...
The offset at which spare space is found inside the structure.
Definition: winguest.h:290
QWORD PsActiveProcessHead
Guest virtual address of the PsActiveProcessHead kernel variable.
Definition: winguest.h:821
DWORD TimeDateStamp
The time date stamp of the image, as taken from the MZPE headers.
Definition: winguest.h:774
QWORD PsLoadedModuleList
Guest virtual address of the PsLoadedModuleList kernel variable.
Definition: winguest.h:822
Used for the WIN_OPAQUE_FIELDS.Km.Process array.
Definition: winguest.h:220
The end of the fields.
Definition: winguest.h:210
WIN_PRODUCT_TYPE
The type of the Windows OS.
Definition: winguest.h:781
Offset of ImageFileName.
Definition: winguest.h:270
struct _WIN_OPAQUE_FIELDS * PWIN_OPAQUE_FIELDS
LIST_ENTRY Link
Entry inside the gWinProtectedProcesses list.
Definition: winguest.h:77
unsigned long long QWORD
Definition: intro_types.h:53
INTSTATUS IntWinGuestInit(void)
Initializes a new Windows guest.
Definition: winguest.c:645
enum _WIN_UM_STRUCTURE WIN_UM_STRUCTURE
Structure tags used for the user mode structures.Each of these refers to a WIN_OPAQUE_FIELDS.Um field.
CHAR ImageBaseNamePattern[IMAGE_BASE_NAME_LEN]
Process name pattern.
Definition: winguest.h:28
struct _PROTECTED_MODULE_INFO PROTECTED_MODULE_INFO
Encapsulates a protected Windows kernel module.
Offset of FastIoDispatch.
Definition: winguest.h:344
QWORD Beta
Flags that were forced to beta (log-only) mode.
Definition: winguest.h:50
_WIN_KM_FIELD_PCR
Indexes in the WIN_OPAQUE_FIELDS.Km.Pcr array, containing information about the _KPCR structure...
Definition: winguest.h:358
The relevant size of the _PEB for 64-bit processes.
Definition: winguest.h:183
QWORD Ssdt
Guest virtual address of the SSDT structure inside the kernel.
Definition: winguest.h:804
enum _WIN_KM_FIELD_POOLDESCRIPTOR WIN_KM_FIELD_POOLDESCRIPTOR
Indexes in the WIN_OPAQUE_FIELDS.Km.PoolDescriptor array, containing information about the _POOL_DESC...
Offset of InheritedFromUniqueProcessId.
Definition: winguest.h:273
The minimum size that must be read from the guest in order to properly parse winKmFieldVadShortFlags...
Definition: winguest.h:514
Information that can identify a module.
Definition: winguest.h:771
The end of the fields.
Definition: winguest.h:541
_WIN_KM_FIELD_VADFLAGS
Indexes in the WIN_OPAQUE_FIELDS.Km.VadFlags array, containing information about the bits in the winK...
Definition: winguest.h:563
WIN_OPAQUE_FIELDS OsSpecificFields
OS-dependent and specific information (variables, offsets, etc).
Definition: winguest.h:843
Offset of Tcb.KernelStack.
Definition: winguest.h:307
Offset of Tcb.ThreadListEntry (not the one found directly in the _ETHREAD).
Definition: winguest.h:306
The end of the fields.
Definition: winguest.h:603
Offset of Token.
Definition: winguest.h:277
Used for the WIN_OPAQUE_FIELDS.Km.Thread array.
Definition: winguest.h:221
struct _WINDOWS_GUEST * PWINDOWS_GUEST
Xen-specific Citrix modules.
Definition: winguest.h:118
Offset of Tcb.WaitReason.
Definition: winguest.h:311
Offset of LeftChild.
Definition: winguest.h:488
QWORD VirtualAddress
The guest virtual address that will be read.
Definition: winguest.h:856
Offset of CreateTime.
Definition: winguest.h:275
char * PCHAR
Definition: intro_types.h:56
_WIN_UM_FIELD_DLL
Indexes in the WIN_OPAQUE_FIELDS.Um.Dll array, containing offsets inside the _LDR_DATA_TABLE_ENTRY st...
Definition: winguest.h:160
PWCHAR FullPathPattern
Full application path pattern.
Definition: winguest.h:65
struct _PROTECTED_PROCESS_INFO::@206 Protection
The protection flags used for this process.
The end of the tags.
Definition: winguest.h:255
struct _WIN_UNEXPORTED_FUNCTION_PATTERN WIN_UNEXPORTED_FUNCTION_PATTERN
Describes a pattern for a kernel function that is not exported.
Offset of Flags3.
Definition: winguest.h:283
const WCHAR * Path
Definition: winguest.h:128
Describes a function that is not exported.
Definition: winguest.h:99
The size of the _MMPFN structure when PAE is enabled.
Definition: winguest.h:403
enum _WIN_KM_FIELD_PROCESS WIN_KM_FIELD_PROCESS
Indexes in the WIN_OPAQUE_FIELDS.Km.Process array, containing offsets inside the _EPROCESS structure...
_WIN_KM_FIELD_POOLDESCRIPTOR
Indexes in the WIN_OPAQUE_FIELDS.Km.PoolDescriptor array, containing information about the _POOL_DESC...
Definition: winguest.h:375
The end of the fields.
Definition: winguest.h:383
The offset of the ESP in the winUmFieldTebWow64SaveArea.
Definition: winguest.h:205
uint16_t WCHAR
Definition: intro_types.h:63
enum _WIN_KM_FIELD_THREAD WIN_KM_FIELD_THREAD
Indexes in the WIN_OPAQUE_FIELDS.Km.Thread array, containing offsets inside the _ETHREAD structure...
uint32_t DWORD
Definition: intro_types.h:49
DWORD KernelBufferSize
The size of the KernelBuffer.
Definition: winguest.h:838
Used for the WIN_OPAQUE_FIELDS.Km.DrvObj array.
Definition: winguest.h:222
Offset of Peb.
Definition: winguest.h:279
Used for the WIN_OPAQUE_FIELDS.Km.Ungrouped array.
Definition: winguest.h:227
void IntWinGuestUninit(void)
Uninits a Windows guest.
Definition: winguest.c:675
Holds information about a Windows guest.
Definition: winguest.h:796
Offset of UniqueProcessId.
Definition: winguest.h:272
Mask for VmDeleted from _EPROCESS.Flags.
Definition: winguest.h:468
The end of the fields.
Definition: winguest.h:637
The end of the fields.
Definition: winguest.h:474
_WIN_KM_STRUCTURE
Structure tags used for the kernel mode structures.Each of these refers to a WIN_OPAQUE_FIELDS.Km field.
Definition: winguest.h:218
enum _WIN_KM_STRUCTURE WIN_KM_STRUCTURE
Structure tags used for the kernel mode structures.Each of these refers to a WIN_OPAQUE_FIELDS.Km field.
Offset of Tcb.StackLimit.
Definition: winguest.h:309
Used for the WIN_OPAQUE_FIELDS.Km.PoolDescriptor array.
Definition: winguest.h:224
struct _PROTECTED_MODULE_INFO * PPROTECTED_MODULE_INFO
Offset of Cid.UniqueThread.
Definition: winguest.h:314
PATTERN_SIGNATURE Signature
The pattern signature.
Definition: winguest.h:91
QWORD KeServiceDescriptorTable
Guest virtual address of the KeServiceDescriptorTable variable.
Definition: winguest.h:803
QWORD ObpRootDirectoryObject
Guest virtual address of the ObpRootDirectoryObject.
Definition: winguest.h:824
Used for the WIN_OPAQUE_FIELDS.Km.VadShort array.
Definition: winguest.h:229
Offset of UserAndGroupCount.
Definition: winguest.h:422
The end of the fields.
Definition: winguest.h:411
Offset of Pcb.Flags.
Definition: winguest.h:268
DWORD PatternsCount
The number of entries in the Patterns array.
Definition: winguest.h:105
Offset of TotalBytes.
Definition: winguest.h:377
Offset of Tcb.Teb.
Definition: winguest.h:313
Encapsulates a protected Windows kernel module.
Definition: winguest.h:124
Offset of FilePointer in _CONTROL_AREA.
Definition: winguest.h:441
The end of the tags.
Definition: winguest.h:238
_WIN_KM_FIELD_THREAD
Indexes in the WIN_OPAQUE_FIELDS.Km.Thread array, containing offsets inside the _ETHREAD structure...
Definition: winguest.h:303
DWORD NameHash
Crc32 checksum of the function name.
Definition: winguest.h:102
LIST_HEAD InitSwapHandles
A list of swap handles used to read KernelBuffer.
Definition: winguest.h:841
DWORD RemainingSections
The number of kernel sections not yet read into KernelBuffer.
Definition: winguest.h:840
INTSTATUS IntWinGuestProtectSudExec(void)
Protects SharedUserData against executions by establishing an EPT hook on it.
Definition: winguest.c:1100
Offset of u3.ReferenceCount.
Definition: winguest.h:400
_WIN_KM_FIELD_FILE_OBJECT
Indexes in the WIN_OPAQUE_FIELDS.Km.FileObject array, containing information about the _FILE_OBJECT s...
Definition: winguest.h:629
The initialization swap handle.
Definition: winguest.h:851
The size of the _DRIVER_OBJECT structure.
Definition: winguest.h:336
The offset of the FullDllName field for 64-bit modules.
Definition: winguest.h:166
QWORD DriverDirectory
Guest virtual address of the Driver namespace directory.
Definition: winguest.h:825
enum _WIN_UM_FIELD_TEB WIN_UM_FIELD_TEB
Indexes in the WIN_OPAQUE_FIELDS.Um.Teb array, containing offsets inside the _TEB structure...
The size of the allocation that precedes a driver object, excluding the POOL_HEADER (0x8/0x10 bytes)...
Definition: winguest.h:343
_WIN_KM_FIELD_TOKEN
Indexes in the WIN_OPAQUE_FIELDS.Km.Token array, containing information about the _TOKEN structure...
Definition: winguest.h:419
Workstation.
Definition: winguest.h:784
PCHAR NtBuildLabString
Definition: winguest.h:809
Mask for NoDebugInherit from _EPROCESS.Flags.
Definition: winguest.h:464
void IntWinGuestCancelKernelRead(void)
Cancels the kernel read.
Definition: winguest.c:611
BYTE * KernelBuffer
A buffer containing the entire kernel image.
Definition: winguest.h:837
The object was detected when it was created.
Definition: winguest.h:150
The size of the _MMPFN structure.
Definition: winguest.h:398
Core Windows kernel modules.
Definition: winguest.h:116
Offset of FileName.Buffer.
Definition: winguest.h:631
The offset of the SizeOfImage field for 64-bit modules.
Definition: winguest.h:165
DWORD NtBuildNumberValue
The value of the NtBuildNumber kernel variable.
Definition: winguest.h:802
Offset of RightChild.
Definition: winguest.h:490
Describes a signature that can be used for searching or matching guest contents.
Definition: patsig.h:23
The end of the fields.
Definition: winguest.h:350
struct _WIN_MODULE_UNIQUE_KEY PWIN_MODULE_UNIQUE_KEY
_WIN_UM_STRUCTURE
Structure tags used for the user mode structures.Each of these refers to a WIN_OPAQUE_FIELDS.Um field.
Definition: winguest.h:246
struct _WIN_INIT_SWAP * PWIN_INIT_SWAP
enum _WIN_KM_FIELD_MMPFN WIN_KM_FIELD_MMPFN
Indexes in the WIN_OPAQUE_FIELDS.Km.Mmpfn array, containing information about the _MMPFN structure...
The offset of the DllBase field for 32-bit modules.
Definition: winguest.h:163
char CHAR
Definition: intro_types.h:56
Describes a guest.
Definition: guests.h:265
PWCHAR FullNamePattern
Full application name pattern.
Definition: winguest.h:69
const WCHAR * Name
The name of the module.
Definition: winguest.h:127
void * SwapHandle
The actual swap handle returned by IntSwapMemRead.
Definition: winguest.h:854
Offset of Tcb.Process.
Definition: winguest.h:305
Offset of UserAndGroups.
Definition: winguest.h:424
Offset of TableCode _HANDLE_TABLE.
Definition: winguest.h:442
Used for the WIN_OPAQUE_FIELDS.Km.SyscallNumbers array.
Definition: winguest.h:232
Offset of MitigationFlags2 if it exists (>= RS3).
Definition: winguest.h:285
The NtProtectVirtualMemory syscall number.
Definition: winguest.h:614
DWORD ImageSize
The size of image, as taken from the MZPE headers.
Definition: winguest.h:773
The offset of the DllBase field for 64-bit modules.
Definition: winguest.h:162
enum _WIN_KM_FIELD_TOKEN WIN_KM_FIELD_TOKEN
Indexes in the WIN_OPAQUE_FIELDS.Km.Token array, containing information about the _TOKEN structure...
struct _GUEST_STATE * PGUEST_STATE
Definition: winguest.h:11
OBJ_DISCOVERY_TYPE
Describes the mode in which a kernel object was found.
Definition: winguest.h:143
Offset of SectionBaseAddress.
Definition: winguest.h:271
Offset of Pcb.ThreadListHead.
Definition: winguest.h:280
Contains information about various Windows user mode and kernel mode structures.Everything about a st...
Definition: winguest.h:661
Offset of u3.e1.
Definition: winguest.h:401