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
184{
185 //
186 // Check if processor supports TSX (RTM)
187 //
189
190 //
191 // Get x86 processor width for virtual address
192 //
194
195 //
196 // Get x86 processor width for physical address
197 //
199
200 //
201 // Check Mode-based execution compatibility
202 //
204
205 //
206 // Check Intel CET IBT support
207 //
209
210 //
211 // Check Intel CET shadow stack support
212 //
214
215 //
216 // Check PML support
217 //
219
220 //
221 // Log for testing
222 //
223 LogDebugInfo("Mode based execution: %s | PML: %s",
224 g_CompatibilityCheck.ModeBasedExecutionSupport ? "true" : "false",
225 g_CompatibilityCheck.PmlSupport ? "true" : "false");
226}
BOOLEAN CompatibilityCheckModeBasedExecution()
Check for mode-based execution.
Definition CompatibilityChecks.c:122
BOOLEAN CompatibilityCheckPml()
Check for Page Modification Logging (PML) support.
Definition CompatibilityChecks.c:153
BOOLEAN CompatibilityCheckCetIbtSupport()
Check for Intel CET IBT support.
Definition CompatibilityChecks.c:107
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
BOOLEAN CompatibilityCheckCetShadowStackSupport()
Check if the processor supports CET IBT.
Definition CompatibilityChecks.c:92
#define LogDebugInfo(format,...)
Log, initialize boot information and debug information.
Definition HyperDbgHyperLogIntrinsics.h:155
COMPATIBILITY_CHECKS_STATUS g_CompatibilityCheck
Different attributes and compatibility checks of the current processor.
Definition GlobalVariables.h:26