HyperDbg Debugger
Toggle main menu visibility
Loading...
Searching...
No Matches
Ud.h
Go to the documentation of this file.
1
12
#pragma once
13
15
// Structures //
17
23
typedef
struct
_USERMODE_DEBUGGING_PROCESS_DETAILS
24
{
25
UINT64
Token
;
26
BOOLEAN
Enabled
;
27
PVOID
PebAddressToMonitor
;
28
UINT32
ActiveThreadId
;
// active thread
29
GUEST_REGS
Registers
;
// active thread
30
UINT64
Context
;
// $context
31
LIST_ENTRY
AttachedProcessList
;
32
UINT64
EntrypointOfMainModule
;
33
UINT64
BaseAddressOfMainModule
;
34
PEPROCESS
Eprocess
;
35
UINT32
ProcessId
;
36
BOOLEAN
Is32Bit
;
37
BOOLEAN
IsOnTheStartingPhase
;
38
BOOLEAN
IsOnThreadInterceptingPhase
;
39
BOOLEAN
CheckCallBackForInterceptingFirstInstruction
;
// checks for the callbacks for interceptions of the very first instruction (used by RE Machine)
40
LIST_ENTRY
ThreadsListHead
;
41
42
}
USERMODE_DEBUGGING_PROCESS_DETAILS
, *
PUSERMODE_DEBUGGING_PROCESS_DETAILS
;
43
45
// Functions //
47
48
BOOLEAN
49
UdInitializeUserDebugger
();
50
51
VOID
52
UdUninitializeUserDebugger
();
53
54
BOOLEAN
55
UdHandleInstantBreak
(
PROCESSOR_DEBUGGING_STATE
* DbgState,
56
DEBUGGEE_PAUSING_REASON
Reason,
57
PUSERMODE_DEBUGGING_PROCESS_DETAILS
ProcessDebuggingDetail);
58
59
VOID
60
UdApplyHardwareDebugRegister
(
PVOID
TargetAddress);
61
62
BOOLEAN
63
UdCheckAndHandleBreakpointsAndDebugBreaks
(
PROCESSOR_DEBUGGING_STATE
* DbgState,
64
DEBUGGEE_PAUSING_REASON
Reason,
65
PDEBUGGER_TRIGGERED_EVENT_DETAILS
EventDetails);
66
67
BOOLEAN
68
UdDispatchUsermodeCommands
(
PDEBUGGER_UD_COMMAND_PACKET
ActionRequest,
69
UINT32
ActionRequestInputLength,
70
UINT32
ActionRequestOutputLength);
71
72
BOOLEAN
73
UdCheckForCommand
(
PROCESSOR_DEBUGGING_STATE
* DbgState,
74
PUSERMODE_DEBUGGING_PROCESS_DETAILS
ProcessDebuggingDetail);
75
76
BOOLEAN
77
UdHandleDebugEventsWhenUserDebuggerIsAttached
(
PROCESSOR_DEBUGGING_STATE
* DbgState,
78
BOOLEAN
TrapSetByDebugger);
79
80
VOID
81
UdSendFormatsFunctionResult
(UINT64
Value
);
BOOLEAN
UCHAR BOOLEAN
Definition
BasicTypes.h:35
PVOID
void * PVOID
Definition
BasicTypes.h:56
UINT32
unsigned int UINT32
Definition
BasicTypes.h:54
DEBUGGEE_PAUSING_REASON
enum _DEBUGGEE_PAUSING_REASON DEBUGGEE_PAUSING_REASON
enum for reasons why debuggee is paused
PDEBUGGER_TRIGGERED_EVENT_DETAILS
struct _DEBUGGER_TRIGGERED_EVENT_DETAILS * PDEBUGGER_TRIGGERED_EVENT_DETAILS
PDEBUGGER_UD_COMMAND_PACKET
struct _DEBUGGER_UD_COMMAND_PACKET * PDEBUGGER_UD_COMMAND_PACKET
PROCESSOR_DEBUGGING_STATE
struct _PROCESSOR_DEBUGGING_STATE PROCESSOR_DEBUGGING_STATE
Saves the debugger state.
UdCheckForCommand
BOOLEAN UdCheckForCommand(PROCESSOR_DEBUGGING_STATE *DbgState, PUSERMODE_DEBUGGING_PROCESS_DETAILS ProcessDebuggingDetail)
Check for the user-mode commands.
Definition
Ud.c:558
UdCheckAndHandleBreakpointsAndDebugBreaks
BOOLEAN UdCheckAndHandleBreakpointsAndDebugBreaks(PROCESSOR_DEBUGGING_STATE *DbgState, DEBUGGEE_PAUSING_REASON Reason, PDEBUGGER_TRIGGERED_EVENT_DETAILS EventDetails)
Handle DBs and BPs for kernel debugger.
Definition
Ud.c:812
UdUninitializeUserDebugger
VOID UdUninitializeUserDebugger()
uninitialize user debugger
Definition
Ud.c:90
UdInitializeUserDebugger
BOOLEAN UdInitializeUserDebugger()
initialize user debugger
Definition
Ud.c:21
UdDispatchUsermodeCommands
BOOLEAN UdDispatchUsermodeCommands(PDEBUGGER_UD_COMMAND_PACKET ActionRequest, UINT32 ActionRequestInputLength, UINT32 ActionRequestOutputLength)
Dispatch the user-mode commands.
Definition
Ud.c:642
UdSendFormatsFunctionResult
VOID UdSendFormatsFunctionResult(UINT64 Value)
Send the result of formats command to the user debugger.
Definition
Ud.c:195
PUSERMODE_DEBUGGING_PROCESS_DETAILS
struct _USERMODE_DEBUGGING_PROCESS_DETAILS * PUSERMODE_DEBUGGING_PROCESS_DETAILS
UdHandleDebugEventsWhenUserDebuggerIsAttached
BOOLEAN UdHandleDebugEventsWhenUserDebuggerIsAttached(PROCESSOR_DEBUGGING_STATE *DbgState, BOOLEAN TrapSetByDebugger)
Handles debug events when user-debugger is attached.
Definition
Ud.c:267
USERMODE_DEBUGGING_PROCESS_DETAILS
struct _USERMODE_DEBUGGING_PROCESS_DETAILS USERMODE_DEBUGGING_PROCESS_DETAILS
Description of each active thread in user-mode attaching mechanism.
UdApplyHardwareDebugRegister
VOID UdApplyHardwareDebugRegister(PVOID TargetAddress)
Apply hardware debug registers to all cores.
Definition
Ud.c:180
UdHandleInstantBreak
BOOLEAN UdHandleInstantBreak(PROCESSOR_DEBUGGING_STATE *DbgState, DEBUGGEE_PAUSING_REASON Reason, PUSERMODE_DEBUGGING_PROCESS_DETAILS ProcessDebuggingDetail)
Handle cases where we instant break is needed on the user debugger.
Definition
Ud.c:122
Value
RequestedActionOfThePacket Value(0x1) 00000000
_USERMODE_DEBUGGING_PROCESS_DETAILS
Description of each active thread in user-mode attaching mechanism.
Definition
Ud.h:24
_USERMODE_DEBUGGING_PROCESS_DETAILS::ThreadsListHead
LIST_ENTRY ThreadsListHead
Definition
Ud.h:40
_USERMODE_DEBUGGING_PROCESS_DETAILS::Context
UINT64 Context
Definition
Ud.h:30
_USERMODE_DEBUGGING_PROCESS_DETAILS::Token
UINT64 Token
Definition
Ud.h:25
_USERMODE_DEBUGGING_PROCESS_DETAILS::CheckCallBackForInterceptingFirstInstruction
BOOLEAN CheckCallBackForInterceptingFirstInstruction
Definition
Ud.h:39
_USERMODE_DEBUGGING_PROCESS_DETAILS::BaseAddressOfMainModule
UINT64 BaseAddressOfMainModule
Definition
Ud.h:33
_USERMODE_DEBUGGING_PROCESS_DETAILS::Is32Bit
BOOLEAN Is32Bit
Definition
Ud.h:36
_USERMODE_DEBUGGING_PROCESS_DETAILS::ActiveThreadId
UINT32 ActiveThreadId
Definition
Ud.h:28
_USERMODE_DEBUGGING_PROCESS_DETAILS::Enabled
BOOLEAN Enabled
Definition
Ud.h:26
_USERMODE_DEBUGGING_PROCESS_DETAILS::ProcessId
UINT32 ProcessId
Definition
Ud.h:35
_USERMODE_DEBUGGING_PROCESS_DETAILS::IsOnThreadInterceptingPhase
BOOLEAN IsOnThreadInterceptingPhase
Definition
Ud.h:38
_USERMODE_DEBUGGING_PROCESS_DETAILS::EntrypointOfMainModule
UINT64 EntrypointOfMainModule
Definition
Ud.h:32
_USERMODE_DEBUGGING_PROCESS_DETAILS::PebAddressToMonitor
PVOID PebAddressToMonitor
Definition
Ud.h:27
_USERMODE_DEBUGGING_PROCESS_DETAILS::Registers
GUEST_REGS Registers
Definition
Ud.h:29
_USERMODE_DEBUGGING_PROCESS_DETAILS::IsOnTheStartingPhase
BOOLEAN IsOnTheStartingPhase
Definition
Ud.h:37
_USERMODE_DEBUGGING_PROCESS_DETAILS::Eprocess
PEPROCESS Eprocess
Definition
Ud.h:34
_USERMODE_DEBUGGING_PROCESS_DETAILS::AttachedProcessList
LIST_ENTRY AttachedProcessList
Definition
Ud.h:31
GUEST_REGS
Definition
BasicTypes.h:136
hyperdbg
hyperkd
header
debugger
user-level
Ud.h
Generated by
1.17.0