HyperDbg Debugger
Loading...
Searching...
No Matches
pch.h
Go to the documentation of this file.
1
14#pragma once
15
16#define _NO_CRT_STDIO_INLINE
17
18#pragma warning(disable : 4201) // Suppress nameless struct/union warning
19
20//
21// Scope definitions
22//
23#define SCRIPT_ENGINE_KERNEL_MODE
24#define HYPERDBG_KERNEL_MODE
25#define HYPERDBG_VMM
26
27//
28// Environment headers
29//
31
32#ifdef HYPERDBG_ENV_WINDOWS
33
34//
35// General WDK headers
36//
37# include <ntifs.h>
38# include <ntstrsafe.h>
39# include <Windef.h>
40# include <assert.h>
41
42#endif // HYPERDBG_ENV_WINDOWS
43
44//
45// Definition of Intel primitives (External header)
46//
47#include "ia32-doc/out/ia32.h"
48
49//
50// HyperDbg SDK headers
51//
52#include "SDK/HyperDbgSdk.h"
53
54//
55// HyperDbg Kernel-mode headers
56//
58#include "macros/MetaMacros.h"
59
60//
61// Platform independent headers
62//
67
68//
69// VMM Callbacks
70//
71#include "SDK/modules/VMM.h"
72
73//
74// The core's state
75//
76#include "common/State.h"
77
78//
79// VMX and EPT Types
80//
81#include "vmm/vmx/Vmx.h"
82#include "vmm/vmx/VmxRegions.h"
83#include "vmm/ept/Ept.h"
84#include "SDK/imports/kernel/HyperDbgVmmImports.h"
85
86//
87// Hyper-V TLFS
88//
89#include "hyper-v/HypervTlfs.h"
90
91//
92// VMX and Capabilities
93//
95#include "memory/MemoryMapper.h"
96#include "interface/Dispatch.h"
97#include "common/Msr.h"
98#include "common/Trace.h"
99#include "assembly/InlineAsm.h"
100#include "vmm/ept/Vpid.h"
101#include "memory/Conversion.h"
102#include "memory/Layout.h"
103#include "memory/SwitchLayout.h"
104#include "memory/AddressCheck.h"
105#include "memory/Segmentation.h"
106#include "common/Bitwise.h"
107#include "common/Common.h"
108#include "vmm/vmx/Events.h"
109#include "devices/Apic.h"
110#include "devices/Pci.h"
111#include "processor/Smm.h"
112#include "processor/Idt.h"
113#include "vmm/vmx/Mtf.h"
114#include "vmm/vmx/Counters.h"
115#include "vmm/vmx/IdtEmulation.h"
116#include "vmm/ept/Invept.h"
117#include "vmm/vmx/Vmcall.h"
119#include "vmm/vmx/CrossVmcalls.h"
120#include "vmm/vmx/Hv.h"
121#include "vmm/vmx/MsrHandlers.h"
122#include "vmm/vmx/ProtectedHv.h"
123#include "vmm/vmx/IoHandler.h"
125#include "hooks/Hooks.h"
128#include "interface/Callback.h"
131#include "mmio/MmioShadowing.h"
132
133//
134// Disassembler Header
135//
136#include "Zydis/Zydis.h"
138
139//
140// Broadcast headers
141//
142#include "broadcast/Broadcast.h"
143#include "broadcast/DpcRoutines.h"
144
145//
146// Headers for supporting the reversing machine (TRM)
147//
148#include "hooks/ExecTrap.h"
149
150//
151// Headers for exporting functions to remove the driver
152//
153#include "common/UnloadDll.h"
154
155//
156// Optimization algorithms
157//
161
162//
163// Spinlocks
164//
166
167//
168// Global Variables should be the last header to include
169//
171#include "globals/GlobalVariables.h"
172
173//
174// HyperLog Module
175//
176#include "SDK/modules/HyperLog.h"
177#include "SDK/imports/kernel/HyperDbgHyperLogIntrinsics.h"
179
180//
181// Transparent-mode (hyperevade) headers
182//
183#include "SDK/modules/HyperEvade.h"
184#include "SDK/imports/kernel/HyperDbgHyperEvade.h"
Header files for address checks.
Headers relating to Advanced Programmable Interrupt Controller (APIC).
Headers for the file that contains array management routines (AVL Tree).
The header file for array management routines (Binary Search).
Header files for bit-level operations.
Header for VMM callback interface routines.
Header for checks for processor compatibility with different features.
Global configuration that applies on compile time.
Header files for memory conversions.
The headers for functions for emulating counters.
Headers relating to cross (standalone) VMCALLs.
Header for direct VMCALL routines.
Headers for dirty logging mechanism.
Header for disassembler in kernel.
Headers of debugger functions for dispatching, triggering and emulating events.
The running environment of HyperDbg.
Contains the headers relating to EPT structures, MTRR and all basic Hooking structures.
Header for the user-mode, kernel-mode execution traps' routines.
Headers for management of global variables.
Hook headers.
This file contains the headers for Hypervisor Routines which have to be called by external codes.
Header for VMM callback interface routines.
Headers relating to Interrupt Descriptor Table.
Header for Handlers of Guest's IDT Emulator.
The definition of functions written in Assembly.
Headers for the file that contains array management routines (Insertion Sort).
Header for INVEPT functions.
The I/O Handler for vm-exit headers.
Header files for working with memory layouts.
Helper macros.
Header files for MMIO shadowing.
Hook headers for Mode-based execution.
Model-Specific Registers definitions.
Headers to Handle for MSR-related tasks in VMX-root.
Monitor Trap Flag Headers.
Cross platform APIs for broadcasting routines.
Cross platform APIs for intrinsic functions (x86 instructions).
Cross platform APIs for intrinsic functions (VMX instructions).
Cross platform APIs for memory allocation.
Header files for protected hypervisor resources.
Functions for handling memory segmentations.
Headers relating to operations related to System Management Mode (SMM).
Headers of spinlock routines.
Header files for switching memory layouts.
WPP Tracing Definitions.
VMCALL Headers.
VMX Instruction and operation headers.
Headers for broadcast in VMX-root mode.
VMX based mechanisms header.
Headers for implement allocations for VMX Regions (VMXON Region, VMCS, MSR Bitmap and etc....
VPID Headers.
Model-Specific Registers definitions.
Headers relating to Exception Bitmap and Event (Interrupt and Exception) Injection.