HyperDbg Debugger
Toggle main menu visibility
Loading...
Searching...
No Matches
State.h
Go to the documentation of this file.
1
12
#pragma once
13
15
// Structures //
17
22
typedef
struct
_PROCESSOR_DEBUGGING_MSR_READ_OR_WRITE
23
{
24
UINT64
Msr
;
// Msr (ecx)
25
UINT64
Value
;
// the value to write on msr
26
27
}
PROCESSOR_DEBUGGING_MSR_READ_OR_WRITE
, *
PPROCESSOR_DEBUGGING_MSR_READ_OR_WRITE
;
28
34
typedef
struct
_DEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE
35
{
36
UINT16
CsSel
;
// the cs value to trace the execution modes
37
38
}
DEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE
, *
PDEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE
;
39
45
typedef
struct
_DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS
46
{
47
BOOLEAN
InitialSetProcessChangeEvent
;
48
BOOLEAN
InitialSetThreadChangeEvent
;
49
50
BOOLEAN
InitialSetByClockInterrupt
;
51
52
//
53
// For threads
54
//
55
UINT64
CurrentThreadLocationOnGs
;
56
BOOLEAN
DebugRegisterInterceptionState
;
57
BOOLEAN
InterceptClockInterruptsForThreadChange
;
58
59
//
60
// For processes
61
//
62
BOOLEAN
IsWatingForMovCr3VmExits
;
63
BOOLEAN
InterceptClockInterruptsForProcessChange
;
64
65
}
DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS
, *
PDEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS
;
66
71
typedef
struct
_DEBUGGEE_BP_DESCRIPTOR
72
{
73
UINT64
BreakpointId
;
74
LIST_ENTRY
BreakpointsList
;
75
BOOLEAN
Enabled
;
76
UINT64
Address
;
77
UINT64
PhysAddress
;
78
UINT32
Pid
;
79
UINT32
Tid
;
80
UINT32
Core
;
81
UINT16
InstructionLength
;
82
BYTE
PreviousByte
;
83
BOOLEAN
AvoidReApplyBreakpoint
;
84
BOOLEAN
RemoveAfterHit
;
85
BOOLEAN
CheckForCallbacks
;
86
87
}
DEBUGGEE_BP_DESCRIPTOR
, *
PDEBUGGEE_BP_DESCRIPTOR
;
88
93
typedef
struct
_KD_NMI_STATE
94
{
95
volatile
BOOLEAN
NmiCalledInVmxRootRelatedToHaltDebuggee
;
96
volatile
BOOLEAN
WaitingToBeLocked
;
97
98
}
KD_NMI_STATE
, *
PKD_NMI_STATE
;
99
104
typedef
struct
_DEBUGGER_PROCESS_THREAD_INFORMATION
105
{
106
union
107
{
108
UINT64
AsUInt
;
109
110
struct
111
{
112
UINT32
ProcessId
;
113
UINT32
ThreadId
;
114
}
Fields
;
115
};
116
117
}
DEBUGGER_PROCESS_THREAD_INFORMATION
, *
PDEBUGGER_PROCESS_THREAD_INFORMATION
;
118
124
typedef
struct
_DEBUGGER_TRAP_FLAG_STATE
125
{
126
UINT32
NumberOfItems
;
127
DEBUGGER_PROCESS_THREAD_INFORMATION
ThreadInformation
[
MAXIMUM_NUMBER_OF_THREAD_INFORMATION_FOR_TRAPS
];
128
129
}
DEBUGGER_TRAP_FLAG_STATE
, *
PDEBUGGER_TRAP_FLAG_STATE
;
130
135
typedef
struct
_DEBUGGEE_HALTED_CORE_TASK
136
{
137
BOOLEAN
PerformHaltedTask
;
138
BOOLEAN
LockAgainAfterTask
;
139
UINT64
TargetTask
;
140
PVOID
Context
;
141
UINT64
KernelStatus
;
142
143
}
DEBUGGEE_HALTED_CORE_TASK
, *
PDEBUGGEE_HALTED_CORE_TASK
;
144
149
typedef
struct
_DATE_TIME_HOLDER
150
{
151
TIME_FIELDS
TimeFields
;
152
CHAR
TimeBuffer
[14];
153
CHAR
DateBuffer
[12];
154
155
}
DATE_TIME_HOLDER
, *
PDATE_TIME_HOLDER
;
156
163
typedef
struct
_PROCESSOR_DEBUGGING_STATE
164
{
165
volatile
LONG
Lock
;
166
volatile
BOOLEAN
MainDebuggingCore
;
167
GUEST_REGS
*
Regs
;
168
UINT32
CoreId
;
169
BOOLEAN
ShortCircuitingEvent
;
170
BOOLEAN
IgnoreDisasmInNextPacket
;
171
BOOLEAN
BreakStarterCore
;
172
BOOLEAN
Test
;
// Used for testing purposes
173
BOOLEAN
DoNotNmiNotifyOtherCoresByThisCore
;
174
BOOLEAN
TracingMode
;
// Indicate that the target processor is on the tracing mode or not
175
PROCESSOR_DEBUGGING_MSR_READ_OR_WRITE
MsrState
;
176
DATE_TIME_HOLDER
DateTimeHolder
;
177
PDEBUGGEE_BP_DESCRIPTOR
SoftwareBreakpointState
;
178
DEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE
InstrumentationStepInTrace
;
179
DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS
ThreadOrProcessTracingDetails
;
180
KD_NMI_STATE
NmiState
;
181
DEBUGGEE_HALTED_CORE_TASK
HaltedCoreTask
;
182
UINT16
InstructionLengthHint
;
183
UINT64
HardwareDebugRegisterForStepping
;
184
UINT64 *
ScriptEngineCoreSpecificStackBuffer
;
185
PKDPC
KdDpcObject
;
// DPC object to be used in kernel debugger
186
CHAR
KdRecvBuffer
[
MaxSerialPacketSize
];
// Used for debugging buffers (receiving buffers from serial devices)
187
188
}
PROCESSOR_DEBUGGING_STATE
,
PPROCESSOR_DEBUGGING_STATE
;
UINT16
unsigned short UINT16
Definition
BasicTypes.h:53
BOOLEAN
UCHAR BOOLEAN
Definition
BasicTypes.h:35
LONG
long LONG
Definition
BasicTypes.h:28
PVOID
void * PVOID
Definition
BasicTypes.h:56
BYTE
unsigned char BYTE
Definition
BasicTypes.h:40
UINT32
unsigned int UINT32
Definition
BasicTypes.h:54
CHAR
char CHAR
Definition
BasicTypes.h:33
MAXIMUM_NUMBER_OF_THREAD_INFORMATION_FOR_TRAPS
#define MAXIMUM_NUMBER_OF_THREAD_INFORMATION_FOR_TRAPS
maximum number of thread/process ids to be allocated for a simultaneous debugging
Definition
Constants.h:409
MaxSerialPacketSize
#define MaxSerialPacketSize
size of buffer for serial
Definition
Constants.h:202
DEBUGGER_TRAP_FLAG_STATE
struct _DEBUGGER_TRAP_FLAG_STATE DEBUGGER_TRAP_FLAG_STATE
The status of RFLAGS.TF masking.
PDEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE
struct _DEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE * PDEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE
PDEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS
struct _DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS * PDEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS
DEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE
struct _DEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE DEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE
Use to trace the execution in the case of instrumentation step-in command (i command).
PKD_NMI_STATE
struct _KD_NMI_STATE * PKD_NMI_STATE
PDEBUGGEE_HALTED_CORE_TASK
struct _DEBUGGEE_HALTED_CORE_TASK * PDEBUGGEE_HALTED_CORE_TASK
PDATE_TIME_HOLDER
struct _DATE_TIME_HOLDER * PDATE_TIME_HOLDER
PDEBUGGER_TRAP_FLAG_STATE
struct _DEBUGGER_TRAP_FLAG_STATE * PDEBUGGER_TRAP_FLAG_STATE
DATE_TIME_HOLDER
struct _DATE_TIME_HOLDER DATE_TIME_HOLDER
Timer for the core.
KD_NMI_STATE
struct _KD_NMI_STATE KD_NMI_STATE
The status of NMI in the kernel debugger.
PDEBUGGER_PROCESS_THREAD_INFORMATION
struct _DEBUGGER_PROCESS_THREAD_INFORMATION * PDEBUGGER_PROCESS_THREAD_INFORMATION
DEBUGGEE_HALTED_CORE_TASK
struct _DEBUGGEE_HALTED_CORE_TASK DEBUGGEE_HALTED_CORE_TASK
Details of setting tasks for the locked (halted) cores.
PPROCESSOR_DEBUGGING_STATE
struct _PROCESSOR_DEBUGGING_STATE PPROCESSOR_DEBUGGING_STATE
DEBUGGEE_BP_DESCRIPTOR
struct _DEBUGGEE_BP_DESCRIPTOR DEBUGGEE_BP_DESCRIPTOR
The structure of storing breakpoints.
PROCESSOR_DEBUGGING_STATE
struct _PROCESSOR_DEBUGGING_STATE PROCESSOR_DEBUGGING_STATE
Saves the debugger state.
DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS
struct _DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS
Structure to save the state of adding trace for threads and processes.
PPROCESSOR_DEBUGGING_MSR_READ_OR_WRITE
struct _PROCESSOR_DEBUGGING_MSR_READ_OR_WRITE * PPROCESSOR_DEBUGGING_MSR_READ_OR_WRITE
DEBUGGER_PROCESS_THREAD_INFORMATION
struct _DEBUGGER_PROCESS_THREAD_INFORMATION DEBUGGER_PROCESS_THREAD_INFORMATION
The thread/process information.
PDEBUGGEE_BP_DESCRIPTOR
struct _DEBUGGEE_BP_DESCRIPTOR * PDEBUGGEE_BP_DESCRIPTOR
PROCESSOR_DEBUGGING_MSR_READ_OR_WRITE
struct _PROCESSOR_DEBUGGING_MSR_READ_OR_WRITE PROCESSOR_DEBUGGING_MSR_READ_OR_WRITE
Use to modify Msrs or read MSR values.
_DATE_TIME_HOLDER
Timer for the core.
Definition
State.h:150
_DATE_TIME_HOLDER::DateBuffer
CHAR DateBuffer[12]
Definition
State.h:153
_DATE_TIME_HOLDER::TimeFields
TIME_FIELDS TimeFields
Definition
State.h:151
_DATE_TIME_HOLDER::TimeBuffer
CHAR TimeBuffer[14]
Definition
State.h:152
_DEBUGGEE_BP_DESCRIPTOR
The structure of storing breakpoints.
Definition
State.h:72
_DEBUGGEE_BP_DESCRIPTOR::BreakpointId
UINT64 BreakpointId
Definition
State.h:73
_DEBUGGEE_BP_DESCRIPTOR::RemoveAfterHit
BOOLEAN RemoveAfterHit
Definition
State.h:84
_DEBUGGEE_BP_DESCRIPTOR::CheckForCallbacks
BOOLEAN CheckForCallbacks
Definition
State.h:85
_DEBUGGEE_BP_DESCRIPTOR::PreviousByte
BYTE PreviousByte
Definition
State.h:82
_DEBUGGEE_BP_DESCRIPTOR::InstructionLength
UINT16 InstructionLength
Definition
State.h:81
_DEBUGGEE_BP_DESCRIPTOR::Address
UINT64 Address
Definition
State.h:76
_DEBUGGEE_BP_DESCRIPTOR::AvoidReApplyBreakpoint
BOOLEAN AvoidReApplyBreakpoint
Definition
State.h:83
_DEBUGGEE_BP_DESCRIPTOR::BreakpointsList
LIST_ENTRY BreakpointsList
Definition
State.h:74
_DEBUGGEE_BP_DESCRIPTOR::Enabled
BOOLEAN Enabled
Definition
State.h:75
_DEBUGGEE_BP_DESCRIPTOR::PhysAddress
UINT64 PhysAddress
Definition
State.h:77
_DEBUGGEE_BP_DESCRIPTOR::Pid
UINT32 Pid
Definition
State.h:78
_DEBUGGEE_BP_DESCRIPTOR::Tid
UINT32 Tid
Definition
State.h:79
_DEBUGGEE_BP_DESCRIPTOR::Core
UINT32 Core
Definition
State.h:80
_DEBUGGEE_HALTED_CORE_TASK
Details of setting tasks for the locked (halted) cores.
Definition
State.h:136
_DEBUGGEE_HALTED_CORE_TASK::LockAgainAfterTask
BOOLEAN LockAgainAfterTask
Definition
State.h:138
_DEBUGGEE_HALTED_CORE_TASK::KernelStatus
UINT64 KernelStatus
Definition
State.h:141
_DEBUGGEE_HALTED_CORE_TASK::Context
PVOID Context
Definition
State.h:140
_DEBUGGEE_HALTED_CORE_TASK::PerformHaltedTask
BOOLEAN PerformHaltedTask
Definition
State.h:137
_DEBUGGEE_HALTED_CORE_TASK::TargetTask
UINT64 TargetTask
Definition
State.h:139
_DEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE
Use to trace the execution in the case of instrumentation step-in command (i command).
Definition
State.h:35
_DEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE::CsSel
UINT16 CsSel
Definition
State.h:36
_DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS
Structure to save the state of adding trace for threads and processes.
Definition
State.h:46
_DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS::InterceptClockInterruptsForProcessChange
BOOLEAN InterceptClockInterruptsForProcessChange
Definition
State.h:63
_DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS::InitialSetByClockInterrupt
BOOLEAN InitialSetByClockInterrupt
Definition
State.h:50
_DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS::InitialSetProcessChangeEvent
BOOLEAN InitialSetProcessChangeEvent
Definition
State.h:47
_DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS::CurrentThreadLocationOnGs
UINT64 CurrentThreadLocationOnGs
Definition
State.h:55
_DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS::InitialSetThreadChangeEvent
BOOLEAN InitialSetThreadChangeEvent
Definition
State.h:48
_DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS::DebugRegisterInterceptionState
BOOLEAN DebugRegisterInterceptionState
Definition
State.h:56
_DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS::IsWatingForMovCr3VmExits
BOOLEAN IsWatingForMovCr3VmExits
Definition
State.h:62
_DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS::InterceptClockInterruptsForThreadChange
BOOLEAN InterceptClockInterruptsForThreadChange
Definition
State.h:57
_DEBUGGER_PROCESS_THREAD_INFORMATION
The thread/process information.
Definition
State.h:105
_DEBUGGER_PROCESS_THREAD_INFORMATION::AsUInt
UINT64 AsUInt
Definition
State.h:108
_DEBUGGER_PROCESS_THREAD_INFORMATION::ProcessId
UINT32 ProcessId
Definition
State.h:112
_DEBUGGER_PROCESS_THREAD_INFORMATION::Fields
struct _DEBUGGER_PROCESS_THREAD_INFORMATION::@377140057364001237056132370063071376367357142252::@172143030234360142230226246044006264162165314002 Fields
_DEBUGGER_PROCESS_THREAD_INFORMATION::ThreadId
UINT32 ThreadId
Definition
State.h:113
_DEBUGGER_TRAP_FLAG_STATE
The status of RFLAGS.TF masking.
Definition
State.h:125
_DEBUGGER_TRAP_FLAG_STATE::ThreadInformation
DEBUGGER_PROCESS_THREAD_INFORMATION ThreadInformation[MAXIMUM_NUMBER_OF_THREAD_INFORMATION_FOR_TRAPS]
Definition
State.h:127
_DEBUGGER_TRAP_FLAG_STATE::NumberOfItems
UINT32 NumberOfItems
Definition
State.h:126
_KD_NMI_STATE
The status of NMI in the kernel debugger.
Definition
State.h:94
_KD_NMI_STATE::WaitingToBeLocked
volatile BOOLEAN WaitingToBeLocked
Definition
State.h:96
_KD_NMI_STATE::NmiCalledInVmxRootRelatedToHaltDebuggee
volatile BOOLEAN NmiCalledInVmxRootRelatedToHaltDebuggee
Definition
State.h:95
_PROCESSOR_DEBUGGING_MSR_READ_OR_WRITE
Use to modify Msrs or read MSR values.
Definition
State.h:23
_PROCESSOR_DEBUGGING_MSR_READ_OR_WRITE::Msr
UINT64 Msr
Definition
State.h:24
_PROCESSOR_DEBUGGING_MSR_READ_OR_WRITE::Value
UINT64 Value
Definition
State.h:25
_PROCESSOR_DEBUGGING_STATE
Saves the debugger state.
Definition
State.h:164
_PROCESSOR_DEBUGGING_STATE::Regs
GUEST_REGS * Regs
Definition
State.h:167
_PROCESSOR_DEBUGGING_STATE::CoreId
UINT32 CoreId
Definition
State.h:168
_PROCESSOR_DEBUGGING_STATE::KdDpcObject
PKDPC KdDpcObject
Definition
State.h:185
_PROCESSOR_DEBUGGING_STATE::NmiState
KD_NMI_STATE NmiState
Definition
State.h:180
_PROCESSOR_DEBUGGING_STATE::KdRecvBuffer
CHAR KdRecvBuffer[MaxSerialPacketSize]
Definition
State.h:186
_PROCESSOR_DEBUGGING_STATE::IgnoreDisasmInNextPacket
BOOLEAN IgnoreDisasmInNextPacket
Definition
State.h:170
_PROCESSOR_DEBUGGING_STATE::DoNotNmiNotifyOtherCoresByThisCore
BOOLEAN DoNotNmiNotifyOtherCoresByThisCore
Definition
State.h:173
_PROCESSOR_DEBUGGING_STATE::MainDebuggingCore
volatile BOOLEAN MainDebuggingCore
Definition
State.h:166
_PROCESSOR_DEBUGGING_STATE::TracingMode
BOOLEAN TracingMode
Definition
State.h:174
_PROCESSOR_DEBUGGING_STATE::Test
BOOLEAN Test
Definition
State.h:172
_PROCESSOR_DEBUGGING_STATE::Lock
volatile LONG Lock
Definition
State.h:165
_PROCESSOR_DEBUGGING_STATE::MsrState
PROCESSOR_DEBUGGING_MSR_READ_OR_WRITE MsrState
Definition
State.h:175
_PROCESSOR_DEBUGGING_STATE::ScriptEngineCoreSpecificStackBuffer
UINT64 * ScriptEngineCoreSpecificStackBuffer
Definition
State.h:184
_PROCESSOR_DEBUGGING_STATE::ThreadOrProcessTracingDetails
DEBUGGEE_PROCESS_OR_THREAD_TRACING_DETAILS ThreadOrProcessTracingDetails
Definition
State.h:179
_PROCESSOR_DEBUGGING_STATE::DateTimeHolder
DATE_TIME_HOLDER DateTimeHolder
Definition
State.h:176
_PROCESSOR_DEBUGGING_STATE::HardwareDebugRegisterForStepping
UINT64 HardwareDebugRegisterForStepping
Definition
State.h:183
_PROCESSOR_DEBUGGING_STATE::InstructionLengthHint
UINT16 InstructionLengthHint
Definition
State.h:182
_PROCESSOR_DEBUGGING_STATE::SoftwareBreakpointState
PDEBUGGEE_BP_DESCRIPTOR SoftwareBreakpointState
Definition
State.h:177
_PROCESSOR_DEBUGGING_STATE::ShortCircuitingEvent
BOOLEAN ShortCircuitingEvent
Definition
State.h:169
_PROCESSOR_DEBUGGING_STATE::InstrumentationStepInTrace
DEBUGGEE_INSTRUMENTATION_STEP_IN_TRACE InstrumentationStepInTrace
Definition
State.h:178
_PROCESSOR_DEBUGGING_STATE::HaltedCoreTask
DEBUGGEE_HALTED_CORE_TASK HaltedCoreTask
Definition
State.h:181
_PROCESSOR_DEBUGGING_STATE::BreakStarterCore
BOOLEAN BreakStarterCore
Definition
State.h:171
GUEST_REGS
Definition
BasicTypes.h:136
hyperdbg
hyperkd
header
debugger
core
State.h
Generated by
1.17.0