Bitdefender Hypervisor Memory Introspection
winprocess.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 Bitdefender
3  * SPDX-License-Identifier: Apache-2.0
4  */
11 
12 #ifndef _WINPROCESS_H_
13 #define _WINPROCESS_H_
14 
15 #include "winumpath.h"
16 #include "winguest.h"
17 #include "update_guests.h"
18 #include "windpi.h"
19 
20 struct _WIN_PROCESS_OBJECT;
21 
22 #define WIN_STATUS_ACCESS_DENIED 0xC0000022
23 #define WIN_STATUS_SUCCESS 0x00000000
24 
25 
29 typedef enum _WIN_SUBSYTEM_TYPE
30 {
35 
40 {
41  winProcExitVad = 0x01,
47 
48 
52 typedef struct _WIN_PROCESS_SUBSYSTEM
53 {
56 
58 
61 
67 
69 
73 
77 
81 typedef struct _WIN_PROCESS_OBJECT
82 {
87 
91 
94 
95 
100 
103 
105 
107 
110 
113 
115 
116  union
117  {
120 
121  struct
122  {
125 
135  DWORD Lsass : 1;
136 
139 
143 
145 
150 
153 
156 
159 
163 
166  };
167  };
168 
171 
174 
177 
181 
184 
186 
189 
192 
193  union
194  {
197 
198  struct
199  {
206  DWORD ProtThreadCtx : 1;
208 
210  DWORD ProtCreation: 1;
212 
215  DWORD ProtRemediate : 1;
217 
219  DWORD ProtBeta : 1;
221  };
222  };
223 
226 
228 
232 
236 
238  void *VasMonRoot;
240 
242 
246 
250 
252 
253  void *SelfMapHook;
255 
258 
261 
264 
268 
272 
273  struct
274  {
276 
279 
282 
284 
288 
290  } CreationInfo;
291 
293 
296  PWIN_PROCESS_SUBSYSTEM Subsystemx86;
297 
300  PWIN_PROCESS_SUBSYSTEM Subsystemx64;
301 
302  void *TokenHook;
303 
307 
311 
315 
323 
325 
326 
327 static __forceinline QWORD
330  )
339 {
340  return Process->SystemProcess ? INTRO_OPT_PROT_UM_SYS_PROCS : INTRO_OPT_PROT_UM_MISC_PROCS;
341 }
342 
343 static __forceinline BOOLEAN
346  _In_ QWORD Flag
347  )
357 {
358  return Process->BetaDetections ||
360  (Process->BetaMask & Flag) != 0;
361 }
362 
363 static __forceinline BOOLEAN
366  _In_ QWORD Flag
367  )
377 {
378  return ((Process->FeedbackMask & Flag) ||
380 }
381 
382 INTSTATUS
384  _In_ void *Detour
385  );
386 
387 INTSTATUS
389  _In_ void *Detour
390  );
391 
392 INTSTATUS
394  _In_ void *Detour
395  );
396 
397 INTSTATUS
399  _In_ QWORD FunctionAddress,
400  _In_ void *Handler,
401  _In_ QWORD HandlerAddress
402  );
403 
404 INTSTATUS
406  _In_ QWORD FunctionAddress,
407  _In_ void *Handler,
408  _In_ QWORD HandlerAddress
409  );
410 
411 INTSTATUS
414  );
415 
416 INTSTATUS
419  );
420 
423  _In_ PWCHAR Path,
424  _In_ BOOLEAN IsSystem
425  );
426 
427 INTSTATUS
429  void
430  );
431 
432 INTSTATUS
435  _In_ QWORD EprocessAddress,
436  _In_ PBYTE EprocessBuffer,
437  _In_ QWORD ParentEprocess,
438  _In_ QWORD RealParentEprocess,
439  _In_ QWORD Cr3,
440  _In_ DWORD Pid,
441  _In_ BOOLEAN StaticScan
442  );
443 
444 INTSTATUS
446  void
447  );
448 
449 INTSTATUS
451  _In_ const WCHAR *Path,
452  _In_ DWORD ProtectionMask,
453  _In_ QWORD Context
454  );
455 
456 INTSTATUS
458  _In_ const WCHAR *Path
459  );
460 
461 INTSTATUS
463  void
464  );
465 
466 void
468  void
469  );
470 
471 void
473  void
474  );
475 
476 INTSTATUS
478  _In_ DWORD Pid,
480  );
481 
482 INTSTATUS
485  );
486 
487 INTSTATUS
490  _In_ DWORD OldMask,
491  _In_ DWORD NewMask
492  );
493 
494 void
496  _In_ const void *Name,
497  _In_ const CAMI_STRING_ENCODING Encoding,
498  _In_ const CAMI_PROT_OPTIONS *Options
499  );
500 
501 #endif // _WINPROCESS_H_
DWORD CommandLineSize
Includes the NULL terminator.
Definition: winprocess.h:114
PCHAR CommandLine
The command line with which the process was created (can be NULL).
Definition: winprocess.h:112
uint16_t * PWCHAR
Definition: intro_types.h:63
Process subsystem type unknown.
Definition: winprocess.h:31
PWIN_PROCESS_SUBSYSTEM Subsystemx64
The x64 subsystem. Note that a 32 bit process on a 64 bit OS may have both subsystems valid...
Definition: winprocess.h:300
BOOLEAN EnforcedDep
TRUE is the DEP (Data Execution Prevention) has been enforced.
Definition: winprocess.h:185
#define _Out_
Definition: intro_sal.h:22
_Bool BOOLEAN
Definition: intro_types.h:58
DWORD Flags
Windows process flags (possible values for this bitmask are described below).
Definition: winprocess.h:119
DWORD NtdllSize
The size of ntdll.dll.
Definition: winprocess.h:75
DWORD MonitorModules
TRUE if we need to monitor module load/unloads.
Definition: winprocess.h:161
void * UserCr3PageLockObject
The UserCR3 will be locked in memory, to prevent the OS from dynamically modifying the CR3 of a runni...
Definition: winprocess.h:235
uint8_t BYTE
Definition: intro_types.h:47
_WINPROC_GUEST_EXITS
Windows guest exit types.
Definition: winprocess.h:39
Describe the introcore protection options.
struct _WIN_PROCESS_OBJECT * PWIN_PROCESS_OBJECT
LIST_ENTRY Link
Entry within gWinProcesses (Doubly Linked List).
Definition: winprocess.h:83
const WCHAR * SystemDirPath
The location of the system directory (where the system DLLs are located). For wow64 processes...
Definition: winprocess.h:66
#define _In_
Definition: intro_sal.h:21
QWORD RealParentEprocess
The active EPROCESS at the moment of creation.
Definition: winprocess.h:90
INTSTATUS IntWinProcRemoveAllProtectedProcesses(void)
This function removed all the processes from the protected process list.
Definition: winprocess.c:3704
uint16_t WORD
Definition: intro_types.h:48
enum _WIN_SUBSYTEM_TYPE WIN_SUBSYTEM_TYPE
The Windows subsystem types.
CAMI_STRING_ENCODING
Describes the encoding of a string received from the CAMI file.
Definition: update_guests.h:52
void * ParamsSwapHandle
The swap memory handle for Process->Peb->ProcessParameters (used to read the command line of the proc...
Definition: winprocess.h:245
DWORD ProtCoreModules
Protect the core module loaded by the process.
Definition: winprocess.h:201
QWORD FeedbackMask
The protection mask in feedback mode.
Definition: winprocess.h:225
Exits caused by "MmCopyVirtualMemory".
Definition: winprocess.h:42
INTSTATUS IntWinProcUnprotect(WIN_PROCESS_OBJECT *Process)
Remove a process from protection.
Definition: winprocess.c:3071
DWORD Lsass
TRUE if this is the lsass process.
Definition: winprocess.h:135
BOOLEAN LastExceptionContinuable
TRUE if the last exception is continuable (for example a #PF that was caused due to the way the OS do...
Definition: winprocess.h:180
static BOOLEAN IntWinProcPolicyIsFeedback(const WIN_PROCESS_OBJECT *Process, QWORD Flag)
Checks if the given process is protected with the provided flag (in feedback mode).
Definition: winprocess.h:364
Definition: rbtree.h:34
DWORD ProtReserved1
RESERVED.
Definition: winprocess.h:200
QWORD Context
Context from integrator if the process is protected, 0 otherwise.
Definition: winprocess.h:260
BOOLEAN FirstDominoJavaIgnored
TRUE if the first Domino Java execution VAD was ignored.
Definition: winprocess.h:191
Windows process subsystem.
Definition: winprocess.h:52
DWORD UnpackProtected
TRUE if the main module has been protected against unpacks.
Definition: winprocess.h:131
WORD OriginalSpareValue
We put in guest * and some flags in order to decide whether to raise a VM exit on a process...
Definition: winprocess.h:267
BYTE InjectionsCount
The number of injections allowed at the initialization.
Definition: winprocess.h:169
BYTE PebWrittenCount
The number writes to the (Process Environment Block).
Definition: winprocess.h:170
Exits caused by "NtQueueApcThreadEx".
Definition: winprocess.h:45
#define _Outptr_
Definition: intro_sal.h:19
INTSTATUS IntWinProcHandleTerminate(void *Detour)
This functions handles the termination of a Windows process.This function is invoked every time "MmCl...
Definition: winprocess.c:2506
int INTSTATUS
The status data type.
Definition: introstatus.h:24
BOOLEAN ImageIsFromNativeSubsystem
TRUE if the process image is from the native subsystem.
Definition: winprocess.h:262
struct _WIN_PROCESS_OBJECT WIN_PROCESS_OBJECT
This structure describes a running process inside the guest.
DWORD OneTimeInjectionDone
The one time injection already took place (exception).
Definition: winprocess.h:151
struct _WIN_PROCESS_SUBSYSTEM * PWIN_PROCESS_SUBSYSTEM
DWORD NameHash
Name hash, as used by the exceptions module.
Definition: winprocess.h:99
DWORD ProtectedModulesCount
Number of protected modules inside this process.
Definition: winprocess.h:59
QWORD Peb64Address
PEB 64 address (on x86 OSes, this will be 0).
Definition: winprocess.h:101
QWORD DebuggerEprocess
This will keep the EPROCESS of the debugger process (if any).
Definition: winprocess.h:278
void * UserSelfMapHook
The user self mapping memory hook.
Definition: winprocess.h:254
#define IMAGE_BASE_NAME_LEN
The maximum length of a process name.
Definition: winguest.h:14
BOOLEAN IntPolicyIsCoreOptionFeedback(QWORD Flag)
Checks if a core protection option is in feedback-only mode.
Definition: introcore.c:2829
QWORD MainModuleAddress
The address of the main module.
Definition: winprocess.h:104
BOOLEAN IsDominoJava
True if this is a Java IBM process and j9jit.dll is loaded.
Definition: winprocess.h:190
_WIN_SUBSYTEM_TYPE
The Windows subsystem types.
Definition: winprocess.h:29
QWORD ParentEprocess
The EPROCESS of the parent process.
Definition: winprocess.h:89
#define INTRO_OPT_PROT_UM_SYS_PROCS
Enable user-mode system processes protection (injection only).
Definition: intro_types.h:421
Process subsystem type 32 bit.
Definition: winprocess.h:33
INTSTATUS IntWinProcValidateSystemCr3(void)
This function checks if the system CR3 value was modified and if GUEST_STATE::KernelBetaDetections is...
Definition: winprocess.c:3195
DWORD Protected
TRUE if this is a protected process. If this is FALSE, most of the above fields aren't used at all...
Definition: winprocess.h:128
Encapsulates a protected Windows process.
Definition: winguest.h:23
DWORD Wow64Process
TRUE if this is a 32 bit process on a 64 bit OS.
Definition: winprocess.h:123
DWORD InjectedApphelp
TRUE if AppHelp was injected.
Definition: winprocess.h:142
BOOLEAN IntPolicyCoreIsOptionBeta(QWORD Flag)
Checks if one of the kernel protection options is in log-only mode.
Definition: introcore.c:2603
const PROTECTED_PROCESS_INFO * IntWinProcGetProtectedInfoEx(PWCHAR Path, BOOLEAN IsSystem)
Returns a pointer to the PROTECTED_PROCESS_INFO structure for the given process Path.
Definition: winprocess.c:1063
static BOOLEAN IntWinProcPolicyIsBeta(const WIN_PROCESS_OBJECT *Process, QWORD Flag)
Checks if the given process is protected with the provided flag (in beta mode).
Definition: winprocess.h:344
DWORD LastPebWriteDone
TRUE if the write into PEB is done (used for initialization checks).
Definition: winprocess.h:141
QWORD NtdllBase
The base address for ntdll.dll.
Definition: winprocess.h:74
QWORD Cr3
Process PDBR. Includes PCID.
Definition: winprocess.h:96
DWORD MainModuleLoaded
TRUE if the main module has been loaded.
Definition: winprocess.h:130
BOOLEAN MainModuleLoaded
TRUE if the MainModule was loaded.
Definition: winprocess.h:70
QWORD OriginalPresentPrivs
Saved value of the Privileges Present bitfield inside the nt!_TOKEN structure assigned to the current...
Definition: winprocess.h:306
DWORD LateProtection
TRUE if the protection was not activated right from start.
Definition: winprocess.h:152
QWORD CreationTime
The creation time of the process, as stored inside the EPROCESS.
Definition: winprocess.h:93
static QWORD IntWinProcGetProtOption(const WIN_PROCESS_OBJECT *Process)
Get the protection type for the given process.
Definition: winprocess.h:328
WINUM_PATH * Path
Will point inside the loaded modules list to the full process path.
Definition: winprocess.h:109
void IntWinProcDumpProtected(void)
Log all the protected processes.
Definition: winprocess.c:3736
INTSTATUS IntWinProcAddProtectedProcess(const WCHAR *Path, DWORD ProtectionMask, QWORD Context)
This function adds the provided process to the protected process list.
Definition: winprocess.c:3536
uint8_t * PBYTE
Definition: intro_types.h:47
DWORD IsPreviousAgent
TRUE if this is an agent injected in a previous session.
Definition: winprocess.h:162
DWORD ProtDoubleAgent
Protect the process against double agent attacks.
Definition: winprocess.h:213
RBNODE NodeEproc
Entry within gWinProcTreeEprocess (RB Tree).
Definition: winprocess.h:86
#define INTRO_OPT_PROT_UM_MISC_PROCS
Definition: intro_types.h:419
unsigned long long QWORD
Definition: intro_types.h:53
DWORD LoadedModulesCount
The number of modules that were loaded.
Definition: winprocess.h:60
BOOLEAN HasNaClEnabled
Only valid for chromium-based browsers; TRUE if this is a NaCl process.
Definition: winprocess.h:183
QWORD UserCr3
Process user PDBR. Includes PCID.
Definition: winprocess.h:97
DWORD Terminating
TRUE if the process is terminating (cleanup pending).
Definition: winprocess.h:124
BYTE NtdllLoadCount
Number of ntdll.dll loads.
Definition: winprocess.h:71
DWORD StartInitializing
TRUE if the process actually started initializing (there is a time windows from the moment we add the...
Definition: winprocess.h:149
DWORD ProtectionMask
Protection mask: tells us what level of protection will be activated for this process.
Definition: winprocess.h:196
BOOLEAN ParentThreadSuspicious
The parent thread start address was considered suspicious.
Definition: winprocess.h:289
QWORD LastExceptionRip
The RIP of the last exception that took place.
Definition: winprocess.h:176
DWORD ExitStatus
The exit status of the process (used when sending the process terminated event).
Definition: winprocess.h:188
DWORD Peb64ContextWritten
TURE if the Process Environment Block (x64) context was written (valid only on Windows 7)...
Definition: winprocess.h:158
DPI_EXTRA_INFO DpiExtraInfo
Represents the gathered extra info while checking the DPI heuristics.
Definition: winprocess.h:292
Exits caused by "MiCommitExistingVad".
Definition: winprocess.h:41
INTSTATUS IntWinProcGetObjectByPid(DWORD Pid, WIN_PROCESS_OBJECT **Process)
This function looks for a process with the given PID inside gWinProcesses and returns its WIN_PROCESS...
Definition: winprocess.c:3834
struct _WIN_PROCESS_OBJECT * Process
The process object related to this subsystem.
Definition: winprocess.h:54
Exposes the definitions used by the CAMI parser and the functions used to load guest support informat...
void * TokenHook
Hook object for the ept hook over nt!_TOKEN Privileges field.
Definition: winprocess.h:302
QWORD SelfMapEntryValue
The self mapping memory entry value.
Definition: winprocess.h:256
char * PCHAR
Definition: intro_types.h:56
QWORD BetaMask
The protection mask in beta mode.
Definition: winprocess.h:224
BYTE Kernel32LoadCount
Number of kernel32.dll loads.
Definition: winprocess.h:72
INTSTATUS IntWinProcCreateProcessObject(WIN_PROCESS_OBJECT **Process, QWORD EprocessAddress, PBYTE EprocessBuffer, QWORD ParentEprocess, QWORD RealParentEprocess, QWORD Cr3, DWORD Pid, BOOLEAN StaticScan)
Allocates a WIN_PROCESS_OBJECT structure for the given process.
Definition: winprocess.c:1494
INTSTATUS IntWinProcPatchCopyMemoryDetour(QWORD FunctionAddress, void *Handler, QWORD HandlerAddress)
This functions is responsible for patching the detour that handles the "MmCopyVirtualMemory".This function is invoked every time "MmCopyVirtualMemory" is called (a process is writing/reading another process) but before the actual handler IntWinProcHandleCopyMemory, its purpose being to modify the hook code (see winhkhnd.c).
Definition: winprocess.c:2570
DWORD Pid
Process ID (the one used by Windows).
Definition: winprocess.h:98
Process subsystem type 64 bit.
Definition: winprocess.h:32
QWORD TokenStolenFromEprocess
This will keep the EPROCESS of the process from which the current process stole the token...
Definition: winprocess.h:281
RBTREE VadTree
RB-Tree of process VADs.
Definition: winprocess.h:237
DWORD InjectedAppHelpSize
The size of the injected apphelp (during initialization).
Definition: winprocess.h:173
DWORD BetaDetections
TRUE if BETA is enabled for this particular process.
Definition: winprocess.h:133
INTSTATUS IntWinProcChangeProtectionFlags(WIN_PROCESS_OBJECT *Process, DWORD OldMask, DWORD NewMask)
This function changes the protection flags for the given process.
Definition: winprocess.c:3877
void * SelfMapHook
The self mapping memory hook.
Definition: winprocess.h:253
#define __forceinline
Definition: introtypes.h:61
uint16_t WCHAR
Definition: intro_types.h:63
QWORD Peb32Address
PEB 32 address (on pure x64 processes, this will be 0).
Definition: winprocess.h:102
uint32_t DWORD
Definition: intro_types.h:49
void IntWinProcUninit(void)
This function removes all process objects from the list, and registers the calls the cleanup function...
Definition: winprocess.c:3764
QWORD OriginalTokenPtr
Original Token pointer inside EPROCESS (should never change).
Definition: winprocess.h:241
enum _WINPROC_GUEST_EXITS WINPROC_GUEST_EXITS
Windows guest exit types.
BOOLEAN PrivsChangeDetected
Set to TRUE when a token privilege change has been detected. This is useful for DPI, in the case where a write has been detected over the privileges, but because of the detect only mechanism, we have overwritten the OriginalPresentPrivs and OriginalEnabledPrivs values, thus DPI will not raise an alert on process creation due to the fact that the mechanism doesn't see any change. For this purpose, we'll analyze every process creation in DPI from the moment the privileges have changed and a detection took place on integrity.
Definition: winprocess.h:322
Definition: rbtree.h:84
void * Cr3PageLockObject
The CR3 will be locked in memory, to prevent the OS from dynamically modifying the CR3 of a running p...
Definition: winprocess.h:231
LIST_HEAD ProcessModules
List of process modules.
Definition: winprocess.h:68
RBNODE NodeUserCr3
Entry within gWinProcTreeUserCr3 (RB Tree).
Definition: winprocess.h:85
QWORD UserSelfMapEntryValue
The user self mapping memory entry value.
Definition: winprocess.h:257
void * CmdBufSwapHandle
The swap memory handle for the command line buffer.
Definition: winprocess.h:251
DWORD ExploitGuardEnabled
TRUE if any Exploit Guard mitigation option is set for this process.
Definition: winprocess.h:165
INTSTATUS IntWinProcHandleCopyMemory(void *Detour)
This functions is responsible handling process read/write operations.This function is invoked every t...
Definition: winprocess.c:2694
DWORD ProtWriteMem
Protect the the memory against writes.
Definition: winprocess.h:203
QWORD EprocessAddress
This will be the address of the ActiveProcess field.
Definition: winprocess.h:88
BOOLEAN SkipPrivsNextCheck
Signals whether the next privileges check on integrity should be skipped for the current process...
Definition: winprocess.h:314
QWORD OriginalEnabledPrivs
Saved value of the Privileges Enabled bitfield inside the nt!_TOKEN structure assigned to the current...
Definition: winprocess.h:310
void IntWinProcUpdateProtectedProcess(const void *Name, const CAMI_STRING_ENCODING Encoding, const CAMI_PROT_OPTIONS *Options)
This function updates the protection for the given process.
Definition: winprocess.c:3481
DWORD ParentWow64
TRUE if the parent is a 32 bit process on a 64 bit OS.
Definition: winprocess.h:144
DWORD SystemProcess
TRUE if this is a system process.
Definition: winprocess.h:134
INTSTATUS IntWinProcUpdateProtection(void)
Iterates trough the global process list (gWinProcesses) in order to update the protection state for e...
Definition: winprocess.c:1155
void * CmdLineSwapHandle
The swap memory handle for the UNICODE_STRING containing the command line of the a process...
Definition: winprocess.h:249
INTSTATUS IntWinProcHandleCreate(void *Detour)
Detour handler for the PspInsertProcess Windows kernel API.The actual process creation is handled by ...
Definition: winprocess.c:2434
WIN_SUBSYTEM_TYPE SubsystemType
Process subsystem type.
Definition: winprocess.h:55
QWORD PebAddress
The Process Environment Block of this subsystem.
Definition: winprocess.h:57
INTSTATUS IntWinProcProtect(WIN_PROCESS_OBJECT *Process)
Protects a new process.
Definition: winprocess.c:3111
DWORD MonitorVad
TRUE if we need to handle VAD events for this process.
Definition: winprocess.h:160
DWORD StaticDetected
TRUE if the process was detected using a static scan (during static init).
Definition: winprocess.h:138
void * VasMonRoot
Virtual Address Space monitor root.
Definition: winprocess.h:238
DWORD LastException
The code of the last exception that took place.
Definition: winprocess.h:175
struct _WIN_PROCESS_SUBSYSTEM WIN_PROCESS_SUBSYSTEM
Windows process subsystem.
DWORD ProtUnpack
Protect process against unpacking attempts.
Definition: winprocess.h:202
BOOLEAN IsVerifierLoaded
TRUE if app verifier is loaded.
Definition: winprocess.h:263
DWORD IsAgent
TRUE if this is an injected agent.
Definition: winprocess.h:129
INTSTATUS IntWinProcReadCommandLine(WIN_PROCESS_OBJECT *Process)
Reads the command line of the given process using IntSwapMemReadData.
Definition: winprocess.c:893
Exits caused by "MmCopyVirtualMemory".
Definition: winprocess.h:43
Exits caused by "PspSetContextThreadInternal".
Definition: winprocess.h:44
DWORD ProtWsockModules
Protect the Windows Socket related modules.
Definition: winprocess.h:204
BOOLEAN ParentHasBeenHeapSprayed
The parent process has been heap sprayed.
Definition: winprocess.h:283
char CHAR
Definition: intro_types.h:56
void * MainModuleVad
Used for keeping the main module VAD (used for dereferencing paths) as the unprotected processes don'...
Definition: winprocess.h:271
PWIN_PROCESS_SUBSYSTEM Subsystemx86
The x86 subsystem. Note that a 32 bit process on a 64 bit OS may have both subsystems valid...
Definition: winprocess.h:296
RBNODE NodeCr3
Entry within gWinProcTreeCr3 (RB Tree).
Definition: winprocess.h:84
Exposes the functions responsible for DPI (Deep Process Inspection) information gathering (used to de...
DWORD AgentTag
If IsAgent is TRUE, this will be the agent tag.
Definition: winprocess.h:227
QWORD InjectedApphelpAddress
The address of the injected apphelp (during initialization).
Definition: winprocess.h:172
BOOLEAN ParentHasPivotedStack
The parent process has a pivoted stack.
Definition: winprocess.h:275
INTSTATUS IntWinProcPatchPspInsertProcess86(QWORD FunctionAddress, void *Handler, QWORD HandlerAddress)
This functions is responsible for patching the detour that handles the "PspInsertProcess".
Definition: winprocess.c:2277
DWORD Peb32ContextWritten
TURE if the Process Environment Block (x86) context was written (valid only on Windows 7)...
Definition: winprocess.h:155
BOOLEAN ParentHasTokenPrivsAltered
The parent process has the token privileges altered in a malicious way, most probably due to a privil...
Definition: winprocess.h:287
INTSTATUS IntWinProcRemoveProtectedProcess(const WCHAR *Path)
This function removed the provided process from the protected process list.
Definition: winprocess.c:3650
LIST_HEAD * VadPages
Vad pages Hash-Table.
Definition: winprocess.h:239
This structure describes a running process inside the guest.
Definition: winprocess.h:81