HyperDbg Debugger
Toggle main menu visibility
Loading...
Searching...
No Matches
kd.h
Go to the documentation of this file.
1
12
#pragma once
13
15
// Display Windows Details //
17
18
#ifdef _WIN32
19
// HKEY / RegCloseKey are Windows registry APIs; this RAII helper is Windows-only
20
struct
HKeyHolder
21
{
22
private
:
23
HKEY m_Key;
24
25
public
:
26
HKeyHolder() :
27
m_Key(nullptr) { }
28
29
HKeyHolder(
const
HKeyHolder &) =
delete
;
30
HKeyHolder & operator=(
const
HKeyHolder &) =
delete
;
31
32
~HKeyHolder()
33
{
34
if
(m_Key !=
nullptr
)
35
RegCloseKey(m_Key);
36
}
37
38
operator
HKEY()
const
{
return
m_Key; }
39
40
HKEY * operator&() {
return
&m_Key; }
41
};
42
#endif
// _WIN32
43
45
// Functions //
47
48
BOOLEAN
49
KdCommandPacketToDebuggee
(
50
DEBUGGER_REMOTE_PACKET_TYPE
PacketType,
51
DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION
RequestedAction);
52
53
BOOLEAN
54
KdCommandPacketAndBufferToDebuggee
(
55
DEBUGGER_REMOTE_PACKET_TYPE
PacketType,
56
DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION
RequestedAction,
57
CHAR
* Buffer,
58
UINT32
BufferLength);
59
60
BOOLEAN
61
KdPrepareSerialConnectionToRemoteSystem
(HANDLE SerialHandle,
62
BOOLEAN
IsNamedPipe,
63
BOOLEAN
PauseAfterConnection);
64
65
BOOLEAN
66
KdPrepareAndConnectDebugPort
(
const
CHAR
* PortName,
67
DWORD
Baudrate,
68
UINT32
Port,
69
BOOLEAN
IsPreparing,
70
BOOLEAN
IsNamedPipe,
71
BOOLEAN
PauseAfterConnection);
72
73
BOOLEAN
74
KdSendPacketToDebuggee
(
const
CHAR
* Buffer,
UINT32
Length,
BOOLEAN
SendEndOfBuffer);
75
76
BOOLEAN
77
KdReceivePacketFromDebuggee
(
CHAR
* BufferToSave,
UINT32
* LengthReceived);
78
79
BOOLEAN
80
KdReceivePacketFromDebugger
(
CHAR
* BufferToSave,
UINT32
* LengthReceived);
81
82
BOOLEAN
83
KdCheckForTheEndOfTheBuffer
(
PUINT32
CurrentLoopIndex,
BYTE
* Buffer);
84
85
BOOLEAN
86
KdSendSwitchCorePacketToDebuggee
(
UINT32
NewCore);
87
88
BOOLEAN
89
KdSendShortCircuitingEventToDebuggee
(
BOOLEAN
IsEnabled);
90
91
BOOLEAN
92
KdSendEventQueryAndModifyPacketToDebuggee
(
93
UINT64
Tag
,
94
DEBUGGER_MODIFY_EVENTS_TYPE
TypeOfAction,
95
BOOLEAN
* IsEnabled);
96
97
BOOLEAN
98
KdSendFlushPacketToDebuggee
();
99
100
BOOLEAN
101
KdSendCallStackPacketToDebuggee
(UINT64 BaseAddress,
102
UINT32
Size,
103
DEBUGGER_CALLSTACK_DISPLAY_METHOD
DisplayMethod,
104
BOOLEAN
Is32Bit);
105
106
BOOLEAN
107
KdSendTestQueryPacketToDebuggee
(
DEBUGGER_TEST_QUERY_STATE
Type);
108
109
BOOLEAN
110
KdSendTestQueryPacketWithContextToDebuggee
(
DEBUGGER_TEST_QUERY_STATE
Type, UINT64 Context);
111
112
BOOLEAN
113
KdSendSymbolReloadPacketToDebuggee
(
UINT32
ProcessId);
114
115
BOOLEAN
116
KdSendReadRegisterPacketToDebuggee
(
PDEBUGGEE_REGISTER_READ_DESCRIPTION
RegDes,
UINT32
RegBuffSize);
117
118
BOOLEAN
119
KdSendWriteRegisterPacketToDebuggee
(
PDEBUGGEE_REGISTER_WRITE_DESCRIPTION
RegDes);
120
121
BOOLEAN
122
KdSendReadMemoryPacketToDebuggee
(
PDEBUGGER_READ_MEMORY
ReadMem,
UINT32
RequestSize);
123
124
BOOLEAN
125
KdSendEditMemoryPacketToDebuggee
(
PDEBUGGER_EDIT_MEMORY
EditMem,
UINT32
Size);
126
127
PDEBUGGER_EVENT_AND_ACTION_RESULT
128
KdSendRegisterEventPacketToDebuggee
(
PDEBUGGER_GENERAL_EVENT_DETAIL
Event,
129
UINT32
EventBufferLength);
130
131
PDEBUGGER_EVENT_AND_ACTION_RESULT
132
KdSendAddActionToEventPacketToDebuggee
(
PDEBUGGER_GENERAL_ACTION
GeneralAction,
133
UINT32
GeneralActionLength);
134
135
BOOLEAN
136
KdSendSwitchProcessPacketToDebuggee
(
DEBUGGEE_DETAILS_AND_SWITCH_PROCESS_TYPE
ActionType,
137
UINT32
NewPid,
138
UINT64 NewProcess,
139
BOOLEAN
SetChangeByClockInterrupt,
140
PDEBUGGEE_PROCESS_LIST_NEEDED_DETAILS
SymDetailsForProcessList);
141
142
BOOLEAN
143
KdSendSwitchThreadPacketToDebuggee
(
DEBUGGEE_DETAILS_AND_SWITCH_THREAD_TYPE
ActionType,
144
UINT32
NewTid,
145
UINT64 NewThread,
146
BOOLEAN
CheckByClockInterrupt,
147
PDEBUGGEE_THREAD_LIST_NEEDED_DETAILS
SymDetailsForThreadList);
148
149
BOOLEAN
150
KdSendBpPacketToDebuggee
(
PDEBUGGEE_BP_PACKET
BpPacket);
151
152
BOOLEAN
153
KdSendVa2paAndPa2vaPacketToDebuggee
(
PDEBUGGER_VA2PA_AND_PA2VA_COMMANDS
Va2paAndPa2vaPacket);
154
155
BOOLEAN
156
KdSendApicActionPacketsToDebuggee
(
PDEBUGGER_APIC_REQUEST
ApicRequest,
UINT32
ExpectedRequestSize);
157
158
BOOLEAN
159
KdSendSmiPacketsToDebuggee
(
PSMI_OPERATION_PACKETS
SmiOperationRequest,
UINT32
ExpectedRequestSize);
160
161
BOOLEAN
162
KdSendHyperTraceLbrdumpPacketsToDebuggee
(
PHYPERTRACE_LBR_DUMP_PACKETS
HyperTraceLbrdumpRequest,
UINT32
ExpectedRequestSize);
163
164
BOOLEAN
165
KdSendHyperTracePtPacketsToDebuggee
(
PHYPERTRACE_PT_OPERATION_PACKETS
HyperTracePtOperationRequest,
UINT32
ExpectedRequestSize);
166
167
BOOLEAN
168
KdSendQueryIdtPacketsToDebuggee
(
PINTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS
IdtRequest);
169
170
BOOLEAN
171
KdSendPtePacketToDebuggee
(
PDEBUGGER_READ_PAGE_TABLE_ENTRIES_DETAILS
PtePacket);
172
173
BOOLEAN
174
KdSendPageinPacketToDebuggee
(
PDEBUGGER_PAGE_IN_REQUEST
PageinPacket);
175
176
BOOLEAN
177
KdSendListOrModifyPacketToDebuggee
(
178
PDEBUGGEE_BP_LIST_OR_MODIFY_PACKET
ListOrModifyPacket);
179
180
BOOLEAN
181
KdSendScriptPacketToDebuggee
(UINT64 BufferAddress,
UINT32
BufferLength,
UINT32
Pointer,
BOOLEAN
IsFormat);
182
183
BOOLEAN
184
KdSendUserInputPacketToDebuggee
(
const
CHAR
* Sendbuf,
INT
Len,
BOOLEAN
IgnoreBreakingAgain);
185
186
BOOLEAN
187
KdSendSearchRequestPacketToDebuggee
(UINT64 * SearchRequestBuffer,
UINT32
SearchRequestBufferSize);
188
189
BOOLEAN
190
KdSendStepPacketToDebuggee
(
DEBUGGER_REMOTE_STEPPING_REQUEST
StepRequestType);
191
192
BYTE
193
KdComputeDataChecksum
(
PVOID
Buffer,
UINT32
Length);
194
195
BOOLEAN
196
KdRegisterEventInDebuggee
(
PDEBUGGER_GENERAL_EVENT_DETAIL
EventRegBuffer,
197
UINT32
Length);
198
199
BOOLEAN
200
KdAddActionToEventInDebuggee
(
PDEBUGGER_GENERAL_ACTION
ActionAddingBuffer,
201
UINT32
Length);
202
203
BOOLEAN
204
KdSendModifyEventInDebuggee
(
PDEBUGGER_MODIFY_EVENTS
ModifyEvent,
BOOLEAN
SendTheResultBackToDebugger);
205
206
BOOLEAN
207
KdSendGeneralBuffersFromDebuggeeToDebugger
(
208
DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION
RequestedAction,
209
PVOID
Buffer,
210
UINT32
BufferLength,
211
BOOLEAN
PauseDebuggeeWhenSent);
212
213
BOOLEAN
214
KdCloseConnection
();
215
216
BOOLEAN
217
KdReloadSymbolsInDebuggee
(
BOOLEAN
PauseDebuggee,
UINT32
UserProcessId);
218
219
BOOLEAN
220
KdSendResponseOfThePingPacket
();
221
222
BOOLEAN
223
KdSendPcitreePacketToDebuggee
(
PDEBUGGEE_PCITREE_REQUEST_RESPONSE_PACKET
PcitreePacket);
224
225
BOOLEAN
226
KdSendPcidevinfoPacketToDebuggee
(
PDEBUGGEE_PCIDEVINFO_REQUEST_RESPONSE_PACKET
PcidevinfoPacket);
227
228
VOID
229
KdUninitializeConnection
();
230
231
VOID
232
KdSendUsermodePrints
(
CHAR
* Input,
UINT32
Length);
233
234
VOID
235
KdSendSymbolDetailPacket
(
PMODULE_SYMBOL_DETAIL
SymbolDetailPacket,
236
UINT32
CurrentSymbolInfoIndex,
237
UINT32
TotalSymbols);
238
239
VOID
240
KdHandleUserInputInDebuggee
(
DEBUGGEE_USER_INPUT_PACKET
* Descriptor);
241
242
VOID
243
KdTheRemoteSystemIsRunning
();
244
245
VOID
246
KdBreakControlCheckAndPauseDebugger
(
BOOLEAN
SignalRunningFlag);
247
248
VOID
249
KdBreakControlCheckAndContinueDebugger
();
250
251
VOID
252
KdSetStatusAndWaitForPause
();
Tag
POOL_TYPE SIZE_T ULONG Tag
Definition
Hooks.h:89
BOOLEAN
UCHAR BOOLEAN
Definition
BasicTypes.h:35
PVOID
void * PVOID
Definition
BasicTypes.h:56
INT
int INT
Definition
BasicTypes.h:43
BYTE
unsigned char BYTE
Definition
BasicTypes.h:40
PUINT32
unsigned int * PUINT32
Definition
BasicTypes.h:54
DWORD
unsigned long DWORD
Definition
BasicTypes.h:38
UINT32
unsigned int UINT32
Definition
BasicTypes.h:54
CHAR
char CHAR
Definition
BasicTypes.h:33
DEBUGGER_REMOTE_PACKET_TYPE
enum _DEBUGGER_REMOTE_PACKET_TYPE DEBUGGER_REMOTE_PACKET_TYPE
enum for different packet types in HyperDbg packets
DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION
enum _DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION
enum for requested action for HyperDbg packet
DEBUGGEE_USER_INPUT_PACKET
struct _DEBUGGEE_USER_INPUT_PACKET DEBUGGEE_USER_INPUT_PACKET
The structure of user-input packet in HyperDbg.
PDEBUGGER_GENERAL_EVENT_DETAIL
struct _DEBUGGER_GENERAL_EVENT_DETAIL * PDEBUGGER_GENERAL_EVENT_DETAIL
PDEBUGGER_MODIFY_EVENTS
struct _DEBUGGER_MODIFY_EVENTS * PDEBUGGER_MODIFY_EVENTS
PDEBUGGER_EVENT_AND_ACTION_RESULT
struct _DEBUGGER_EVENT_AND_ACTION_RESULT * PDEBUGGER_EVENT_AND_ACTION_RESULT
DEBUGGER_MODIFY_EVENTS_TYPE
enum _DEBUGGER_MODIFY_EVENTS_TYPE DEBUGGER_MODIFY_EVENTS_TYPE
different types of modifying events request (enable/disable/clear)
PDEBUGGER_GENERAL_ACTION
struct _DEBUGGER_GENERAL_ACTION * PDEBUGGER_GENERAL_ACTION
PDEBUGGER_READ_PAGE_TABLE_ENTRIES_DETAILS
struct _DEBUGGER_READ_PAGE_TABLE_ENTRIES_DETAILS * PDEBUGGER_READ_PAGE_TABLE_ENTRIES_DETAILS
PDEBUGGEE_REGISTER_WRITE_DESCRIPTION
struct _DEBUGGEE_REGISTER_WRITE_DESCRIPTION * PDEBUGGEE_REGISTER_WRITE_DESCRIPTION
PDEBUGGER_APIC_REQUEST
struct _DEBUGGER_APIC_REQUEST * PDEBUGGER_APIC_REQUEST
PHYPERTRACE_PT_OPERATION_PACKETS
struct _HYPERTRACE_PT_OPERATION_PACKETS * PHYPERTRACE_PT_OPERATION_PACKETS
PDEBUGGEE_THREAD_LIST_NEEDED_DETAILS
struct _DEBUGGEE_THREAD_LIST_NEEDED_DETAILS * PDEBUGGEE_THREAD_LIST_NEEDED_DETAILS
PDEBUGGEE_PROCESS_LIST_NEEDED_DETAILS
struct _DEBUGGEE_PROCESS_LIST_NEEDED_DETAILS * PDEBUGGEE_PROCESS_LIST_NEEDED_DETAILS
PDEBUGGEE_PCITREE_REQUEST_RESPONSE_PACKET
struct _DEBUGGEE_PCITREE_REQUEST_RESPONSE_PACKET * PDEBUGGEE_PCITREE_REQUEST_RESPONSE_PACKET
PDEBUGGEE_REGISTER_READ_DESCRIPTION
struct _DEBUGGEE_REGISTER_READ_DESCRIPTION * PDEBUGGEE_REGISTER_READ_DESCRIPTION
DEBUGGER_TEST_QUERY_STATE
enum _DEBUGGER_TEST_QUERY_STATE DEBUGGER_TEST_QUERY_STATE
test query used for test purposed
DEBUGGER_CALLSTACK_DISPLAY_METHOD
enum _DEBUGGER_CALLSTACK_DISPLAY_METHOD DEBUGGER_CALLSTACK_DISPLAY_METHOD
callstack showing method
PDEBUGGEE_BP_PACKET
struct _DEBUGGEE_BP_PACKET * PDEBUGGEE_BP_PACKET
PSMI_OPERATION_PACKETS
struct _SMI_OPERATION_PACKETS * PSMI_OPERATION_PACKETS
DEBUGGEE_DETAILS_AND_SWITCH_THREAD_TYPE
enum _DEBUGGEE_DETAILS_AND_SWITCH_THREAD_TYPE DEBUGGEE_DETAILS_AND_SWITCH_THREAD_TYPE
Debugger thread switch and thread details.
PDEBUGGEE_PCIDEVINFO_REQUEST_RESPONSE_PACKET
struct _DEBUGGEE_PCIDEVINFO_REQUEST_RESPONSE_PACKET * PDEBUGGEE_PCIDEVINFO_REQUEST_RESPONSE_PACKET
PDEBUGGER_PAGE_IN_REQUEST
struct _DEBUGGER_PAGE_IN_REQUEST * PDEBUGGER_PAGE_IN_REQUEST
DEBUGGER_REMOTE_STEPPING_REQUEST
enum _DEBUGGER_REMOTE_STEPPING_REQUEST DEBUGGER_REMOTE_STEPPING_REQUEST
stepping and tracking types
PHYPERTRACE_LBR_DUMP_PACKETS
struct _HYPERTRACE_LBR_DUMP_PACKETS * PHYPERTRACE_LBR_DUMP_PACKETS
PDEBUGGER_EDIT_MEMORY
struct _DEBUGGER_EDIT_MEMORY * PDEBUGGER_EDIT_MEMORY
PDEBUGGER_READ_MEMORY
struct _DEBUGGER_READ_MEMORY * PDEBUGGER_READ_MEMORY
DEBUGGEE_DETAILS_AND_SWITCH_PROCESS_TYPE
enum _DEBUGGEE_DETAILS_AND_SWITCH_PROCESS_TYPE DEBUGGEE_DETAILS_AND_SWITCH_PROCESS_TYPE
Debugger process switch and process details.
PDEBUGGEE_BP_LIST_OR_MODIFY_PACKET
struct _DEBUGGEE_BP_LIST_OR_MODIFY_PACKET * PDEBUGGEE_BP_LIST_OR_MODIFY_PACKET
PDEBUGGER_VA2PA_AND_PA2VA_COMMANDS
struct _DEBUGGER_VA2PA_AND_PA2VA_COMMANDS * PDEBUGGER_VA2PA_AND_PA2VA_COMMANDS
PINTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS
struct _INTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS * PINTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS
PMODULE_SYMBOL_DETAIL
struct _MODULE_SYMBOL_DETAIL * PMODULE_SYMBOL_DETAIL
KdSendUserInputPacketToDebuggee
BOOLEAN KdSendUserInputPacketToDebuggee(const CHAR *Sendbuf, INT Len, BOOLEAN IgnoreBreakingAgain)
Sends user input packet to the debuggee.
Definition
kd.cpp:1295
KdSendAddActionToEventPacketToDebuggee
PDEBUGGER_EVENT_AND_ACTION_RESULT KdSendAddActionToEventPacketToDebuggee(PDEBUGGER_GENERAL_ACTION GeneralAction, UINT32 GeneralActionLength)
Send an add action to event request to the debuggee.
Definition
kd.cpp:737
KdSendReadMemoryPacketToDebuggee
BOOLEAN KdSendReadMemoryPacketToDebuggee(PDEBUGGER_READ_MEMORY ReadMem, UINT32 RequestSize)
Send a Read memory packet to the debuggee.
Definition
kd.cpp:597
KdSendEventQueryAndModifyPacketToDebuggee
BOOLEAN KdSendEventQueryAndModifyPacketToDebuggee(UINT64 Tag, DEBUGGER_MODIFY_EVENTS_TYPE TypeOfAction, BOOLEAN *IsEnabled)
Sends a query or request to enable/disable/clear for event.
Definition
kd.cpp:265
KdSendSymbolDetailPacket
VOID KdSendSymbolDetailPacket(PMODULE_SYMBOL_DETAIL SymbolDetailPacket, UINT32 CurrentSymbolInfoIndex, UINT32 TotalSymbols)
Send each packet of debugging information (PDB) to the debugger.
Definition
kd.cpp:3424
KdSendListOrModifyPacketToDebuggee
BOOLEAN KdSendListOrModifyPacketToDebuggee(PDEBUGGEE_BP_LIST_OR_MODIFY_PACKET ListOrModifyPacket)
Sends a breakpoint list or modification packet to the debuggee.
Definition
kd.cpp:1198
KdPrepareAndConnectDebugPort
BOOLEAN KdPrepareAndConnectDebugPort(const CHAR *PortName, DWORD Baudrate, UINT32 Port, BOOLEAN IsPreparing, BOOLEAN IsNamedPipe, BOOLEAN PauseAfterConnection)
Prepare and initialize COM port.
Definition
kd.cpp:2468
KdRegisterEventInDebuggee
BOOLEAN KdRegisterEventInDebuggee(PDEBUGGER_GENERAL_EVENT_DETAIL EventRegBuffer, UINT32 Length)
Register an event in the debuggee.
Definition
kd.cpp:3144
KdSendQueryIdtPacketsToDebuggee
BOOLEAN KdSendQueryIdtPacketsToDebuggee(PINTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS IdtRequest)
Send requests for IDT packet to the debuggee.
Definition
kd.cpp:1135
KdSendSmiPacketsToDebuggee
BOOLEAN KdSendSmiPacketsToDebuggee(PSMI_OPERATION_PACKETS SmiOperationRequest, UINT32 ExpectedRequestSize)
Send requests for SMI operation packet to the debuggee.
Definition
kd.cpp:1031
KdSendPageinPacketToDebuggee
BOOLEAN KdSendPageinPacketToDebuggee(PDEBUGGER_PAGE_IN_REQUEST PageinPacket)
Sends a page-in or '.pagein' command packet to the debuggee.
Definition
kd.cpp:936
KdSendVa2paAndPa2vaPacketToDebuggee
BOOLEAN KdSendVa2paAndPa2vaPacketToDebuggee(PDEBUGGER_VA2PA_AND_PA2VA_COMMANDS Va2paAndPa2vaPacket)
Sends VA2PA and PA2VA packest, or '!va2pa' and '!pa2va' commands packet to the debuggee.
Definition
kd.cpp:965
KdSendModifyEventInDebuggee
BOOLEAN KdSendModifyEventInDebuggee(PDEBUGGER_MODIFY_EVENTS ModifyEvent, BOOLEAN SendTheResultBackToDebugger)
Modify the event ioctl in the debuggee.
Definition
kd.cpp:3248
KdSendSymbolReloadPacketToDebuggee
BOOLEAN KdSendSymbolReloadPacketToDebuggee(UINT32 ProcessId)
Send symbol reload packet to the debuggee.
Definition
kd.cpp:493
KdBreakControlCheckAndContinueDebugger
VOID KdBreakControlCheckAndContinueDebugger()
check if the debuggee needs to be continued
Definition
kd.cpp:2091
KdSendFlushPacketToDebuggee
BOOLEAN KdSendFlushPacketToDebuggee()
Send a flush request to the debuggee.
Definition
kd.cpp:314
KdSendTestQueryPacketToDebuggee
BOOLEAN KdSendTestQueryPacketToDebuggee(DEBUGGER_TEST_QUERY_STATE Type)
Send a test query request to the debuggee.
Definition
kd.cpp:425
KdSendPtePacketToDebuggee
BOOLEAN KdSendPtePacketToDebuggee(PDEBUGGER_READ_PAGE_TABLE_ENTRIES_DETAILS PtePacket)
Sends a PTE or '!pte' command packet to the debuggee.
Definition
kd.cpp:907
KdComputeDataChecksum
BYTE KdComputeDataChecksum(PVOID Buffer, UINT32 Length)
calculate the checksum of received buffer from debugger
Definition
Kd.c:275
KdSendStepPacketToDebuggee
BOOLEAN KdSendStepPacketToDebuggee(DEBUGGER_REMOTE_STEPPING_REQUEST StepRequestType)
Sends p (step out) and t (step in) packet to the debuggee.
Definition
kd.cpp:1381
KdCloseConnection
BOOLEAN KdCloseConnection()
Send close packet to the debuggee and debugger.
Definition
kd.cpp:3056
KdBreakControlCheckAndPauseDebugger
VOID KdBreakControlCheckAndPauseDebugger(BOOLEAN SignalRunningFlag)
check if the debuggee needs to be paused
Definition
kd.cpp:2040
KdReceivePacketFromDebugger
BOOLEAN KdReceivePacketFromDebugger(CHAR *BufferToSave, UINT32 *LengthReceived)
Receive packet from the debugger.
Definition
kd.cpp:1661
KdSendSwitchThreadPacketToDebuggee
BOOLEAN KdSendSwitchThreadPacketToDebuggee(DEBUGGEE_DETAILS_AND_SWITCH_THREAD_TYPE ActionType, UINT32 NewTid, UINT64 NewThread, BOOLEAN CheckByClockInterrupt, PDEBUGGEE_THREAD_LIST_NEEDED_DETAILS SymDetailsForThreadList)
Sends a change thread or show threads detail packet to the debuggee.
Definition
kd.cpp:858
KdCheckForTheEndOfTheBuffer
BOOLEAN KdCheckForTheEndOfTheBuffer(PUINT32 CurrentLoopIndex, BYTE *Buffer)
compares the buffer with a string
Definition
kd.cpp:56
KdSetStatusAndWaitForPause
VOID KdSetStatusAndWaitForPause()
Set the status of the debuggee to wait for the pause.
Definition
kd.cpp:2072
KdCommandPacketToDebuggee
BOOLEAN KdCommandPacketToDebuggee(DEBUGGER_REMOTE_PACKET_TYPE PacketType, DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION RequestedAction)
Sends a HyperDbg packet to the debuggee.
Definition
kd.cpp:1923
KdSendResponseOfThePingPacket
BOOLEAN KdSendResponseOfThePingPacket()
Respond to the debuggee with the version and build date of the debugger.
Definition
kd.cpp:2121
KdSendPcitreePacketToDebuggee
BOOLEAN KdSendPcitreePacketToDebuggee(PDEBUGGEE_PCITREE_REQUEST_RESPONSE_PACKET PcitreePacket)
Sends '!pcitree' command, including buffer, to the debuggee.
Definition
kd.cpp:3592
KdSendSearchRequestPacketToDebuggee
BOOLEAN KdSendSearchRequestPacketToDebuggee(UINT64 *SearchRequestBuffer, UINT32 SearchRequestBufferSize)
Sends search query request packet to the debuggee.
Definition
kd.cpp:1353
KdTheRemoteSystemIsRunning
VOID KdTheRemoteSystemIsRunning()
wait for a event to be triggered and if the debuggee is running it just halts the system
Definition
kd.cpp:2151
KdSendPcidevinfoPacketToDebuggee
BOOLEAN KdSendPcidevinfoPacketToDebuggee(PDEBUGGEE_PCIDEVINFO_REQUEST_RESPONSE_PACKET PcidevinfoPacket)
Request PCI device info (CAM). Current consumers include '!pcicam'.
Definition
kd.cpp:3621
KdSendScriptPacketToDebuggee
BOOLEAN KdSendScriptPacketToDebuggee(UINT64 BufferAddress, UINT32 BufferLength, UINT32 Pointer, BOOLEAN IsFormat)
Sends a script packet to the debuggee.
Definition
kd.cpp:1231
KdSendTestQueryPacketWithContextToDebuggee
BOOLEAN KdSendTestQueryPacketWithContextToDebuggee(DEBUGGER_TEST_QUERY_STATE Type, UINT64 Context)
Send a test query request to the debuggee with the specified context.
Definition
kd.cpp:460
KdSendRegisterEventPacketToDebuggee
PDEBUGGER_EVENT_AND_ACTION_RESULT KdSendRegisterEventPacketToDebuggee(PDEBUGGER_GENERAL_EVENT_DETAIL Event, UINT32 EventBufferLength)
Send a register event request to the debuggee.
Definition
kd.cpp:670
KdHandleUserInputInDebuggee
VOID KdHandleUserInputInDebuggee(DEBUGGEE_USER_INPUT_PACKET *Descriptor)
Handle user-input in debuggee.
Definition
kd.cpp:3308
KdSendShortCircuitingEventToDebuggee
BOOLEAN KdSendShortCircuitingEventToDebuggee(BOOLEAN IsEnabled)
Sends a short-circuiting event request to debuggee.
Definition
kd.cpp:226
KdSendSwitchProcessPacketToDebuggee
BOOLEAN KdSendSwitchProcessPacketToDebuggee(DEBUGGEE_DETAILS_AND_SWITCH_PROCESS_TYPE ActionType, UINT32 NewPid, UINT64 NewProcess, BOOLEAN SetChangeByClockInterrupt, PDEBUGGEE_PROCESS_LIST_NEEDED_DETAILS SymDetailsForProcessList)
Sends a change process or show process details packet to the debuggee.
Definition
kd.cpp:805
KdReceivePacketFromDebuggee
BOOLEAN KdReceivePacketFromDebuggee(CHAR *BufferToSave, UINT32 *LengthReceived)
Receive packet from the debuggee.
Definition
kd.cpp:1558
KdUninitializeConnection
VOID KdUninitializeConnection()
Uninitialize everything in both debuggee and debugger.
Definition
kd.cpp:3474
KdReloadSymbolsInDebuggee
BOOLEAN KdReloadSymbolsInDebuggee(BOOLEAN PauseDebuggee, UINT32 UserProcessId)
Send the packets of reloading symbols to build a new symbol table to the debugger and send the finish...
Definition
kd.cpp:3015
KdSendUsermodePrints
VOID KdSendUsermodePrints(CHAR *Input, UINT32 Length)
Send result of user-mode ShowMessages to debuggee.
Definition
kd.cpp:3364
KdSendReadRegisterPacketToDebuggee
BOOLEAN KdSendReadRegisterPacketToDebuggee(PDEBUGGEE_REGISTER_READ_DESCRIPTION RegDes, UINT32 RegBuffSize)
Send a read register packet to the debuggee.
Definition
kd.cpp:527
KdSendApicActionPacketsToDebuggee
BOOLEAN KdSendApicActionPacketsToDebuggee(PDEBUGGER_APIC_REQUEST ApicRequest, UINT32 ExpectedRequestSize)
Send requests for APIC packet to the debuggee.
Definition
kd.cpp:995
KdSendEditMemoryPacketToDebuggee
BOOLEAN KdSendEditMemoryPacketToDebuggee(PDEBUGGER_EDIT_MEMORY EditMem, UINT32 Size)
Send an Edit memory packet to the debuggee.
Definition
kd.cpp:633
KdCommandPacketAndBufferToDebuggee
BOOLEAN KdCommandPacketAndBufferToDebuggee(DEBUGGER_REMOTE_PACKET_TYPE PacketType, DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION RequestedAction, CHAR *Buffer, UINT32 BufferLength)
Sends a HyperDbg packet + a buffer to the debuggee.
Definition
kd.cpp:1970
KdSendHyperTraceLbrdumpPacketsToDebuggee
BOOLEAN KdSendHyperTraceLbrdumpPacketsToDebuggee(PHYPERTRACE_LBR_DUMP_PACKETS HyperTraceLbrdumpRequest, UINT32 ExpectedRequestSize)
Send requests for HyperTrace LBR dump packet to the debuggee.
Definition
kd.cpp:1066
KdSendGeneralBuffersFromDebuggeeToDebugger
BOOLEAN KdSendGeneralBuffersFromDebuggeeToDebugger(DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION RequestedAction, PVOID Buffer, UINT32 BufferLength, BOOLEAN PauseDebuggeeWhenSent)
Send general buffer from debuggee to debugger.
Definition
kd.cpp:2911
KdSendHyperTracePtPacketsToDebuggee
BOOLEAN KdSendHyperTracePtPacketsToDebuggee(PHYPERTRACE_PT_OPERATION_PACKETS HyperTracePtOperationRequest, UINT32 ExpectedRequestSize)
Send requests for HyperTrace PT operation packet to the debuggee.
Definition
kd.cpp:1101
KdPrepareSerialConnectionToRemoteSystem
BOOLEAN KdPrepareSerialConnectionToRemoteSystem(HANDLE SerialHandle, BOOLEAN IsNamedPipe, BOOLEAN PauseAfterConnection)
Prepare serial to connect to the remote server.
Definition
kd.cpp:2175
KdAddActionToEventInDebuggee
BOOLEAN KdAddActionToEventInDebuggee(PDEBUGGER_GENERAL_ACTION ActionAddingBuffer, UINT32 Length)
Add action to an event in the debuggee.
Definition
kd.cpp:3198
KdSendBpPacketToDebuggee
BOOLEAN KdSendBpPacketToDebuggee(PDEBUGGEE_BP_PACKET BpPacket)
Sends a breakpoint set or 'bp' command packet to the debuggee.
Definition
kd.cpp:1169
KdSendPacketToDebuggee
BOOLEAN KdSendPacketToDebuggee(const CHAR *Buffer, UINT32 Length, BOOLEAN SendEndOfBuffer)
Sends a special packet to the debuggee.
Definition
kd.cpp:1783
KdSendWriteRegisterPacketToDebuggee
BOOLEAN KdSendWriteRegisterPacketToDebuggee(PDEBUGGEE_REGISTER_WRITE_DESCRIPTION RegDes)
Send a write register packet to the debuggee.
Definition
kd.cpp:562
KdSendSwitchCorePacketToDebuggee
BOOLEAN KdSendSwitchCorePacketToDebuggee(UINT32 NewCore)
Sends a change core or '~ x' command packet to the debuggee.
Definition
kd.cpp:181
KdSendCallStackPacketToDebuggee
BOOLEAN KdSendCallStackPacketToDebuggee(UINT64 BaseAddress, UINT32 Size, DEBUGGER_CALLSTACK_DISPLAY_METHOD DisplayMethod, BOOLEAN Is32Bit)
Send a callstack request to the debuggee.
Definition
kd.cpp:348
hyperdbg
libhyperdbg
header
kd.h
Generated by
1.17.0