|
HyperDbg Debugger
|
Header for the user-mode, kernel-mode execution traps' routines. More...
#include "pch.h"Go to the source code of this file.
Classes | |
| struct | _USER_KERNEL_EXECUTION_TRAP_STATE |
| The status user-mode, kernel-mode execution traps for processes. More... | |
Macros | |
| #define | MAXIMUM_NUMBER_OF_PROCESSES_FOR_USER_KERNEL_EXEC_THREAD 100 |
| maximum number of processes for a simultaneous user-mode, kernel-mode execution trap | |
Typedefs | |
| typedef struct _USER_KERNEL_EXECUTION_TRAP_STATE | USER_KERNEL_EXECUTION_TRAP_STATE |
| The status user-mode, kernel-mode execution traps for processes. | |
| typedef struct _USER_KERNEL_EXECUTION_TRAP_STATE * | PUSER_KERNEL_EXECUTION_TRAP_STATE |
Functions | |
| VOID | ExecTrapHandleCr3Vmexit (VIRTUAL_MACHINE_STATE *VCpu) |
| Handle MOV to CR3 vm-exits for hooking mode execution. | |
| VOID | ExecTrapChangeToUserDisabledMbecEptp (VIRTUAL_MACHINE_STATE *VCpu) |
| change to user-disabled MBEC EPTP | |
| VOID | ExecTrapChangeToKernelDisabledMbecEptp (VIRTUAL_MACHINE_STATE *VCpu) |
| change to kernel-disabled MBEC EPTP | |
| VOID | ExecTrapRestoreToNormalEptp (VIRTUAL_MACHINE_STATE *VCpu) |
| restore to normal EPTP | |
| VOID | ExecTrapHandleMoveToAdjustedTrapState (VIRTUAL_MACHINE_STATE *VCpu, DEBUGGER_EVENT_MODE_TYPE TargetMode) |
| Restore the execution of the trap to adjusted trap state. | |
| VOID | ExecTrapUninitialize () |
| Uinitialize the needed structure for the reversing machine. | |
| BOOLEAN | ExecTrapInitialize () |
| Initialize the exec trap based on service request. | |
| VOID | ExecTrapApplyMbecConfiguratinFromKernelSide (VIRTUAL_MACHINE_STATE *VCpu) |
| Apply the MBEC configuration from the kernel side. | |
| BOOLEAN | ExecTrapHandleEptViolationVmexit (VIRTUAL_MACHINE_STATE *VCpu, VMX_EXIT_QUALIFICATION_EPT_VIOLATION *ViolationQualification) |
| Handle EPT Violations related to the MBEC hooks. | |
| BOOLEAN | ExecTrapAddProcessToWatchingList (UINT32 ProcessId) |
| Add the target process to the watching list. | |
| BOOLEAN | ExecTrapRemoveProcessFromWatchingList (UINT32 ProcessId) |
| Remove the target process from the watching list. | |
Variables | |
| volatile LONG | ExecTrapProcessListLock |
| The lock for modifying the list of processes for user-mode, kernel-mode execution traps. | |
Header for the user-mode, kernel-mode execution traps' routines.
| #define MAXIMUM_NUMBER_OF_PROCESSES_FOR_USER_KERNEL_EXEC_THREAD 100 |
maximum number of processes for a simultaneous user-mode, kernel-mode execution trap
| typedef struct _USER_KERNEL_EXECUTION_TRAP_STATE * PUSER_KERNEL_EXECUTION_TRAP_STATE |
The status user-mode, kernel-mode execution traps for processes.
Add the target process to the watching list.
| ProcessId |
| VOID ExecTrapApplyMbecConfiguratinFromKernelSide | ( | VIRTUAL_MACHINE_STATE * | VCpu | ) |
Apply the MBEC configuration from the kernel side.
| VCpu | The virtual processor's state |
| VOID ExecTrapChangeToKernelDisabledMbecEptp | ( | VIRTUAL_MACHINE_STATE * | VCpu | ) |
change to kernel-disabled MBEC EPTP
| VCpu | The virtual processor's state |
| VOID ExecTrapChangeToUserDisabledMbecEptp | ( | VIRTUAL_MACHINE_STATE * | VCpu | ) |
change to user-disabled MBEC EPTP
| VCpu | The virtual processor's state |
| VOID ExecTrapHandleCr3Vmexit | ( | VIRTUAL_MACHINE_STATE * | VCpu | ) |
Handle MOV to CR3 vm-exits for hooking mode execution.
| VCpu | The virtual processor's state |
| BOOLEAN ExecTrapHandleEptViolationVmexit | ( | VIRTUAL_MACHINE_STATE * | VCpu, |
| VMX_EXIT_QUALIFICATION_EPT_VIOLATION * | ViolationQualification ) |
Handle EPT Violations related to the MBEC hooks.
| VCpu | The virtual processor's state |
| ViolationQualification |
| VOID ExecTrapHandleMoveToAdjustedTrapState | ( | VIRTUAL_MACHINE_STATE * | VCpu, |
| DEBUGGER_EVENT_MODE_TYPE | TargetMode ) |
Restore the execution of the trap to adjusted trap state.
| VCpu | The virtual processor's state |
| IsUserMode | Whether the execution event caused by a switch from kernel-to-user or otherwise user-to-kernel |
| BOOLEAN ExecTrapInitialize | ( | ) |
Initialize the exec trap based on service request.
Remove the target process from the watching list.
| ProcessId |
| VOID ExecTrapRestoreToNormalEptp | ( | VIRTUAL_MACHINE_STATE * | VCpu | ) |
restore to normal EPTP
| VCpu | The virtual processor's state |
| VOID ExecTrapUninitialize | ( | ) |
Uinitialize the needed structure for the reversing machine.
should be called from vmx non-root mode
| volatile LONG ExecTrapProcessListLock |
The lock for modifying the list of processes for user-mode, kernel-mode execution traps.