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 #include "detours.h"
11 
13 
15 #define IMAGE_BASE_NAME_LEN 16u
16 
18 #define IMAGE_FULL_PATH_LEN 260u
19 
21 #define PROT_PROC_FLAG_NO_PATH 0x00000001
22 
25 {
30 
34  struct
35  {
45 
59  } Protection;
60 
76 
80 
86 {
90  CHAR SectionHint[8];
95 
96 
102 {
105 
108  _Field_size_(PatternsCount)
111 
115 typedef enum
116 {
122 
127 {
128  PROTECTED_MODULE_TYPE Type;
129  const WCHAR *Name;
130  const WCHAR *Path;
131  const WCHAR *DriverObject;
135 
141 
145 typedef enum
146 {
154 
162 typedef enum _WIN_UM_FIELD_DLL
163 {
176 
183 typedef enum _WIN_UM_FIELD_PEB
184 {
193 
199 typedef enum _WIN_UM_FIELD_TEB
200 {
214 
220 typedef enum _WIN_KM_STRUCTURE
221 {
242 
248 typedef enum _WIN_UM_STRUCTURE
249 {
259 
266 {
293 
300 
307 {
328 
335 {
356 
362 typedef enum _WIN_KM_FIELD_PCR
363 {
374 
382 {
391 
403 {
408 
419 
426 {
438 
446 {
468 
476 {
490 
498 {
541 
549 {
557 
578 {
586 
594 
604 
607 
612 
619 
626 {
636 
644 {
653 
675 typedef struct _WIN_OPAQUE_FIELDS
676 {
678  struct
679  {
708  } Km;
709 
711  struct
712  {
719  } Um;
721 
740 #define WIN_KM_FIELD(Structure, Field) gWinGuest->OsSpecificFields.Km.Structure[winKmField##Structure##Field]
741 
758 #define WIN_SYSCALL_NUMBER(Syscall) WIN_KM_FIELD(SyscallNumbers, Syscall)
759 
778 #define WIN_UM_FIELD(Structure, Field) gWinGuest->OsSpecificFields.Um.Structure[winUmField##Structure##Field]
779 
786 {
790 
795 typedef enum
796 {
806 
810 typedef struct _WINDOWS_GUEST
811 {
822 
824  PCHAR VersionString;
832 
833  WIN_PRODUCT_TYPE ProductType;
834 
841 
853 
856 
859 
865 typedef struct _WIN_INIT_SWAP
866 {
868  void *SwapHandle;
869 
873 
874 INTSTATUS
876  void
877  );
878 
879 INTSTATUS
881  void
882  );
883 
884 void
886  void
887  );
888 
889 void
891  void
892  );
893 
894 INTSTATUS
896  _In_ DWORD FullStringSize,
897  _In_ DWORD VersionStringSize,
898  _Out_ CHAR *FullString,
899  _Out_ CHAR *VersionString
900  );
901 
902 #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:174
Offset of ParentValue.
Definition: winguest.h:500
_WIN_KM_FIELD_VAD_SHORT
Indexes in the WIN_OPAQUE_FIELDS.Km.VadShort array, containing information about the _MMVAD_SHORT str...
Definition: winguest.h:497
Advanced server.
Definition: winguest.h:799
The relevant size of the _TEB for 64-bit processes.
Definition: winguest.h:201
#define _Out_
Definition: intro_sal.h:22
Offset of Tcb.ApcState.Process.
Definition: winguest.h:315
Offset of Wow64Process (only for 64-bit guests).
Definition: winguest.h:283
Used for the WIN_OPAQUE_FIELDS.Um.Peb array.
Definition: winguest.h:251
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:276
Offset of Tcb.State.
Definition: winguest.h:313
QWORD MmPfnDatabase
Guest virtual address of the PFN data base.
Definition: winguest.h:837
PROTECTED_MODULE_TYPE Type
The type of the module.
Definition: winguest.h:128
QWORD PropperSyscallGva
Guest virtual address of the KiSystemServiceUser function.
Definition: winguest.h:821
DWORD Original
The original protection flags as received from GLUE_IFACE.AddRemoveProtectedProcessUtf16 or GLUE_IFAC...
Definition: winguest.h:38
QWORD FileSystemDirectory
Guest virtual address of the FileSystem namespace directory.
Definition: winguest.h:840
The NtWriteSyscallMemory syscall number.
Definition: winguest.h:627
uint8_t BYTE
Definition: intro_types.h:47
The minimum offset of Type inside HalInterruptController.
Definition: winguest.h:460
QWORD RequiredFlags
The introcore options that need to be active in order to protect this module.
Definition: winguest.h:139
Offset of PteAddress (or PteLong).
Definition: winguest.h:405
#define _In_
Definition: intro_sal.h:21
QWORD SyscallAddress
Guest virtual address of the SYSCALL/SYSENTER handler.
Definition: winguest.h:815
The end of the fields.
Definition: winguest.h:466
QWORD Context
The context supplied in the protection policy.
Definition: winguest.h:75
Offset of PrcbData.CurrentThread.
Definition: winguest.h:364
Used for the WIN_OPAQUE_FIELDS.Um.Dll array.
Definition: winguest.h:250
The end of the fields.
Definition: winguest.h:634
Offset of Win32StartAddress.
Definition: winguest.h:320
Used for the WIN_OPAQUE_FIELDS.Km.VadLong array.
Definition: winguest.h:232
The end of the fields.
Definition: winguest.h:436
struct _WIN_UNEXPORTED_FUNCTION_PATTERN * PWIN_UNEXPORTED_FUNCTION_PATTERN
Information not yet loaded.
Definition: winguest.h:797
_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:625
The product type is unknown.
Definition: winguest.h:804
_WIN_KM_FIELD_MMPFN
Indexes in the WIN_OPAQUE_FIELDS.Km.Mmpfn array, containing information about the _MMPFN structure...
Definition: winguest.h:402
struct _PROTECTED_PROCESS_INFO * PPROTECTED_PROCESS_INFO
The size of the _FAST_IO_DISPATCH structure.
Definition: winguest.h:345
_WIN_UM_FIELD_TEB
Indexes in the WIN_OPAQUE_FIELDS.Um.Teb array, containing offsets inside the _TEB structure...
Definition: winguest.h:199
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:814
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:867
Mask for Exiting from _EPROCESS.Flags.
Definition: winguest.h:478
struct _PROTECTED_PROCESS_INFO PROTECTED_PROCESS_INFO
Encapsulates a protected Windows process.
The end of the fields.
Definition: winguest.h:326
Offset of Pcb.UserDirectoryTableBase if it exists, DirectoryTableBase if not.
Definition: winguest.h:269
WIN_PRODUCT_TYPE ProductType
The product type. Obtained directly from the guest during initialization.
Definition: winguest.h:833
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:117
Offset of ExitStatus.
Definition: winguest.h:278
struct _WINDOWS_GUEST WINDOWS_GUEST
Holds information about a Windows guest.
DWORD Current
The currently used protection flags.
Definition: winguest.h:44
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:58
Offset of Tcb.StackBase.
Definition: winguest.h:311
The offset relative tot he EtwDebuggerData structure at which the ETW signature is found...
Definition: winguest.h:453
Offset of Flags.
Definition: winguest.h:284
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:410
The end of the fields.
Definition: winguest.h:191
Offset of ControlArea in _SUBSECTION.
Definition: winguest.h:454
The end of the fields.
Definition: winguest.h:298
Used for the WIN_OPAQUE_FIELDS.Km.Mmpfn array.
Definition: winguest.h:227
Offset of ClientSecurity.
Definition: winguest.h:318
PROTECTED_MODULE_TYPE
Protected kernel module types.
Definition: winguest.h:115
DWORD NumberOfServices
The number of entries in the SSDT.
Definition: winguest.h:819
Used for the WIN_OPAQUE_FIELDS.Km.VadFlags array.
Definition: winguest.h:233
Offset of MitigationFlags if it exists (>= RS3).
Definition: winguest.h:286
Used for the WIN_OPAQUE_FIELDS.Km.EprocessFlags array.
Definition: winguest.h:230
Used for the WIN_OPAQUE_FIELDS.Km.Pcr array.
Definition: winguest.h:225
Offset of GetCpuClock in _WMI_LOGGER_CONTEXT.
Definition: winguest.h:450
DWORD Flags
Flags that describe the protection mode.
Definition: winguest.h:64
QWORD ExAllocatePoolWithTag
Guest virtual address of the ExAllocatePoolWithTag kernel function.
Definition: winguest.h:813
Offset of ObjectTable.
Definition: winguest.h:280
PCHAR ServerVersionString
A NULL terminated string containing Windows server version information.
Definition: winguest.h:831
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:15
Mask for Delete from _EPROCESS.Flags.
Definition: winguest.h:479
Offset of Privileges.
Definition: winguest.h:427
_WIN_KM_FIELD_DRVOBJ
Indexes in the WIN_OPAQUE_FIELDS.Km.DrvObj array, containing information about the _DRIVER_OBJECT str...
Definition: winguest.h:334
Offset of Tcb.TrapFrame.
Definition: winguest.h:319
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:534
_WIN_UM_FIELD_PEB
Indexes in the WIN_OPAQUE_FIELDS.Um.Peb array, containing offsets inside the _PEB structure...
Definition: winguest.h:183
Describes a pattern for a kernel function that is not exported.
Definition: winguest.h:85
_WIN_KM_FIELD_UNGROUPED
Indexes in the WIN_OPAQUE_FIELDS.Km.Ungrouped array, containing information about various kernel stru...
Definition: winguest.h:445
Used for the WIN_OPAQUE_FIELDS.Km.Token array.
Definition: winguest.h:228
_WIN_KM_FIELD_VAD_LONG
Indexes in the WIN_OPAQUE_FIELDS.Km.VadLong array, containing information about the _MMVAD_LONG struc...
Definition: winguest.h:548
The mask that must be applied for the private fix-up setting.
Definition: winguest.h:606
Encapsulates a protected Windows process.
Definition: winguest.h:24
INTSTATUS IntWinGuestNew(void)
Starts the initialization and protection process for a new Windows guest.
Definition: winguest.c:2346
The end of the fields.
Definition: winguest.h:539
Offset of Prcb inside KPCR.
Definition: winguest.h:366
_WIN_KM_FIELD_PROCESS
Indexes in the WIN_OPAQUE_FIELDS.Km.Process array, containing offsets inside the _EPROCESS structure...
Definition: winguest.h:265
The guest detour API.
Offset of ActiveProcessLinks.
Definition: winguest.h:271
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:812
The end of the fields.
Definition: winguest.h:372
The offset of the SizeOfImage field for 64-bit modules.
Definition: winguest.h:166
QWORD HalpInterruptControllerGva
Guest virtual address of the HalpInterruptController (owned by hal.dll).
Definition: winguest.h:820
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:480
_WIN_KM_FIELD_EPROCESSFLAGS
Indexes in the WIN_OPAQUE_FIELDS.Km.EprocessFlags array, containing information about the flags insid...
Definition: winguest.h:475
The object was detected after it was created.
Definition: winguest.h:150
Offset of u3.ReferenceCount when PAE is enabled.
Definition: winguest.h:411
Offset of InterruptControllerType.
Definition: winguest.h:449
Offset of RestrictedSidCount.
Definition: winguest.h:429
#define _Field_size_(expr)
Definition: intro_sal.h:41
Antivirus modules.
Definition: winguest.h:119
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:871
INTSTATUS IntWinGetVersionString(DWORD FullStringSize, DWORD VersionStringSize, CHAR *FullString, CHAR *VersionString)
Gets the version string for a Windows guest.
Definition: winguest.c:2650
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:292
QWORD PsActiveProcessHead
Guest virtual address of the PsActiveProcessHead kernel variable.
Definition: winguest.h:835
DWORD TimeDateStamp
The time date stamp of the image, as taken from the MZPE headers.
Definition: winguest.h:788
QWORD PsLoadedModuleList
Guest virtual address of the PsLoadedModuleList kernel variable.
Definition: winguest.h:836
Used for the WIN_OPAQUE_FIELDS.Km.Process array.
Definition: winguest.h:222
struct _PROTECTED_PROCESS_INFO::@211 Protection
The protection flags used for this process.
The end of the fields.
Definition: winguest.h:212
WIN_PRODUCT_TYPE
The type of the Windows OS.
Definition: winguest.h:795
Offset of ImageFileName.
Definition: winguest.h:272
struct _WIN_OPAQUE_FIELDS * PWIN_OPAQUE_FIELDS
LIST_ENTRY Link
Entry inside the gWinProtectedProcesses list.
Definition: winguest.h:78
unsigned long long QWORD
Definition: intro_types.h:53
INTSTATUS IntWinGuestInit(void)
Initializes a new Windows guest.
Definition: winguest.c:641
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:29
struct _PROTECTED_MODULE_INFO PROTECTED_MODULE_INFO
Encapsulates a protected Windows kernel module.
Offset of FastIoDispatch.
Definition: winguest.h:348
QWORD Beta
Flags that were forced to beta (log-only) mode.
Definition: winguest.h:51
_WIN_KM_FIELD_PCR
Indexes in the WIN_OPAQUE_FIELDS.Km.Pcr array, containing information about the _KPCR structure...
Definition: winguest.h:362
The relevant size of the _PEB for 64-bit processes.
Definition: winguest.h:185
QWORD Ssdt
Guest virtual address of the SSDT structure inside the kernel.
Definition: winguest.h:818
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:275
The minimum size that must be read from the guest in order to properly parse winKmFieldVadShortFlags...
Definition: winguest.h:528
Information that can identify a module.
Definition: winguest.h:785
The end of the fields.
Definition: winguest.h:555
_WIN_KM_FIELD_VADFLAGS
Indexes in the WIN_OPAQUE_FIELDS.Km.VadFlags array, containing information about the bits in the winK...
Definition: winguest.h:577
WIN_OPAQUE_FIELDS OsSpecificFields
OS-dependent and specific information (variables, offsets, etc).
Definition: winguest.h:857
Offset of Tcb.KernelStack.
Definition: winguest.h:310
Offset of Tcb.ThreadListEntry (not the one found directly in the _ETHREAD).
Definition: winguest.h:309
The end of the fields.
Definition: winguest.h:617
Offset of Token.
Definition: winguest.h:279
Used for the WIN_OPAQUE_FIELDS.Km.Thread array.
Definition: winguest.h:223
struct _WINDOWS_GUEST * PWINDOWS_GUEST
Xen-specific Citrix modules.
Definition: winguest.h:120
Offset of Tcb.WaitReason.
Definition: winguest.h:314
Offset of LeftChild.
Definition: winguest.h:502
QWORD VirtualAddress
The guest virtual address that will be read.
Definition: winguest.h:870
Offset of CreateTime.
Definition: winguest.h:277
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:162
PWCHAR FullPathPattern
Full application path pattern.
Definition: winguest.h:66
The end of the tags.
Definition: winguest.h:257
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:285
const WCHAR * Path
Definition: winguest.h:130
Describes a function that is not exported.
Definition: winguest.h:101
The size of the _MMPFN structure when PAE is enabled.
Definition: winguest.h:409
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:381
The end of the fields.
Definition: winguest.h:389
The offset of the ESP in the winUmFieldTebWow64SaveArea.
Definition: winguest.h:207
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:852
Used for the WIN_OPAQUE_FIELDS.Km.DrvObj array.
Definition: winguest.h:224
Offset of Peb.
Definition: winguest.h:281
Used for the WIN_OPAQUE_FIELDS.Km.Ungrouped array.
Definition: winguest.h:229
void IntWinGuestUninit(void)
Uninits a Windows guest.
Definition: winguest.c:671
Holds information about a Windows guest.
Definition: winguest.h:810
Offset of UniqueProcessId.
Definition: winguest.h:274
Mask for VmDeleted from _EPROCESS.Flags.
Definition: winguest.h:481
The end of the fields.
Definition: winguest.h:651
The end of the fields.
Definition: winguest.h:488
_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:220
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:312
The offset of the restored RSP value taken from RBP, which serves as a fake trapframe on Zw* calls on...
Definition: winguest.h:458
Describes the arguments passed by a in-guest detour handler to introcore.
Definition: detours.h:108
Used for the WIN_OPAQUE_FIELDS.Km.PoolDescriptor array.
Definition: winguest.h:226
struct _PROTECTED_MODULE_INFO * PPROTECTED_MODULE_INFO
Offset of Cid.UniqueThread.
Definition: winguest.h:317
PATTERN_SIGNATURE Signature
The pattern signature.
Definition: winguest.h:92
QWORD KeServiceDescriptorTable
Guest virtual address of the KeServiceDescriptorTable variable.
Definition: winguest.h:817
QWORD ObpRootDirectoryObject
Guest virtual address of the ObpRootDirectoryObject.
Definition: winguest.h:838
Used for the WIN_OPAQUE_FIELDS.Km.VadShort array.
Definition: winguest.h:231
Offset of UserAndGroupCount.
Definition: winguest.h:428
The end of the fields.
Definition: winguest.h:417
Offset of Pcb.Flags.
Definition: winguest.h:270
DWORD PatternsCount
The number of entries in the Patterns array.
Definition: winguest.h:107
Offset of TotalBytes.
Definition: winguest.h:383
Offset of Tcb.Teb.
Definition: winguest.h:316
Encapsulates a protected Windows kernel module.
Definition: winguest.h:126
Offset of FilePointer in _CONTROL_AREA.
Definition: winguest.h:447
The end of the tags.
Definition: winguest.h:240
_WIN_KM_FIELD_THREAD
Indexes in the WIN_OPAQUE_FIELDS.Km.Thread array, containing offsets inside the _ETHREAD structure...
Definition: winguest.h:306
DWORD NameHash
Crc32 checksum of the function name.
Definition: winguest.h:104
LIST_HEAD InitSwapHandles
A list of swap handles used to read KernelBuffer.
Definition: winguest.h:855
DWORD RemainingSections
The number of kernel sections not yet read into KernelBuffer.
Definition: winguest.h:854
Offset of u3.ReferenceCount.
Definition: winguest.h:406
_WIN_KM_FIELD_FILE_OBJECT
Indexes in the WIN_OPAQUE_FIELDS.Km.FileObject array, containing information about the _FILE_OBJECT s...
Definition: winguest.h:643
The initialization swap handle.
Definition: winguest.h:865
The size of the _DRIVER_OBJECT structure.
Definition: winguest.h:340
The offset of the FullDllName field for 64-bit modules.
Definition: winguest.h:168
QWORD DriverDirectory
Guest virtual address of the Driver namespace directory.
Definition: winguest.h:839
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:347
_WIN_KM_FIELD_TOKEN
Indexes in the WIN_OPAQUE_FIELDS.Km.Token array, containing information about the _TOKEN structure...
Definition: winguest.h:425
Workstation.
Definition: winguest.h:798
PCHAR NtBuildLabString
Definition: winguest.h:823
Mask for NoDebugInherit from _EPROCESS.Flags.
Definition: winguest.h:477
void IntWinGuestCancelKernelRead(void)
Cancels the kernel read.
Definition: winguest.c:607
BYTE * KernelBuffer
A buffer containing the entire kernel image.
Definition: winguest.h:851
The object was detected when it was created.
Definition: winguest.h:152
The size of the _MMPFN structure.
Definition: winguest.h:404
Core Windows kernel modules.
Definition: winguest.h:118
The maximum offset of Type inside HalInterruptController.
Definition: winguest.h:459
Offset of FileName.Buffer.
Definition: winguest.h:645
The offset of the SizeOfImage field for 64-bit modules.
Definition: winguest.h:167
DWORD NtBuildNumberValue
The value of the NtBuildNumber kernel variable.
Definition: winguest.h:816
Offset of RightChild.
Definition: winguest.h:504
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:354
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:248
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:165
char CHAR
Definition: intro_types.h:56
Describes a guest.
Definition: guests.h:269
PWCHAR FullNamePattern
Full application name pattern.
Definition: winguest.h:70
const WCHAR * Name
The name of the module.
Definition: winguest.h:129
void * SwapHandle
The actual swap handle returned by IntSwapMemRead.
Definition: winguest.h:868
Offset of Tcb.Process.
Definition: winguest.h:308
Offset of UserAndGroups.
Definition: winguest.h:430
Offset of TableCode _HANDLE_TABLE.
Definition: winguest.h:448
Used for the WIN_OPAQUE_FIELDS.Km.SyscallNumbers array.
Definition: winguest.h:234
Offset of MitigationFlags2 if it exists (>= RS3).
Definition: winguest.h:287
The NtProtectVirtualMemory syscall number.
Definition: winguest.h:628
Mask for HasAddrSpace from _EPROCESS.Flags.
Definition: winguest.h:482
DWORD ImageSize
The size of image, as taken from the MZPE headers.
Definition: winguest.h:787
The offset of the DllBase field for 64-bit modules.
Definition: winguest.h:164
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:12
OBJ_DISCOVERY_TYPE
Describes the mode in which a kernel object was found.
Definition: winguest.h:145
Offset of SectionBaseAddress.
Definition: winguest.h:273
Offset of Pcb.ThreadListHead.
Definition: winguest.h:282
Contains information about various Windows user mode and kernel mode structures.Everything about a st...
Definition: winguest.h:675
Offset of PrcbData.UserTime.
Definition: winguest.h:365
Offset of u3.e1.
Definition: winguest.h:407