mirror of
https://github.com/HyperDbg/HyperDbg.git
synced 2026-07-10 01:29:59 +00:00
184 lines
3.8 KiB
C
184 lines
3.8 KiB
C
/**
|
|
* @file pch.h
|
|
* @author Sina Karvandi (sina@hyperdbg.org)
|
|
* @author Alee Amini (alee@hyperdbg.org)
|
|
* @brief Pre-compiled headers
|
|
* @details
|
|
*
|
|
* @version 0.1
|
|
* @date 2020-07-13
|
|
*
|
|
* @copyright This project is released under the GNU Public License v3.
|
|
*
|
|
*/
|
|
#pragma once
|
|
|
|
#define _NO_CRT_STDIO_INLINE
|
|
|
|
#pragma warning(disable : 4201) // Suppress nameless struct/union warning
|
|
|
|
//
|
|
// Scope definitions
|
|
//
|
|
#define SCRIPT_ENGINE_KERNEL_MODE
|
|
#define HYPERDBG_KERNEL_MODE
|
|
#define HYPERDBG_VMM
|
|
|
|
//
|
|
// Environment headers
|
|
//
|
|
#include "platform/general/header/Environment.h"
|
|
|
|
#ifdef HYPERDBG_ENV_WINDOWS
|
|
|
|
//
|
|
// General WDK headers
|
|
//
|
|
# include <ntifs.h>
|
|
# include <ntstrsafe.h>
|
|
# include <Windef.h>
|
|
# include <assert.h>
|
|
|
|
#endif // HYPERDBG_ENV_WINDOWS
|
|
|
|
//
|
|
// Definition of Intel primitives (External header)
|
|
//
|
|
#include "ia32-doc/out/ia32.h"
|
|
|
|
//
|
|
// HyperDbg SDK headers
|
|
//
|
|
#include "SDK/HyperDbgSdk.h"
|
|
|
|
//
|
|
// HyperDbg Kernel-mode headers
|
|
//
|
|
#include "config/Configuration.h"
|
|
#include "macros/MetaMacros.h"
|
|
|
|
//
|
|
// Platform independent headers
|
|
//
|
|
#include "platform/kernel/header/PlatformMem.h"
|
|
#include "platform/kernel/header/PlatformIntrinsics.h"
|
|
#include "platform/kernel/header/PlatformBroadcast.h"
|
|
#include "platform/kernel/header/PlatformIntrinsicsVmx.h"
|
|
|
|
//
|
|
// VMM Callbacks
|
|
//
|
|
#include "SDK/modules/VMM.h"
|
|
|
|
//
|
|
// The core's state
|
|
//
|
|
#include "common/State.h"
|
|
|
|
//
|
|
// VMX and EPT Types
|
|
//
|
|
#include "vmm/vmx/Vmx.h"
|
|
#include "vmm/vmx/VmxRegions.h"
|
|
#include "vmm/ept/Ept.h"
|
|
#include "SDK/imports/kernel/HyperDbgVmmImports.h"
|
|
|
|
//
|
|
// Hyper-V TLFS
|
|
//
|
|
#include "hyper-v/HypervTlfs.h"
|
|
|
|
//
|
|
// VMX and Capabilities
|
|
//
|
|
#include "vmm/vmx/VmxBroadcast.h"
|
|
#include "memory/MemoryMapper.h"
|
|
#include "interface/Dispatch.h"
|
|
#include "common/Msr.h"
|
|
#include "common/Trace.h"
|
|
#include "assembly/InlineAsm.h"
|
|
#include "vmm/ept/Vpid.h"
|
|
#include "memory/Conversion.h"
|
|
#include "memory/Layout.h"
|
|
#include "memory/SwitchLayout.h"
|
|
#include "memory/AddressCheck.h"
|
|
#include "memory/Segmentation.h"
|
|
#include "common/Bitwise.h"
|
|
#include "common/Common.h"
|
|
#include "vmm/vmx/Events.h"
|
|
#include "devices/Apic.h"
|
|
#include "devices/Pci.h"
|
|
#include "processor/Smm.h"
|
|
#include "processor/Idt.h"
|
|
#include "vmm/vmx/Mtf.h"
|
|
#include "vmm/vmx/Counters.h"
|
|
#include "vmm/vmx/IdtEmulation.h"
|
|
#include "vmm/ept/Invept.h"
|
|
#include "vmm/vmx/Vmcall.h"
|
|
#include "interface/DirectVmcall.h"
|
|
#include "vmm/vmx/CrossVmcalls.h"
|
|
#include "vmm/vmx/Hv.h"
|
|
#include "vmm/vmx/MsrHandlers.h"
|
|
#include "vmm/vmx/ProtectedHv.h"
|
|
#include "vmm/vmx/IoHandler.h"
|
|
#include "vmm/vmx/VmxMechanisms.h"
|
|
#include "hooks/Hooks.h"
|
|
#include "hooks/ModeBasedExecHook.h"
|
|
#include "hooks/SyscallCallback.h"
|
|
#include "interface/Callback.h"
|
|
#include "features/DirtyLogging.h"
|
|
#include "features/CompatibilityChecks.h"
|
|
#include "mmio/MmioShadowing.h"
|
|
|
|
//
|
|
// Disassembler Header
|
|
//
|
|
#include "Zydis/Zydis.h"
|
|
#include "disassembler/Disassembler.h"
|
|
|
|
//
|
|
// Broadcast headers
|
|
//
|
|
#include "broadcast/Broadcast.h"
|
|
#include "broadcast/DpcRoutines.h"
|
|
|
|
//
|
|
// Headers for supporting the reversing machine (TRM)
|
|
//
|
|
#include "hooks/ExecTrap.h"
|
|
|
|
//
|
|
// Headers for exporting functions to remove the driver
|
|
//
|
|
#include "common/UnloadDll.h"
|
|
|
|
//
|
|
// Optimization algorithms
|
|
//
|
|
#include "components/optimizations/header/AvlTree.h"
|
|
#include "components/optimizations/header/BinarySearch.h"
|
|
#include "components/optimizations/header/InsertionSort.h"
|
|
|
|
//
|
|
// Spinlocks
|
|
//
|
|
#include "components/spinlock/header/Spinlock.h"
|
|
|
|
//
|
|
// Global Variables should be the last header to include
|
|
//
|
|
#include "globals/GlobalVariableManagement.h"
|
|
#include "globals/GlobalVariables.h"
|
|
|
|
//
|
|
// HyperLog Module
|
|
//
|
|
#include "SDK/modules/HyperLog.h"
|
|
#include "SDK/imports/kernel/HyperDbgHyperLogIntrinsics.h"
|
|
#include "components/callback/header/HyperLogCallback.h"
|
|
|
|
//
|
|
// Transparent-mode (hyperevade) headers
|
|
//
|
|
#include "SDK/modules/HyperEvade.h"
|
|
#include "SDK/imports/kernel/HyperDbgHyperEvade.h"
|