HyperDbg Debugger
Loading...
Searching...
No Matches
State.h File Reference

Model-Specific Registers definitions. More...

Go to the source code of this file.

Classes

struct  _VMM_EPT_PAGE_TABLE
 Structure for saving EPT Table. More...
 
struct  _VM_EXIT_TRANSPARENCY
 The status of transparency of each core after and before VMX. More...
 
struct  _VMX_VMXOFF_STATE
 Save the state of core in the case of VMXOFF. More...
 
struct  _EPT_HOOKED_PAGE_DETAIL
 Structure to save the state of each hooked pages. More...
 
struct  _NMI_BROADCASTING_STATE
 The status of NMI broadcasting in VMX. More...
 
struct  _VIRTUAL_MACHINE_STATE
 The status of each core after and before VMX. More...
 

Macros

#define PENDING_INTERRUPTS_BUFFER_CAPACITY   64
 Pending External Interrupts Buffer Capacity.
 
#define MaximumHiddenBreakpointsOnPage   40
 Maximum number of hidden breakpoints in a page.
 
#define VMM_EPT_PML4E_COUNT   512
 The number of 512GB PML4 entries in the page table.
 
#define VMM_EPT_PML3E_COUNT   512
 The number of 1GB PDPT entries in the page table per 512GB PML4 entry.
 
#define VMM_EPT_PML2E_COUNT   512
 Then number of 2MB Page Directory entries in the page table per 1GB PML3 entry.
 
#define VMM_EPT_PML1E_COUNT   512
 Then number of 4096 byte Page Table entries in the page table per 2MB PML2 entry when dynamically split.
 

Typedefs

typedef EPT_PML4E EPT_PML4_POINTER
 
typedef EPT_PML4E * PEPT_PML4_POINTER
 
typedef EPT_PDPTE EPT_PML3_POINTER
 
typedef EPT_PDPTE * PEPT_PML3_POINTER
 
typedef EPT_PDE_2MB EPT_PML2_ENTRY
 
typedef EPT_PDE_2MB * PEPT_PML2_ENTRY
 
typedef EPT_PDE EPT_PML2_POINTER
 
typedef EPT_PDE * PEPT_PML2_POINTER
 
typedef EPT_PTE EPT_PML1_ENTRY
 
typedef EPT_PTE * PEPT_PML1_ENTRY
 
typedef enum _NMI_BROADCAST_ACTION_TYPE NMI_BROADCAST_ACTION_TYPE
 Types of actions for NMI broadcasting.
 
typedef enum _EPT_HOOKED_LAST_VIOLATION EPT_HOOKED_LAST_VIOLATION
 Types of last violation happened to EPT hook.
 
typedef struct _VMM_EPT_PAGE_TABLE VMM_EPT_PAGE_TABLE
 Structure for saving EPT Table.
 
typedef struct _VMM_EPT_PAGE_TABLEPVMM_EPT_PAGE_TABLE
 
typedef struct _VM_EXIT_TRANSPARENCY VM_EXIT_TRANSPARENCY
 The status of transparency of each core after and before VMX.
 
typedef struct _VM_EXIT_TRANSPARENCYPVM_EXIT_TRANSPARENCY
 
typedef struct _VMX_VMXOFF_STATE VMX_VMXOFF_STATE
 Save the state of core in the case of VMXOFF.
 
typedef struct _VMX_VMXOFF_STATEPVMX_VMXOFF_STATE
 
typedef struct _EPT_HOOKED_PAGE_DETAIL EPT_HOOKED_PAGE_DETAIL
 Structure to save the state of each hooked pages.
 
typedef struct _EPT_HOOKED_PAGE_DETAILPEPT_HOOKED_PAGE_DETAIL
 
typedef struct _NMI_BROADCASTING_STATE NMI_BROADCASTING_STATE
 The status of NMI broadcasting in VMX.
 
typedef struct _NMI_BROADCASTING_STATEPNMI_BROADCASTING_STATE
 
typedef struct _VIRTUAL_MACHINE_STATE VIRTUAL_MACHINE_STATE
 The status of each core after and before VMX.
 
typedef struct _VIRTUAL_MACHINE_STATEPVIRTUAL_MACHINE_STATE
 

Enumerations

enum  _NMI_BROADCAST_ACTION_TYPE {
  NMI_BROADCAST_ACTION_NONE = 0 , NMI_BROADCAST_ACTION_TEST , NMI_BROADCAST_ACTION_REQUEST , NMI_BROADCAST_ACTION_INVALIDATE_EPT_CACHE_SINGLE_CONTEXT ,
  NMI_BROADCAST_ACTION_INVALIDATE_EPT_CACHE_ALL_CONTEXTS
}
 Types of actions for NMI broadcasting. More...
 
enum  _EPT_HOOKED_LAST_VIOLATION { EPT_HOOKED_LAST_VIOLATION_READ = 1 , EPT_HOOKED_LAST_VIOLATION_WRITE = 2 , EPT_HOOKED_LAST_VIOLATION_EXEC = 3 }
 Types of last violation happened to EPT hook. More...
 

Detailed Description

Model-Specific Registers definitions.

Author
Sina Karvandi (sina@.nosp@m.hype.nosp@m.rdbg..nosp@m.org)
Version
0.2
Date
2022-12-01

Macro Definition Documentation

◆ MaximumHiddenBreakpointsOnPage

#define MaximumHiddenBreakpointsOnPage   40

Maximum number of hidden breakpoints in a page.

◆ PENDING_INTERRUPTS_BUFFER_CAPACITY

#define PENDING_INTERRUPTS_BUFFER_CAPACITY   64

Pending External Interrupts Buffer Capacity.

◆ VMM_EPT_PML1E_COUNT

#define VMM_EPT_PML1E_COUNT   512

Then number of 4096 byte Page Table entries in the page table per 2MB PML2 entry when dynamically split.

◆ VMM_EPT_PML2E_COUNT

#define VMM_EPT_PML2E_COUNT   512

Then number of 2MB Page Directory entries in the page table per 1GB PML3 entry.

◆ VMM_EPT_PML3E_COUNT

#define VMM_EPT_PML3E_COUNT   512

The number of 1GB PDPT entries in the page table per 512GB PML4 entry.

◆ VMM_EPT_PML4E_COUNT

#define VMM_EPT_PML4E_COUNT   512

The number of 512GB PML4 entries in the page table.

Typedef Documentation

◆ EPT_HOOKED_LAST_VIOLATION

Types of last violation happened to EPT hook.

◆ EPT_HOOKED_PAGE_DETAIL

Structure to save the state of each hooked pages.

◆ EPT_PML1_ENTRY

typedef EPT_PTE EPT_PML1_ENTRY

◆ EPT_PML2_ENTRY

typedef EPT_PDE_2MB EPT_PML2_ENTRY

◆ EPT_PML2_POINTER

typedef EPT_PDE EPT_PML2_POINTER

◆ EPT_PML3_POINTER

typedef EPT_PDPTE EPT_PML3_POINTER

◆ EPT_PML4_POINTER

typedef EPT_PML4E EPT_PML4_POINTER

◆ NMI_BROADCAST_ACTION_TYPE

Types of actions for NMI broadcasting.

◆ NMI_BROADCASTING_STATE

The status of NMI broadcasting in VMX.

◆ PEPT_HOOKED_PAGE_DETAIL

◆ PEPT_PML1_ENTRY

typedef EPT_PTE * PEPT_PML1_ENTRY

◆ PEPT_PML2_ENTRY

typedef EPT_PDE_2MB * PEPT_PML2_ENTRY

◆ PEPT_PML2_POINTER

typedef EPT_PDE * PEPT_PML2_POINTER

◆ PEPT_PML3_POINTER

typedef EPT_PDPTE * PEPT_PML3_POINTER

◆ PEPT_PML4_POINTER

typedef EPT_PML4E * PEPT_PML4_POINTER

◆ PNMI_BROADCASTING_STATE

◆ PVIRTUAL_MACHINE_STATE

◆ PVM_EXIT_TRANSPARENCY

◆ PVMM_EPT_PAGE_TABLE

◆ PVMX_VMXOFF_STATE

◆ VIRTUAL_MACHINE_STATE

The status of each core after and before VMX.

◆ VM_EXIT_TRANSPARENCY

The status of transparency of each core after and before VMX.

◆ VMM_EPT_PAGE_TABLE

Structure for saving EPT Table.

◆ VMX_VMXOFF_STATE

Save the state of core in the case of VMXOFF.

Enumeration Type Documentation

◆ _EPT_HOOKED_LAST_VIOLATION

Types of last violation happened to EPT hook.

Enumerator
EPT_HOOKED_LAST_VIOLATION_READ 
EPT_HOOKED_LAST_VIOLATION_WRITE 
EPT_HOOKED_LAST_VIOLATION_EXEC 
63{
67
@ EPT_HOOKED_LAST_VIOLATION_READ
Definition State.h:64
@ EPT_HOOKED_LAST_VIOLATION_EXEC
Definition State.h:66
@ EPT_HOOKED_LAST_VIOLATION_WRITE
Definition State.h:65
enum _EPT_HOOKED_LAST_VIOLATION EPT_HOOKED_LAST_VIOLATION
Types of last violation happened to EPT hook.

◆ _NMI_BROADCAST_ACTION_TYPE

Types of actions for NMI broadcasting.

Enumerator
NMI_BROADCAST_ACTION_NONE 
NMI_BROADCAST_ACTION_TEST 
NMI_BROADCAST_ACTION_REQUEST 
NMI_BROADCAST_ACTION_INVALIDATE_EPT_CACHE_SINGLE_CONTEXT 
NMI_BROADCAST_ACTION_INVALIDATE_EPT_CACHE_ALL_CONTEXTS 
49{
55
enum _NMI_BROADCAST_ACTION_TYPE NMI_BROADCAST_ACTION_TYPE
Types of actions for NMI broadcasting.
@ NMI_BROADCAST_ACTION_NONE
Definition State.h:50
@ NMI_BROADCAST_ACTION_REQUEST
Definition State.h:52
@ NMI_BROADCAST_ACTION_INVALIDATE_EPT_CACHE_SINGLE_CONTEXT
Definition State.h:53
@ NMI_BROADCAST_ACTION_TEST
Definition State.h:51
@ NMI_BROADCAST_ACTION_INVALIDATE_EPT_CACHE_ALL_CONTEXTS
Definition State.h:54