|
HyperDbg Debugger
|
Implementation of kernel debugger functions for processes. More...
#include "pch.h"Functions | |
| VOID | ProcessTriggerCr3ProcessChange (UINT32 CoreId) |
| handle process changes for cr3 registers | |
| BOOLEAN | ProcessHandleProcessChange (PROCESSOR_DEBUGGING_STATE *DbgState) |
| handle process changes | |
| BOOLEAN | ProcessSwitch (PROCESSOR_DEBUGGING_STATE *DbgState, UINT32 ProcessId, PEPROCESS EProcess, BOOLEAN IsSwitchByClockIntrrupt) |
| make evnvironment ready to change the process | |
| VOID | ProcessDetectChangeByInterceptingClockInterrupts (PROCESSOR_DEBUGGING_STATE *DbgState, BOOLEAN Enable) |
| Enable or disable the process change monitoring detection on the running core based on intercepting clock interrupts. | |
| VOID | ProcessDetectChangeByMov2Cr3Vmexits (PROCESSOR_DEBUGGING_STATE *DbgState, BOOLEAN Enable) |
| Enable or disable the process change monitoring detection on the running core based on mov-to-cr3 vm-exits. | |
| VOID | ProcessEnableOrDisableThreadChangeMonitor (PROCESSOR_DEBUGGING_STATE *DbgState, BOOLEAN Enable, BOOLEAN IsSwitchByClockIntrrupt) |
| Enable or disable the process change monitoring detection on the running core. | |
| BOOLEAN | ProcessCheckIfEprocessIsValid (UINT64 Eprocess, UINT64 ActiveProcessHead, ULONG ActiveProcessLinksOffset) |
| checks whether the given nt!_EPROCESS is valid or not | |
| BOOLEAN | ProcessShowList (PDEBUGGEE_PROCESS_LIST_NEEDED_DETAILS PorcessListSymbolInfo, DEBUGGER_QUERY_ACTIVE_PROCESSES_OR_THREADS_ACTIONS QueryAction, UINT32 *CountOfProcesses, PVOID ListSaveBuffer, UINT64 ListSaveBuffSize) |
| shows the processes list | |
| BOOLEAN | ProcessInterpretProcess (PROCESSOR_DEBUGGING_STATE *DbgState, PDEBUGGEE_DETAILS_AND_SWITCH_PROCESS_PACKET PidRequest) |
| change the current process @detail ONLY TO BE USED IN KD STUFFS | |
| BOOLEAN | ProcessQueryCount (PDEBUGGER_QUERY_ACTIVE_PROCESSES_OR_THREADS DebuggerUsermodeProcessOrThreadQueryRequest) |
| Query process details (count). | |
| BOOLEAN | ProcessQueryList (PDEBUGGER_QUERY_ACTIVE_PROCESSES_OR_THREADS DebuggerUsermodeProcessOrThreadQueryRequest, PVOID AddressToSaveDetail, UINT32 BufferSize) |
| Query process details (list). | |
| BOOLEAN | ProcessQueryDetails (PDEBUGGEE_DETAILS_AND_SWITCH_PROCESS_PACKET GetInformationProcessRequest) |
| Query process details. | |
Implementation of kernel debugger functions for processes.
| BOOLEAN ProcessCheckIfEprocessIsValid | ( | UINT64 | Eprocess, |
| UINT64 | ActiveProcessHead, | ||
| ULONG | ActiveProcessLinksOffset ) |
checks whether the given nt!_EPROCESS is valid or not
| Eprocess | target nt!_EPROCESS |
| ActiveProcessHead | nt!PsActiveProcessHead |
| ActiveProcessLinksOffset | nt!_EPROCESS.ActiveProcessLinks |
| VOID ProcessDetectChangeByInterceptingClockInterrupts | ( | PROCESSOR_DEBUGGING_STATE * | DbgState, |
| BOOLEAN | Enable ) |
Enable or disable the process change monitoring detection on the running core based on intercepting clock interrupts.
should be called on vmx root
| DbgState | The state of the debugger on the current core |
| Enable |
| VOID ProcessDetectChangeByMov2Cr3Vmexits | ( | PROCESSOR_DEBUGGING_STATE * | DbgState, |
| BOOLEAN | Enable ) |
Enable or disable the process change monitoring detection on the running core based on mov-to-cr3 vm-exits.
should be called on vmx root
| DbgState | The state of the debugger on the current core |
| Enable |
| VOID ProcessEnableOrDisableThreadChangeMonitor | ( | PROCESSOR_DEBUGGING_STATE * | DbgState, |
| BOOLEAN | Enable, | ||
| BOOLEAN | IsSwitchByClockIntrrupt ) |
Enable or disable the process change monitoring detection on the running core.
should be called on vmx root
| DbgState | The state of the debugger on the current core |
| Enable | |
| IsSwitchByClockIntrrupt |
| BOOLEAN ProcessHandleProcessChange | ( | PROCESSOR_DEBUGGING_STATE * | DbgState | ) |
handle process changes
| DbgState | The state of the debugger on the current core |
| BOOLEAN ProcessInterpretProcess | ( | PROCESSOR_DEBUGGING_STATE * | DbgState, |
| PDEBUGGEE_DETAILS_AND_SWITCH_PROCESS_PACKET | PidRequest ) |
change the current process @detail ONLY TO BE USED IN KD STUFFS
| DbgState | The state of the debugger on the current core |
| PidRequest |
| BOOLEAN ProcessQueryCount | ( | PDEBUGGER_QUERY_ACTIVE_PROCESSES_OR_THREADS | DebuggerUsermodeProcessOrThreadQueryRequest | ) |
Query process details (count).
| DebuggerUsermodeProcessOrThreadQueryRequest |
| BOOLEAN ProcessQueryDetails | ( | PDEBUGGEE_DETAILS_AND_SWITCH_PROCESS_PACKET | GetInformationProcessRequest | ) |
Query process details.
| GetInformationProcessRequest |
| BOOLEAN ProcessQueryList | ( | PDEBUGGER_QUERY_ACTIVE_PROCESSES_OR_THREADS | DebuggerUsermodeProcessOrThreadQueryRequest, |
| PVOID | AddressToSaveDetail, | ||
| UINT32 | BufferSize ) |
Query process details (list).
| DebuggerUsermodeProcessOrThreadQueryRequest | |
| AddressToSaveDetail | |
| BufferSize |
| BOOLEAN ProcessShowList | ( | PDEBUGGEE_PROCESS_LIST_NEEDED_DETAILS | PorcessListSymbolInfo, |
| DEBUGGER_QUERY_ACTIVE_PROCESSES_OR_THREADS_ACTIONS | QueryAction, | ||
| UINT32 * | CountOfProcesses, | ||
| PVOID | ListSaveBuffer, | ||
| UINT64 | ListSaveBuffSize ) |
shows the processes list
| PorcessListSymbolInfo | |
| QueryAction | |
| CountOfProcesses | |
| ListSaveBuffer | |
| ListSaveBuffSize |
| BOOLEAN ProcessSwitch | ( | PROCESSOR_DEBUGGING_STATE * | DbgState, |
| UINT32 | ProcessId, | ||
| PEPROCESS | EProcess, | ||
| BOOLEAN | IsSwitchByClockIntrrupt ) |
make evnvironment ready to change the process
| DbgState | The state of the debugger on the current core |
| ProcessId | |
| EProcess | |
| IsSwitchByClockIntrrupt |
| VOID ProcessTriggerCr3ProcessChange | ( | UINT32 | CoreId | ) |
handle process changes for cr3 registers
| CoreId |