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

Header for checks for processor compatibility with different features. More...

#include "pch.h"

Go to the source code of this file.

Classes

struct  _COMPATIBILITY_CHECKS_STATUS
 The status of available features in the processor. More...
 

Typedefs

typedef struct _COMPATIBILITY_CHECKS_STATUS COMPATIBILITY_CHECKS_STATUS
 The status of available features in the processor.
 
typedef struct _COMPATIBILITY_CHECKS_STATUSPCOMPATIBILITY_CHECKS_STATUS
 

Functions

VOID CompatibilityCheckPerformChecks ()
 Checks for the compatibility features based on current processor @detail NOTE: NOT ALL OF THE CHECKS ARE PERFORMED HERE.
 

Detailed Description

Header for checks for processor compatibility with different features.

Author
Sina Karvandi (sina@.nosp@m.hype.nosp@m.rdbg..nosp@m.org)
Version
0.2
Date
2023-03-15

Typedef Documentation

◆ COMPATIBILITY_CHECKS_STATUS

The status of available features in the processor.

◆ PCOMPATIBILITY_CHECKS_STATUS

Function Documentation

◆ CompatibilityCheckPerformChecks()

VOID CompatibilityCheckPerformChecks ( )

Checks for the compatibility features based on current processor @detail NOTE: NOT ALL OF THE CHECKS ARE PERFORMED HERE.

Returns
VOID
154{
155 //
156 // Check if processor supports TSX (RTM)
157 //
159
160 //
161 // Get x86 processor width for virtual address
162 //
164
165 //
166 // Get x86 processor width for physical address
167 //
169
170 //
171 // Check Mode-based execution compatibility
172 //
174
175 //
176 // Check PML support
177 //
179
180 //
181 // Log for testing
182 //
183 LogDebugInfo("Mode based execution: %s | PML: %s",
185 g_CompatibilityCheck.PmlSupport ? "true" : "false");
186}
BOOLEAN CompatibilityCheckModeBasedExecution()
Check for mode-based execution.
Definition CompatibilityChecks.c:92
BOOLEAN CompatibilityCheckPml()
Check for Page Modification Logging (PML) support.
Definition CompatibilityChecks.c:123
BOOLEAN CompatibilityCheckCpuSupportForRtm()
Check whether the processor supports RTM or not.
Definition CompatibilityChecks.c:21
UINT32 CompatibilityCheckGetX86PhysicalAddressWidth()
Get physical address width for x86 processors.
Definition CompatibilityChecks.c:74
UINT32 CompatibilityCheckGetX86VirtualAddressWidth()
Get virtual address width for x86 processors.
Definition CompatibilityChecks.c:56
COMPATIBILITY_CHECKS_STATUS g_CompatibilityCheck
Different attributes and compatibility checks of the current processor.
Definition GlobalVariables.h:26
#define LogDebugInfo(format,...)
Log, initialize boot information and debug information.
Definition HyperDbgHyperLogIntrinsics.h:155
BOOLEAN ModeBasedExecutionSupport
Definition CompatibilityChecks.h:28
UINT32 VirtualAddressWidth
Definition CompatibilityChecks.h:30
UINT32 PhysicalAddressWidth
Definition CompatibilityChecks.h:31
BOOLEAN PmlSupport
Definition CompatibilityChecks.h:27
BOOLEAN RtmSupport
Definition CompatibilityChecks.h:26