HyperDbg Debugger
Toggle main menu visibility
Loading...
Searching...
No Matches
debugger.h
Go to the documentation of this file.
1
13
#pragma once
14
16
// Debugger Synchronization Objects //
18
22
#define DEBUGGER_MAXIMUM_SYNCRONIZATION_KERNEL_DEBUGGER_OBJECTS 0x40
23
29
30
//
31
// Kernel-debugger
32
//
33
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_IS_DEBUGGER_RUNNING 0x0
34
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_STARTED_PACKET_RECEIVED 0x1
35
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_PAUSED_DEBUGGEE_DETAILS 0x2
36
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_CORE_SWITCHING_RESULT 0x3
37
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_PROCESS_SWITCHING_RESULT 0x4
38
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_THREAD_SWITCHING_RESULT 0x5
39
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_SCRIPT_RUNNING_RESULT 0x6
40
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_SCRIPT_FORMATS_RESULT 0x7
41
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_DEBUGGEE_FINISHED_COMMAND_EXECUTION 0x8
42
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_FLUSH_RESULT 0x9
43
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_REGISTER_EVENT 0xa
44
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_ADD_ACTION_TO_EVENT 0xb
45
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_MODIFY_AND_QUERY_EVENT 0xc
46
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_READ_REGISTERS 0xd
47
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_BP 0xe
48
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_LIST_OR_MODIFY_BREAKPOINTS 0xf
49
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_READ_MEMORY 0x10
50
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_EDIT_MEMORY 0x11
51
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_SYMBOL_RELOAD 0x12
52
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_TEST_QUERY 0x13
53
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_CALLSTACK_RESULT 0x14
54
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_SEARCH_QUERY_RESULT 0x15
55
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_VA2PA_AND_PA2VA_RESULT 0x16
56
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_PTE_RESULT 0x17
57
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_SHORT_CIRCUITING_EVENT_STATE 0x18
58
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_PAGE_IN_STATE 0x19
59
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_WRITE_REGISTER 0x1a
60
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_PCITREE_RESULT 0x1b
61
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_APIC_ACTIONS 0x1c
62
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_PCIDEVINFO_RESULT 0x1d
63
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_IDT_ENTRIES 0x1e
64
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_SMI_OPERATION_RESULT 0x1f
65
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_HYPERTRACE_LBR_DUMP_RESULT 0x20
66
#define DEBUGGER_SYNCRONIZATION_OBJECT_KERNEL_DEBUGGER_HYPERTRACE_PT_OPERATION_RESULT 0x21
67
69
// Event Details //
71
76
typedef
enum
_DEBUGGER_EVENT_PARSING_ERROR_CAUSE
77
{
78
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_SUCCESSFUL_NO_ERROR
= 0,
79
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_SCRIPT_SYNTAX_ERROR
= 1,
80
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_NO_INPUT
= 2,
81
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_MAXIMUM_INPUT_REACHED
= 3,
82
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_OUTPUT_NAME_NOT_FOUND
= 4,
83
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_OUTPUT_SOURCE_ALREADY_CLOSED
= 5,
84
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_ALLOCATION_ERROR
= 6,
85
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_FORMAT_ERROR
= 7,
86
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_ATTEMPT_TO_BREAK_ON_VMI_MODE
= 8,
87
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_IMMEDIATE_MESSAGING_IN_EVENT_FORWARDING_MODE
= 9,
88
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_USING_SHORT_CIRCUITING_IN_POST_EVENTS
= 10,
89
90
}
DEBUGGER_EVENT_PARSING_ERROR_CAUSE
,
91
*
PDEBUGGER_EVENT_PARSING_ERROR_CAUSE
;
92
96
#define DEBUGGER_MAXIMUM_SYNCRONIZATION_USER_DEBUGGER_OBJECTS 0x40
97
103
104
//
105
// User-debugger
106
//
107
#define DEBUGGER_SYNCRONIZATION_OBJECT_USER_DEBUGGER_IS_DEBUGGER_RUNNING 0x0
108
110
// Event Details //
112
117
typedef
struct
_DEBUGGER_SYNCRONIZATION_EVENTS_STATE
118
{
119
HANDLE
EventHandle
;
120
BOOLEAN
IsOnWaitingState
;
121
PVOID
RequestData
;
122
UINT32
RequestSize
;
123
124
}
DEBUGGER_SYNCRONIZATION_EVENTS_STATE
, *
PDEBUGGER_SYNCRONIZATION_EVENTS_STATE
;
125
127
// Functions //
129
130
BOOLEAN
131
ShowErrorMessage
(
UINT32
Error);
132
133
BOOLEAN
134
IsConnectedToAnyInstanceOfDebuggerOrDebuggee
();
135
136
BOOLEAN
137
IsTagExist
(UINT64
Tag
);
138
139
UINT64
140
DebuggerGetNtoskrnlBase
();
141
142
UINT64
143
DebuggerGetKernelBase
();
144
145
BOOLEAN
146
DebuggerPauseDebuggee
();
147
148
VOID
149
FreeEventsAndActionsMemory
(
PDEBUGGER_GENERAL_EVENT_DETAIL
Event,
150
PDEBUGGER_GENERAL_ACTION
ActionBreakToDebugger,
151
PDEBUGGER_GENERAL_ACTION
ActionCustomCode,
152
PDEBUGGER_GENERAL_ACTION
ActionScript);
153
154
BOOLEAN
155
SendEventToKernel
(
PDEBUGGER_GENERAL_EVENT_DETAIL
Event,
156
UINT32
EventBufferLength);
157
158
BOOLEAN
159
RegisterActionToEvent
(
PDEBUGGER_GENERAL_EVENT_DETAIL
Event,
160
PDEBUGGER_GENERAL_ACTION
ActionBreakToDebugger,
161
UINT32
ActionBreakToDebuggerLength,
162
PDEBUGGER_GENERAL_ACTION
ActionCustomCode,
163
UINT32
ActionCustomCodeLength,
164
PDEBUGGER_GENERAL_ACTION
ActionScript,
165
UINT32
ActionScriptLength);
166
167
BOOLEAN
168
InterpretGeneralEventAndActionsFields
(
169
vector<CommandToken> * CommandTokens,
170
VMM_EVENT_TYPE_ENUM
EventType,
171
PDEBUGGER_GENERAL_EVENT_DETAIL
* EventDetailsToFill,
172
PUINT32
EventBufferLength,
173
PDEBUGGER_GENERAL_ACTION
* ActionDetailsToFillBreakToDebugger,
174
PUINT32
ActionBufferLengthBreakToDebugger,
175
PDEBUGGER_GENERAL_ACTION
* ActionDetailsToFillCustomCode,
176
PUINT32
ActionBufferLengthCustomCode,
177
PDEBUGGER_GENERAL_ACTION
* ActionDetailsToFillScript,
178
PUINT32
ActionBufferLengthScript,
179
PDEBUGGER_EVENT_PARSING_ERROR_CAUSE
ReasonForErrorInParsing);
180
181
BOOLEAN
182
CallstackReturnAddressToCallingAddress
(
UCHAR
* ReturnAddress,
PUINT32
IndexOfCallFromReturnAddress);
183
184
VOID
185
CallstackShowFrames
(
PDEBUGGER_SINGLE_CALLSTACK_FRAME
CallstackFrames,
186
UINT32
FrameCount,
187
DEBUGGER_CALLSTACK_DISPLAY_METHOD
DisplayMethod,
188
BOOLEAN
Is32Bit);
189
190
UINT64
191
GetNewDebuggerEventTag
();
192
193
DWORD
WINAPI
194
ListeningSerialPauseDebuggeeThread
(
PVOID
Param);
195
196
DWORD
WINAPI
197
ListeningSerialPauseDebuggerThread
(
PVOID
Param);
198
199
VOID
200
LogopenSaveToFile
(
const
CHAR
* Text);
201
202
BOOL
203
BreakController
(
DWORD
CtrlType);
204
205
VOID
206
CommandEventsShowEvents
();
207
208
BOOLEAN
209
CommandEventsModifyAndQueryEvents
(UINT64
Tag
,
210
DEBUGGER_MODIFY_EVENTS_TYPE
TypeOfAction);
211
212
VOID
213
CommandEventsHandleModifiedEvent
(
214
UINT64
Tag
,
215
PDEBUGGER_MODIFY_EVENTS
ModifyEventRequest);
216
217
VOID
218
CommandEventsClearAllEventsAndResetTags
();
219
220
VOID
221
CommandFlushRequestFlush
();
222
223
UINT64
224
GetCommandAttributes
(
const
string
& FirstCommand);
225
226
VOID
227
DetachFromProcess
();
228
229
VOID
230
CommandPauseRequest
();
231
232
VOID
233
CommandGRequest
();
234
235
BOOLEAN
236
CommandBpRequest
(UINT64 Address,
UINT32
Pid,
UINT32
Tid,
UINT32
CoreNumer);
237
238
VOID
239
CommandTrackHandleReceivedInstructions
(
UCHAR
* BufferToDisassemble,
240
UINT32
BuffLength,
241
BOOLEAN
Isx86_64,
242
UINT64 RipAddress);
243
244
VOID
245
CommandTrackHandleReceivedCallInstructions
(
const
CHAR
* NameOfFunctionFromSymbols,
246
UINT64 ComputedAbsoluteAddress);
247
248
VOID
249
CommandTrackHandleReceivedRetInstructions
(UINT64 CurrentRip);
250
251
BOOLEAN
252
HyperDbgWriteMemory
(
PVOID
DestinationAddress,
253
DEBUGGER_EDIT_MEMORY_TYPE
MemoryType,
254
UINT32
ProcessId,
255
PVOID
SourceAddress,
256
UINT32
NumberOfBytes
);
257
259
// Misc //
261
262
BOOLEAN
263
CommandApicSendRequest
(
DEBUGGER_APIC_REQUEST_TYPE
ApicType,
264
PVOID
ApicBuffer,
265
UINT32
ExpectedRequestSize,
266
PBOOLEAN
IsUsingX2APIC);
267
269
// SDK Servicing Routines //
271
272
BOOLEAN
273
HyperDbgReadAllRegisters
(
GUEST_REGS
* GuestRegisters,
GUEST_EXTRA_REGISTERS
* ExtraRegisters);
274
275
BOOLEAN
276
HyperDbgReadTargetRegister
(
REGS_ENUM
RegisterId, UINT64 * TargetRegister);
277
278
BOOLEAN
279
HyperDbgWriteTargetRegister
(
REGS_ENUM
RegisterId, UINT64
Value
);
280
281
BOOLEAN
282
HyperDbgRegisterShowAll
();
283
284
BOOLEAN
285
HyperDbgRegisterShowTargetRegister
(
REGS_ENUM
RegisterId);
286
287
BOOLEAN
288
HyperDbgDebugRemoteDeviceUsingComPort
(
const
CHAR
* PortName,
DWORD
Baudrate,
BOOLEAN
PauseAfterConnection);
289
290
BOOLEAN
291
HyperDbgDebugRemoteDeviceUsingNamedPipe
(
const
CHAR
* NamedPipe,
BOOLEAN
PauseAfterConnection);
292
293
BOOLEAN
294
HyperDbgDebugCurrentDeviceUsingComPort
(
const
CHAR
* PortName,
DWORD
Baudrate);
295
296
BOOLEAN
297
HyperDbgDebugCloseRemoteDebugger
();
298
299
BOOLEAN
300
HyperDbgGetLocalApic
(
PLAPIC_PAGE
LocalApic,
PBOOLEAN
IsUsingX2APIC);
301
302
BOOLEAN
303
HyperDbgGetIoApic
(
IO_APIC_ENTRY_PACKETS
* IoApic);
304
305
BOOLEAN
306
HyperDbgGetIdtEntry
(
INTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS
* IdtPacket);
307
308
BOOLEAN
309
HyperDbgPerformSmiOperation
(
SMI_OPERATION_PACKETS
* SmiOperation);
310
311
BOOLEAN
312
HyperDbgEnableTransparentMode
(
UINT32
ProcessId,
CHAR
* ProcessName,
BOOLEAN
IsProcessId);
313
314
BOOLEAN
315
HyperDbgEnableTransparentModeEx
(
UINT32
ProcessId,
CHAR
* ProcessName,
BOOLEAN
IsProcessId,
UINT32
EvadeMask);
316
317
BOOLEAN
318
HyperDbgDisableTransparentMode
();
319
320
BOOLEAN
321
HyperDbgLbrdumpSendRequest
(
HYPERTRACE_LBR_DUMP_PACKETS
* LbrdumpRequest);
322
323
BOOLEAN
324
HyperDbgPerformPtOperation
(
HYPERTRACE_PT_OPERATION_PACKETS
* PtRequest);
325
326
BOOLEAN
327
HyperDbgPtMmapSendRequest
(
HYPERTRACE_PT_MMAP_PACKETS
* MmapRequest);
NumberOfBytes
POOL_TYPE SIZE_T NumberOfBytes
Definition
Hooks.h:88
Tag
POOL_TYPE SIZE_T ULONG Tag
Definition
Hooks.h:89
BOOL
int BOOL
Definition
BasicTypes.h:25
BOOLEAN
UCHAR BOOLEAN
Definition
BasicTypes.h:35
PVOID
void * PVOID
Definition
BasicTypes.h:56
UCHAR
unsigned char UCHAR
Definition
BasicTypes.h:34
PBOOLEAN
BOOLEAN * PBOOLEAN
Definition
BasicTypes.h:36
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
PDEBUGGER_GENERAL_EVENT_DETAIL
struct _DEBUGGER_GENERAL_EVENT_DETAIL * PDEBUGGER_GENERAL_EVENT_DETAIL
VMM_EVENT_TYPE_ENUM
enum _VMM_EVENT_TYPE_ENUM VMM_EVENT_TYPE_ENUM
enum to show type of all HyperDbg events
PDEBUGGER_MODIFY_EVENTS
struct _DEBUGGER_MODIFY_EVENTS * PDEBUGGER_MODIFY_EVENTS
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
HYPERTRACE_PT_OPERATION_PACKETS
struct _HYPERTRACE_PT_OPERATION_PACKETS HYPERTRACE_PT_OPERATION_PACKETS
The structure of HyperTrace PT result packet in HyperDbg.
PLAPIC_PAGE
struct _LAPIC_PAGE * PLAPIC_PAGE
INTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS
struct _INTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS INTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS
The structure of IDT entries result packet in HyperDbg.
PDEBUGGER_SINGLE_CALLSTACK_FRAME
struct _DEBUGGER_SINGLE_CALLSTACK_FRAME * PDEBUGGER_SINGLE_CALLSTACK_FRAME
DEBUGGER_CALLSTACK_DISPLAY_METHOD
enum _DEBUGGER_CALLSTACK_DISPLAY_METHOD DEBUGGER_CALLSTACK_DISPLAY_METHOD
callstack showing method
DEBUGGER_EDIT_MEMORY_TYPE
enum _DEBUGGER_EDIT_MEMORY_TYPE DEBUGGER_EDIT_MEMORY_TYPE
different type of addresses for editing memory
HYPERTRACE_PT_MMAP_PACKETS
struct _HYPERTRACE_PT_MMAP_PACKETS HYPERTRACE_PT_MMAP_PACKETS
Result packet for the HyperTrace PT mmap surface.
IO_APIC_ENTRY_PACKETS
struct _IO_APIC_ENTRY_PACKETS IO_APIC_ENTRY_PACKETS
The structure of I/O APIC result packet in HyperDbg.
HYPERTRACE_LBR_DUMP_PACKETS
struct _HYPERTRACE_LBR_DUMP_PACKETS HYPERTRACE_LBR_DUMP_PACKETS
The structure of HyperTrace LBR dump result packet in HyperDbg.
SMI_OPERATION_PACKETS
struct _SMI_OPERATION_PACKETS SMI_OPERATION_PACKETS
The structure of I/O APIC result packet in HyperDbg.
DEBUGGER_APIC_REQUEST_TYPE
enum _DEBUGGER_APIC_REQUEST_TYPE DEBUGGER_APIC_REQUEST_TYPE
Perform actions related to APIC.
REGS_ENUM
REGS_ENUM
Definition
ScriptEngineCommonDefinitions.h:315
Value
RequestedActionOfThePacket Value(0x1) 00000000
DebuggerGetKernelBase
UINT64 DebuggerGetKernelBase()
Get the base address of the kernel module.
Definition
debugger.cpp:698
CommandEventsShowEvents
VOID CommandEventsShowEvents()
print every active and disabled events
Definition
events.cpp:231
ListeningSerialPauseDebuggerThread
DWORD WINAPI ListeningSerialPauseDebuggerThread(PVOID Param)
Check if the remote debuggee needs to pause the system.
Definition
kernel-listening.cpp:1610
CommandEventsHandleModifiedEvent
VOID CommandEventsHandleModifiedEvent(UINT64 Tag, PDEBUGGER_MODIFY_EVENTS ModifyEventRequest)
Handle events after modification.
Definition
events.cpp:503
CommandPauseRequest
VOID CommandPauseRequest()
request to pause
Definition
pause.cpp:40
_DEBUGGER_EVENT_PARSING_ERROR_CAUSE
_DEBUGGER_EVENT_PARSING_ERROR_CAUSE
Reason for error in parsing commands.
Definition
debugger.h:77
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_OUTPUT_NAME_NOT_FOUND
@ DEBUGGER_EVENT_PARSING_ERROR_CAUSE_OUTPUT_NAME_NOT_FOUND
Definition
debugger.h:82
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_SUCCESSFUL_NO_ERROR
@ DEBUGGER_EVENT_PARSING_ERROR_CAUSE_SUCCESSFUL_NO_ERROR
Definition
debugger.h:78
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_MAXIMUM_INPUT_REACHED
@ DEBUGGER_EVENT_PARSING_ERROR_CAUSE_MAXIMUM_INPUT_REACHED
Definition
debugger.h:81
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_USING_SHORT_CIRCUITING_IN_POST_EVENTS
@ DEBUGGER_EVENT_PARSING_ERROR_CAUSE_USING_SHORT_CIRCUITING_IN_POST_EVENTS
Definition
debugger.h:88
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_NO_INPUT
@ DEBUGGER_EVENT_PARSING_ERROR_CAUSE_NO_INPUT
Definition
debugger.h:80
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_OUTPUT_SOURCE_ALREADY_CLOSED
@ DEBUGGER_EVENT_PARSING_ERROR_CAUSE_OUTPUT_SOURCE_ALREADY_CLOSED
Definition
debugger.h:83
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_SCRIPT_SYNTAX_ERROR
@ DEBUGGER_EVENT_PARSING_ERROR_CAUSE_SCRIPT_SYNTAX_ERROR
Definition
debugger.h:79
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_IMMEDIATE_MESSAGING_IN_EVENT_FORWARDING_MODE
@ DEBUGGER_EVENT_PARSING_ERROR_CAUSE_IMMEDIATE_MESSAGING_IN_EVENT_FORWARDING_MODE
Definition
debugger.h:87
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_ALLOCATION_ERROR
@ DEBUGGER_EVENT_PARSING_ERROR_CAUSE_ALLOCATION_ERROR
Definition
debugger.h:84
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_ATTEMPT_TO_BREAK_ON_VMI_MODE
@ DEBUGGER_EVENT_PARSING_ERROR_CAUSE_ATTEMPT_TO_BREAK_ON_VMI_MODE
Definition
debugger.h:86
DEBUGGER_EVENT_PARSING_ERROR_CAUSE_FORMAT_ERROR
@ DEBUGGER_EVENT_PARSING_ERROR_CAUSE_FORMAT_ERROR
Definition
debugger.h:85
CommandTrackHandleReceivedRetInstructions
VOID CommandTrackHandleReceivedRetInstructions(UINT64 CurrentRip)
Handle received 'ret'.
Definition
track.cpp:282
DetachFromProcess
VOID DetachFromProcess()
perform detach from process
Definition
detach.cpp:39
FreeEventsAndActionsMemory
VOID FreeEventsAndActionsMemory(PDEBUGGER_GENERAL_EVENT_DETAIL Event, PDEBUGGER_GENERAL_ACTION ActionBreakToDebugger, PDEBUGGER_GENERAL_ACTION ActionCustomCode, PDEBUGGER_GENERAL_ACTION ActionScript)
Deallocate buffers relating to events and actions.
Definition
debugger.cpp:1688
CallstackShowFrames
VOID CallstackShowFrames(PDEBUGGER_SINGLE_CALLSTACK_FRAME CallstackFrames, UINT32 FrameCount, DEBUGGER_CALLSTACK_DISPLAY_METHOD DisplayMethod, BOOLEAN Is32Bit)
Show stack frames.
Definition
callstack.cpp:212
HyperDbgReadTargetRegister
BOOLEAN HyperDbgReadTargetRegister(REGS_ENUM RegisterId, UINT64 *TargetRegister)
Read target register.
Definition
r.cpp:268
HyperDbgReadAllRegisters
BOOLEAN HyperDbgReadAllRegisters(GUEST_REGS *GuestRegisters, GUEST_EXTRA_REGISTERS *ExtraRegisters)
Read all registers.
Definition
r.cpp:175
HyperDbgGetIdtEntry
BOOLEAN HyperDbgGetIdtEntry(INTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS *IdtPacket)
Send IDT entry requests.
Definition
idt.cpp:46
LogopenSaveToFile
VOID LogopenSaveToFile(const CHAR *Text)
Append text to the file object.
Definition
logopen.cpp:110
DEBUGGER_EVENT_PARSING_ERROR_CAUSE
enum _DEBUGGER_EVENT_PARSING_ERROR_CAUSE DEBUGGER_EVENT_PARSING_ERROR_CAUSE
Reason for error in parsing commands.
HyperDbgDebugRemoteDeviceUsingComPort
BOOLEAN HyperDbgDebugRemoteDeviceUsingComPort(const CHAR *PortName, DWORD Baudrate, BOOLEAN PauseAfterConnection)
Connect to a remote serial device (Debugger).
Definition
debug.cpp:116
HyperDbgRegisterShowAll
BOOLEAN HyperDbgRegisterShowAll()
handler of r show all registers
Definition
r.cpp:354
HyperDbgDebugRemoteDeviceUsingNamedPipe
BOOLEAN HyperDbgDebugRemoteDeviceUsingNamedPipe(const CHAR *NamedPipe, BOOLEAN PauseAfterConnection)
Connect to a remote named pipe (Debugger).
Definition
debug.cpp:157
HyperDbgEnableTransparentMode
BOOLEAN HyperDbgEnableTransparentMode(UINT32 ProcessId, CHAR *ProcessName, BOOLEAN IsProcessId)
Enable transparent mode.
Definition
hide.cpp:382
ListeningSerialPauseDebuggeeThread
DWORD WINAPI ListeningSerialPauseDebuggeeThread(PVOID Param)
Check if the remote debugger needs to pause the system.
Definition
kernel-listening.cpp:1627
CommandTrackHandleReceivedCallInstructions
VOID CommandTrackHandleReceivedCallInstructions(const CHAR *NameOfFunctionFromSymbols, UINT64 ComputedAbsoluteAddress)
Handle received 'call'.
Definition
track.cpp:235
HyperDbgDebugCurrentDeviceUsingComPort
BOOLEAN HyperDbgDebugCurrentDeviceUsingComPort(const CHAR *PortName, DWORD Baudrate)
Connect to a remote serial device (Debuggee).
Definition
debug.cpp:171
HyperDbgPtMmapSendRequest
BOOLEAN HyperDbgPtMmapSendRequest(HYPERTRACE_PT_MMAP_PACKETS *MmapRequest)
Map the per-CPU PT output buffers into the current process.
Definition
pt.cpp:151
InterpretGeneralEventAndActionsFields
BOOLEAN InterpretGeneralEventAndActionsFields(vector< CommandToken > *CommandTokens, VMM_EVENT_TYPE_ENUM EventType, PDEBUGGER_GENERAL_EVENT_DETAIL *EventDetailsToFill, PUINT32 EventBufferLength, PDEBUGGER_GENERAL_ACTION *ActionDetailsToFillBreakToDebugger, PUINT32 ActionBufferLengthBreakToDebugger, PDEBUGGER_GENERAL_ACTION *ActionDetailsToFillCustomCode, PUINT32 ActionBufferLengthCustomCode, PDEBUGGER_GENERAL_ACTION *ActionDetailsToFillScript, PUINT32 ActionBufferLengthScript, PDEBUGGER_EVENT_PARSING_ERROR_CAUSE ReasonForErrorInParsing)
Interpret general event fields.
Definition
debugger.cpp:1736
IsTagExist
BOOLEAN IsTagExist(UINT64 Tag)
Check whether the tag exists or not, if the tag is DEBUGGER_MODIFY_EVENTS_APPLY_TO_ALL_TAG then if we...
Definition
debugger.cpp:824
HyperDbgDisableTransparentMode
BOOLEAN HyperDbgDisableTransparentMode()
Disable transparent mode.
Definition
unhide.cpp:41
DEBUGGER_SYNCRONIZATION_EVENTS_STATE
struct _DEBUGGER_SYNCRONIZATION_EVENTS_STATE DEBUGGER_SYNCRONIZATION_EVENTS_STATE
In debugger holds the state of events.
GetCommandAttributes
UINT64 GetCommandAttributes(const string &FirstCommand)
Get Command Attributes.
Definition
interpreter.cpp:1255
CommandGRequest
VOID CommandGRequest()
Request to unpause.
Definition
g.cpp:41
DebuggerGetNtoskrnlBase
UINT64 DebuggerGetNtoskrnlBase()
Get ntoskrnl.exe base in the kernel.
Definition
debugger.cpp:657
BreakController
BOOL BreakController(DWORD CtrlType)
handle CTRL+C and CTRL+Break events
Definition
break-control.cpp:34
HyperDbgRegisterShowTargetRegister
BOOLEAN HyperDbgRegisterShowTargetRegister(REGS_ENUM RegisterId)
handler of r show the target register
Definition
r.cpp:424
SendEventToKernel
BOOLEAN SendEventToKernel(PDEBUGGER_GENERAL_EVENT_DETAIL Event, UINT32 EventBufferLength)
Register the event to the kernel.
Definition
debugger.cpp:1367
HyperDbgWriteMemory
BOOLEAN HyperDbgWriteMemory(PVOID DestinationAddress, DEBUGGER_EDIT_MEMORY_TYPE MemoryType, UINT32 ProcessId, PVOID SourceAddress, UINT32 NumberOfBytes)
API function for writing the memory content.
Definition
e.cpp:196
HyperDbgGetLocalApic
BOOLEAN HyperDbgGetLocalApic(PLAPIC_PAGE LocalApic, PBOOLEAN IsUsingX2APIC)
Request to get Local APIC.
Definition
apic.cpp:169
ShowErrorMessage
BOOLEAN ShowErrorMessage(UINT32 Error)
shows the error message
Definition
debugger.cpp:40
IsConnectedToAnyInstanceOfDebuggerOrDebuggee
BOOLEAN IsConnectedToAnyInstanceOfDebuggerOrDebuggee()
Shows whether the debugger is connected to a debugger or debuggee connected to a debugger.
Definition
debugger.cpp:773
CommandApicSendRequest
BOOLEAN CommandApicSendRequest(DEBUGGER_APIC_REQUEST_TYPE ApicType, PVOID ApicBuffer, UINT32 ExpectedRequestSize, PBOOLEAN IsUsingX2APIC)
Send APIC requests.
Definition
apic.cpp:47
PDEBUGGER_SYNCRONIZATION_EVENTS_STATE
struct _DEBUGGER_SYNCRONIZATION_EVENTS_STATE * PDEBUGGER_SYNCRONIZATION_EVENTS_STATE
PDEBUGGER_EVENT_PARSING_ERROR_CAUSE
enum _DEBUGGER_EVENT_PARSING_ERROR_CAUSE * PDEBUGGER_EVENT_PARSING_ERROR_CAUSE
CommandEventsModifyAndQueryEvents
BOOLEAN CommandEventsModifyAndQueryEvents(UINT64 Tag, DEBUGGER_MODIFY_EVENTS_TYPE TypeOfAction)
modify a special event (enable/disable/clear) and send the request directly to the kernel
Definition
events.cpp:658
HyperDbgPerformSmiOperation
BOOLEAN HyperDbgPerformSmiOperation(SMI_OPERATION_PACKETS *SmiOperation)
Request to perform an SMI operation.
Definition
smi.cpp:109
HyperDbgGetIoApic
BOOLEAN HyperDbgGetIoApic(IO_APIC_ENTRY_PACKETS *IoApic)
Request to get I/O APIC.
Definition
ioapic.cpp:38
HyperDbgPerformPtOperation
BOOLEAN HyperDbgPerformPtOperation(HYPERTRACE_PT_OPERATION_PACKETS *PtRequest)
Request to perform an PT operation.
Definition
pt.cpp:134
DebuggerPauseDebuggee
BOOLEAN DebuggerPauseDebuggee()
pauses the debuggee
Definition
debugger.cpp:722
HyperDbgEnableTransparentModeEx
BOOLEAN HyperDbgEnableTransparentModeEx(UINT32 ProcessId, CHAR *ProcessName, BOOLEAN IsProcessId, UINT32 EvadeMask)
Enable transparent mode.
Definition
hide.cpp:235
RegisterActionToEvent
BOOLEAN RegisterActionToEvent(PDEBUGGER_GENERAL_EVENT_DETAIL Event, PDEBUGGER_GENERAL_ACTION ActionBreakToDebugger, UINT32 ActionBreakToDebuggerLength, PDEBUGGER_GENERAL_ACTION ActionCustomCode, UINT32 ActionCustomCodeLength, PDEBUGGER_GENERAL_ACTION ActionScript, UINT32 ActionScriptLength)
Register the action to the event.
Definition
debugger.cpp:1483
CommandTrackHandleReceivedInstructions
VOID CommandTrackHandleReceivedInstructions(UCHAR *BufferToDisassemble, UINT32 BuffLength, BOOLEAN Isx86_64, UINT64 RipAddress)
Handle received 'call' or 'ret'.
Definition
track.cpp:212
HyperDbgLbrdumpSendRequest
BOOLEAN HyperDbgLbrdumpSendRequest(HYPERTRACE_LBR_DUMP_PACKETS *LbrdumpRequest)
Send LBR dump requests.
Definition
lbrdump.cpp:29
HyperDbgDebugCloseRemoteDebugger
BOOLEAN HyperDbgDebugCloseRemoteDebugger()
Connect to a remote serial device (Debuggee).
Definition
debug.cpp:211
CommandBpRequest
BOOLEAN CommandBpRequest(UINT64 Address, UINT32 Pid, UINT32 Tid, UINT32 CoreNumer)
request breakpoint
Definition
bp.cpp:119
CallstackReturnAddressToCallingAddress
BOOLEAN CallstackReturnAddressToCallingAddress(UCHAR *ReturnAddress, PUINT32 IndexOfCallFromReturnAddress)
Walkthrough the stack.
Definition
callstack.cpp:30
GetNewDebuggerEventTag
UINT64 GetNewDebuggerEventTag()
Get the New Debugger Event Tag object and increase the global variable for tag.
Definition
debugger.cpp:1676
CommandFlushRequestFlush
VOID CommandFlushRequestFlush()
flush command handler
Definition
flush.cpp:40
HyperDbgWriteTargetRegister
BOOLEAN HyperDbgWriteTargetRegister(REGS_ENUM RegisterId, UINT64 Value)
Write target register.
Definition
r.cpp:322
CommandEventsClearAllEventsAndResetTags
VOID CommandEventsClearAllEventsAndResetTags()
Clears all the events and resets the tag.
Definition
events.cpp:474
_DEBUGGER_SYNCRONIZATION_EVENTS_STATE
In debugger holds the state of events.
Definition
debugger.h:118
_DEBUGGER_SYNCRONIZATION_EVENTS_STATE::RequestSize
UINT32 RequestSize
Definition
debugger.h:122
_DEBUGGER_SYNCRONIZATION_EVENTS_STATE::EventHandle
HANDLE EventHandle
Definition
debugger.h:119
_DEBUGGER_SYNCRONIZATION_EVENTS_STATE::RequestData
PVOID RequestData
Definition
debugger.h:121
_DEBUGGER_SYNCRONIZATION_EVENTS_STATE::IsOnWaitingState
BOOLEAN IsOnWaitingState
Definition
debugger.h:120
GUEST_EXTRA_REGISTERS
struct for extra registers
Definition
BasicTypes.h:208
GUEST_REGS
Definition
BasicTypes.h:136
hyperdbg
libhyperdbg
header
debugger.h
Generated by
1.17.0