HyperDbg Debugger
|
The hyperdbg command interpreter and driver connector. More...
Go to the source code of this file.
Classes | |
struct | _COMMAND_DETAIL |
Details of each command. More... | |
Typedefs | |
typedef VOID(* | CommandFuncType) (vector< string > SplitCommand, string Command) |
Command's function type. | |
typedef VOID(* | CommandHelpFuncType) () |
Command's help function type. | |
typedef struct _COMMAND_DETAIL | COMMAND_DETAIL |
Details of each command. | |
typedef struct _COMMAND_DETAIL * | PCOMMAND_DETAIL |
typedef std::map< std::string, COMMAND_DETAIL > | CommandType |
Type saving commands and mapping to command string. | |
Functions | |
VOID | CommandSettingsLoadDefaultValuesFromConfigFile () |
Loads default settings values from config file. | |
VOID | CommandSettingsSetValueFromConfigFile (std::string OptionName, std::string OptionValue) |
Sets the setting values from config file. | |
BOOLEAN | CommandSettingsGetValueFromConfigFile (std::string OptionName, std::string &OptionValue) |
Gets the setting values from config file. | |
VOID | CpuReadVendorString (CHAR *Result) |
Reads the CPU vendor string. | |
int | ReadCpuDetails () |
Print out supported instruction set extensions. | |
VOID | ShowMessages (const char *Fmt,...) |
Show messages. | |
string | SeparateTo64BitValue (UINT64 Value) |
add ` between 64 bit values and convert them to string | |
void | ShowMemoryCommandDB (unsigned char *OutputBuffer, UINT32 Size, UINT64 Address, DEBUGGER_READ_MEMORY_TYPE MemoryType, UINT64 Length) |
Show memory in bytes (DB) | |
void | ShowMemoryCommandDD (unsigned char *OutputBuffer, UINT32 Size, UINT64 Address, DEBUGGER_READ_MEMORY_TYPE MemoryType, UINT64 Length) |
Show memory in dword format (DD) | |
void | ShowMemoryCommandDC (unsigned char *OutputBuffer, UINT32 Size, UINT64 Address, DEBUGGER_READ_MEMORY_TYPE MemoryType, UINT64 Length) |
Show memory in dword format (DC) | |
void | ShowMemoryCommandDQ (unsigned char *OutputBuffer, UINT32 Size, UINT64 Address, DEBUGGER_READ_MEMORY_TYPE MemoryType, UINT64 Length) |
Show memory in qword format (DQ) | |
VOID | CommandPteShowResults (UINT64 TargetVa, PDEBUGGER_READ_PAGE_TABLE_ENTRIES_DETAILS PteRead) |
show results of !pte command | |
DEBUGGER_CONDITIONAL_JUMP_STATUS | HyperDbgIsConditionalJumpTaken (unsigned char *BufferToDisassemble, UINT64 BuffLength, RFLAGS Rflags, BOOLEAN Isx86_64) |
Check whether the jump is taken or not taken (in debugger) | |
int | HyperDbgDisassembler64 (unsigned char *BufferToDisassemble, UINT64 BaseAddress, UINT64 Size, UINT32 MaximumInstrDecoded, BOOLEAN ShowBranchIsTakenOrNot, PRFLAGS Rflags) |
Disassemble x64 assemblies. | |
int | HyperDbgDisassembler32 (unsigned char *BufferToDisassemble, UINT64 BaseAddress, UINT64 Size, UINT32 MaximumInstrDecoded, BOOLEAN ShowBranchIsTakenOrNot, PRFLAGS Rflags) |
Disassemble 32 bit assemblies. | |
UINT32 | HyperDbgLengthDisassemblerEngine (unsigned char *BufferToDisassemble, UINT64 BuffLength, BOOLEAN Isx86_64) |
Length Disassembler engine based on Zydis. | |
BOOLEAN | HyperDbgCheckWhetherTheCurrentInstructionIsCall (unsigned char *BufferToDisassemble, UINT64 BuffLength, BOOLEAN Isx86_64, PUINT32 CallLength) |
Check whether the current instruction is a 'call' or not. | |
BOOLEAN | HyperDbgCheckWhetherTheCurrentInstructionIsCallOrRet (unsigned char *BufferToDisassemble, UINT64 CurrentRip, UINT32 BuffLength, BOOLEAN Isx86_64, PBOOLEAN IsRet) |
Check whether the current instruction is a 'call' or 'ret' or not. | |
BOOLEAN | HyperDbgCheckWhetherTheCurrentInstructionIsRet (unsigned char *BufferToDisassemble, UINT64 BuffLength, BOOLEAN Isx86_64) |
Check whether the current instruction is a 'ret' or not. | |
VOID | HyperDbgShowMemoryOrDisassemble (DEBUGGER_SHOW_MEMORY_STYLE Style, UINT64 Address, DEBUGGER_READ_MEMORY_TYPE MemoryType, DEBUGGER_READ_READING_TYPE ReadingType, UINT32 Pid, UINT32 Size, PDEBUGGER_DT_COMMAND_OPTIONS DtDetails) |
Show memory or disassembler. | |
BOOLEAN | HyperDbgReadMemory (UINT64 TargetAddress, DEBUGGER_READ_MEMORY_TYPE MemoryType, DEBUGGER_READ_READING_TYPE ReadingType, UINT32 Pid, UINT32 Size, BOOLEAN GetAddressMode, DEBUGGER_READ_MEMORY_ADDRESS_MODE *AddressMode, BYTE *TargetBufferToStore, UINT32 *ReturnLength) |
Read memory and disassembler. | |
VOID | InitializeCommandsDictionary () |
Initialize commands and attributes. | |
VOID | InitializeDebugger () |
Initialize the debugger and adjust commands for the first run. | |
BOOLEAN | CheckMultilineCommand (CHAR *CurrentCommand, BOOLEAN Reset) |
check for multi-line commands | |
BOOLEAN | ContinuePreviousCommand () |
Some of commands like stepping commands (i, p, t) and etc. need to be repeated when the user press enter, this function shows whether we should continue the previous command or not. | |
VOID | CommandDumpSaveIntoFile (PVOID Buffer, UINT32 Length) |
Saves the received buffers into the files. | |
VOID | CommandTest (vector< string > SplitCommand, string Command) |
test command handler | |
VOID | CommandClearScreen (vector< string > SplitCommand, string Command) |
.cls command handler | |
VOID | CommandReadMemoryAndDisassembler (vector< string > SplitCommand, string Command) |
u* d* !u* !d* commands handler | |
VOID | CommandConnect (vector< string > SplitCommand, string Command) |
.connect command handler | |
VOID | CommandLoad (vector< string > SplitCommand, string Command) |
load command handler | |
VOID | CommandUnload (vector< string > SplitCommand, string Command) |
unload command handler | |
VOID | CommandScript (vector< string > SplitCommand, string Command) |
.script command handler | |
VOID | CommandCpu (vector< string > SplitCommand, string Command) |
cpu command handler | |
VOID | CommandExit (vector< string > SplitCommand, string Command) |
exit command handler | |
VOID | CommandDisconnect (vector< string > SplitCommand, string Command) |
.disconnect command handler | |
VOID | CommandFormats (vector< string > SplitCommand, string Command) |
handler of .formats command | |
VOID | CommandRdmsr (vector< string > SplitCommand, string Command) |
rdmsr command handler | |
VOID | CommandWrmsr (vector< string > SplitCommand, string Command) |
wrmsr command handler | |
VOID | CommandPte (vector< string > SplitCommand, string Command) |
!pte command handler | |
VOID | CommandMonitor (vector< string > SplitCommand, string Command) |
!monitor command handler | |
VOID | CommandSyscallAndSysret (vector< string > SplitCommand, string Command) |
!syscall, !syscall2 and !sysret, !sysret2 commands handler | |
VOID | CommandEptHook (vector< string > SplitCommand, string Command) |
!epthook command handler | |
VOID | CommandEptHook2 (vector< string > SplitCommand, string Command) |
!epthook2 command handler | |
VOID | CommandCpuid (vector< string > SplitCommand, string Command) |
!cpuid command handler | |
VOID | CommandMsrread (vector< string > SplitCommand, string Command) |
!msrread command handler | |
VOID | CommandMsrwrite (vector< string > SplitCommand, string Command) |
!msrwrite command handler | |
VOID | CommandTsc (vector< string > SplitCommand, string Command) |
handler of !tsc command | |
VOID | CommandPmc (vector< string > SplitCommand, string Command) |
!pmc command handler | |
VOID | CommandException (vector< string > SplitCommand, string Command) |
!exception command handler | |
VOID | CommandCrwrite (vector< string > SplitCommand, string Command) |
!crwrite command handler | |
VOID | CommandDr (vector< string > SplitCommand, string Command) |
!dr command handler | |
VOID | CommandInterrupt (vector< string > SplitCommand, string Command) |
!interrupt command handler | |
VOID | CommandIoin (vector< string > SplitCommand, string Command) |
!ioin command handler | |
VOID | CommandIoout (vector< string > SplitCommand, string Command) |
!ioout command handler | |
VOID | CommandVmcall (vector< string > SplitCommand, string Command) |
!vmcall command handler | |
VOID | CommandMode (vector< string > SplitCommand, string Command) |
!mode command handler | |
VOID | CommandTrace (vector< string > SplitCommand, string Command) |
!trace command handler | |
VOID | CommandHide (vector< string > SplitCommand, string Command) |
!hide command handler | |
VOID | CommandUnhide (vector< string > SplitCommand, string Command) |
!unhide command handler | |
VOID | CommandLogopen (vector< string > SplitCommand, string Command) |
.logopen command handler | |
VOID | CommandLogclose (vector< string > SplitCommand, string Command) |
.logclose command handler | |
VOID | CommandVa2pa (vector< string > SplitCommand, string Command) |
!va2pa command handler | |
VOID | CommandPa2va (vector< string > SplitCommand, string Command) |
!pa2va command handler | |
VOID | CommandEvents (vector< string > SplitCommand, string Command) |
events command handler | |
VOID | CommandG (vector< string > SplitCommand, string Command) |
handler of g command | |
VOID | CommandLm (vector< string > SplitCommand, string Command) |
handle lm command | |
VOID | CommandSleep (vector< string > SplitCommand, string Command) |
sleep command help | |
VOID | CommandEditMemory (vector< string > SplitCommand, string Command) |
!e* and e* commands handler | |
VOID | CommandSearchMemory (vector< string > SplitCommand, string Command) |
!s* s* commands handler | |
VOID | CommandMeasure (vector< string > SplitCommand, string Command) |
!measure command handler | |
VOID | CommandSettings (vector< string > SplitCommand, string Command) |
settings command handler | |
VOID | CommandFlush (vector< string > SplitCommand, string Command) |
flush command handler | |
VOID | CommandPause (vector< string > SplitCommand, string Command) |
pause command handler | |
VOID | CommandListen (vector< string > SplitCommand, string Command) |
listen command handler | |
VOID | CommandStatus (vector< string > SplitCommand, string Command) |
.status and status command handler | |
VOID | CommandAttach (vector< string > SplitCommand, string Command) |
.attach command handler | |
VOID | CommandDetach (vector< string > SplitCommand, string Command) |
.detach command handler | |
VOID | CommandStart (vector< string > SplitCommand, string Command) |
.start command handler | |
VOID | CommandRestart (vector< string > SplitCommand, string Command) |
.restart command handler | |
VOID | CommandSwitch (vector< string > SplitCommand, string Command) |
.switch command handler | |
VOID | CommandKill (vector< string > SplitCommand, string Command) |
.kill command handler | |
VOID | CommandT (vector< string > SplitCommand, string Command) |
handler of t command | |
VOID | CommandI (vector< string > SplitCommand, string Command) |
handler of i command | |
VOID | CommandPrint (vector< string > SplitCommand, string Command) |
handler of print command | |
VOID | CommandOutput (vector< string > SplitCommand, string Command) |
output command handler | |
VOID | CommandDebug (vector< string > SplitCommand, string Command) |
.debug command handler | |
VOID | CommandP (vector< string > SplitCommand, string Command) |
handler of p command | |
VOID | CommandCore (vector< string > SplitCommand, string Command) |
~ command handler | |
VOID | CommandProcess (vector< string > SplitCommand, string Command) |
.process command handler | |
VOID | CommandThread (vector< string > SplitCommand, string Command) |
.thread command handler | |
VOID | CommandEval (vector< string > SplitCommand, string Command) |
handler of ? command | |
VOID | CommandR (vector< string > SplitCommand, string Command) |
VOID | CommandBp (vector< string > SplitCommand, string Command) |
bp command handler | |
VOID | CommandBl (vector< string > SplitCommand, string Command) |
handler of the bl command | |
VOID | CommandBe (vector< string > SplitCommand, string Command) |
handler of be command | |
VOID | CommandBd (vector< string > SplitCommand, string Command) |
handler of bd command | |
VOID | CommandBc (vector< string > SplitCommand, string Command) |
handler of bc command | |
VOID | CommandSympath (vector< string > SplitCommand, string Command) |
.sympath command handler | |
VOID | CommandSym (vector< string > SplitCommand, string Command) |
.sym command handler | |
VOID | CommandX (vector< string > SplitCommand, string Command) |
x command handler | |
VOID | CommandPrealloc (vector< string > SplitCommand, string Command) |
prealloc command handler | |
VOID | CommandPreactivate (vector< string > SplitCommand, string Command) |
preactivate command handler | |
VOID | CommandDtAndStruct (vector< string > SplitCommand, string Command) |
dt and struct command handler | |
VOID | CommandK (vector< string > SplitCommand, string Command) |
k command handler | |
VOID | CommandPe (vector< string > SplitCommand, string Command) |
.pe command handler | |
VOID | CommandRev (vector< string > SplitCommand, string Command) |
!rev command handler | |
VOID | CommandTrack (vector< string > SplitCommand, string Command) |
handler of !track command | |
VOID | CommandPagein (vector< string > SplitCommand, string Command) |
.pagein command handler | |
VOID | CommandDump (vector< string > SplitCommand, string Command) |
.dump command handler | |
VOID | CommandGu (vector< string > SplitCommand, string Command) |
handler of gu command | |
VOID | CommandAssemble (vector< string > SplitCommand, string Command) |
a and !a commands handler | |
VOID | CommandHwClk (vector< string > SplitCommand, string Command) |
!hw_clk command handler | |
Variables | |
HANDLE | g_DeviceHandle |
Holds the global handle of device which is used to send the request to the kernel by IOCTL, this handle is not used for IRP Pending of message tracing this handle is used in KD VMM. | |
The hyperdbg command interpreter and driver connector.
#define DEBUGGER_COMMAND_A_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_ATTACH_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL |
Absolute local commands.
#define DEBUGGER_COMMAND_ATTRIBUTE_EVENT 0x1 | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
Different attributes of commands.
#define DEBUGGER_COMMAND_ATTRIBUTE_HWDBG 0x40 |
#define DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE 0x8 |
#define DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE 0x2 |
#define DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_REMOTE_CONNECTION 0x4 |
#define DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER 0x10 |
#define DEBUGGER_COMMAND_ATTRIBUTE_WONT_STOP_DEBUGGER_AGAIN 0x20 |
#define DEBUGGER_COMMAND_BC_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_BD_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_BE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_BL_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_BP_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_CLEAR_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL |
Command's attributes.
#define DEBUGGER_COMMAND_CONNECT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL |
#define DEBUGGER_COMMAND_CORE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_CPU_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_CPUID_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_CRWRITE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_D_AND_U_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER |
#define DEBUGGER_COMMAND_DEBUG_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_DETACH_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_DISCONNECT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL |
#define DEBUGGER_COMMAND_DOT_STATUS_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL |
#define DEBUGGER_COMMAND_DR_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_DT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER |
#define DEBUGGER_COMMAND_DUMP_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_E_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_EPTHOOK2_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_EPTHOOK_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_EVAL_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER |
#define DEBUGGER_COMMAND_EVENTS_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_EXCEPTION_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_EXIT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL |
#define DEBUGGER_COMMAND_FLUSH_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_FORMATS_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER |
#define DEBUGGER_COMMAND_G_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER |
#define DEBUGGER_COMMAND_GU_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER |
#define DEBUGGER_COMMAND_HELP_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL |
#define DEBUGGER_COMMAND_HIDE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_HWDBG_HW_CLK_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_HWDBG |
#define DEBUGGER_COMMAND_I_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER |
#define DEBUGGER_COMMAND_INTERRUPT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_IOIN_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_IOOUT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_K_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_KILL_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_LISTEN_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL |
#define DEBUGGER_COMMAND_LM_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_LOAD_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_LOGCLOSE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL |
#define DEBUGGER_COMMAND_LOGOPEN_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_MEASURE_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_MODE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_MONITOR_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_MSRREAD_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_MSRWRITE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_OUTPUT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_P_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER |
#define DEBUGGER_COMMAND_PA2VA_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_PAGEIN_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_PAUSE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL |
#define DEBUGGER_COMMAND_PE_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_PMC_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_PREACTIVATE_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_PREALLOC_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_PRINT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER |
#define DEBUGGER_COMMAND_PROCESS_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_PTE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_R_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER |
#define DEBUGGER_COMMAND_RDMSR_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_RESTART_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_WONT_STOP_DEBUGGER_AGAIN |
#define DEBUGGER_COMMAND_REV_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_S_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_SCRIPT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_SETTINGS_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_SLEEP_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL |
#define DEBUGGER_COMMAND_START_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_WONT_STOP_DEBUGGER_AGAIN |
#define DEBUGGER_COMMAND_STATUS_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_STRUCT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_SWITCH_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_SYM_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_SYMPATH_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
#define DEBUGGER_COMMAND_SYSCALL_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_SYSRET_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_T_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER |
#define DEBUGGER_COMMAND_TEST_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_THREAD_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_TRACE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_TRACK_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_TSC_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_UNHIDE_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_UNLOAD_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_VA2PA_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE |
#define DEBUGGER_COMMAND_VMCALL_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT |
#define DEBUGGER_COMMAND_WRMSR_ATTRIBUTES NULL |
#define DEBUGGER_COMMAND_X_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_CASE_SENSITIVE |
typedef struct _COMMAND_DETAIL COMMAND_DETAIL |
Details of each command.
typedef VOID(* CommandFuncType) (vector< string > SplitCommand, string Command) |
Command's function type.
typedef VOID(* CommandHelpFuncType) () |
Command's help function type.
typedef std::map<std::string, COMMAND_DETAIL> CommandType |
Type saving commands and mapping to command string.
typedef struct _COMMAND_DETAIL * PCOMMAND_DETAIL |
check for multi-line commands
CurrentCommand | |
Reset |
VOID CommandAssemble | ( | vector< string > | SplitCommand, |
string | Command ) |
a and !a commands handler
SplitCommand | |
Command |
VOID CommandAttach | ( | vector< string > | SplitCommand, |
string | Command ) |
.attach command handler
SplitCommand | |
Command |
VOID CommandBc | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of bc command
SplitCommand | |
Command |
VOID CommandBd | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of bd command
SplitCommand | |
Command |
VOID CommandBe | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of be command
SplitCommand | |
Command |
VOID CommandBl | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of the bl command
SplitCommand | |
Command |
VOID CommandBp | ( | vector< string > | SplitCommand, |
string | Command ) |
bp command handler
SplitCommand | |
Command |
VOID CommandClearScreen | ( | vector< string > | SplitCommand, |
string | Command ) |
.cls command handler
SplitCommand | |
Command |
VOID CommandConnect | ( | vector< string > | SplitCommand, |
string | Command ) |
.connect command handler
SplitCommand | |
Command |
VOID CommandCore | ( | vector< string > | SplitCommand, |
string | Command ) |
~ command handler
SplitCommand | |
Command |
VOID CommandCpu | ( | vector< string > | SplitCommand, |
string | Command ) |
cpu command handler
SplitCommand | |
Command |
VOID CommandCpuid | ( | vector< string > | SplitCommand, |
string | Command ) |
!cpuid command handler
SplitCommand | |
Command |
VOID CommandCrwrite | ( | vector< string > | SplitCommand, |
string | Command ) |
!crwrite command handler
SplitCommand | |
Command |
VOID CommandDebug | ( | vector< string > | SplitCommand, |
string | Command ) |
.debug command handler
SplitCommand | |
Command |
VOID CommandDetach | ( | vector< string > | SplitCommand, |
string | Command ) |
.detach command handler
SplitCommand | |
Command |
VOID CommandDisconnect | ( | vector< string > | SplitCommand, |
string | Command ) |
.disconnect command handler
SplitCommand | |
Command |
VOID CommandDr | ( | vector< string > | SplitCommand, |
string | Command ) |
!dr command handler
SplitCommand | |
Command |
VOID CommandDtAndStruct | ( | vector< string > | SplitCommand, |
string | Command ) |
dt and struct command handler
SplitCommand | |
Command |
VOID CommandDump | ( | vector< string > | SplitCommand, |
string | Command ) |
.dump command handler
SplitCommand | |
Command |
Saves the received buffers into the files.
Buffer | |
Length |
VOID CommandEditMemory | ( | vector< string > | SplitCommand, |
string | Command ) |
!e* and e* commands handler
SplitCommand | |
Command |
VOID CommandEptHook | ( | vector< string > | SplitCommand, |
string | Command ) |
!epthook command handler
SplitCommand | |
Command |
VOID CommandEptHook2 | ( | vector< string > | SplitCommand, |
string | Command ) |
!epthook2 command handler
SplitCommand | |
Command |
VOID CommandEval | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of ? command
SplitCommand | |
Command |
VOID CommandEvents | ( | vector< string > | SplitCommand, |
string | Command ) |
events command handler
SplitCommand | |
Command |
VOID CommandException | ( | vector< string > | SplitCommand, |
string | Command ) |
!exception command handler
SplitCommand | |
Command |
VOID CommandExit | ( | vector< string > | SplitCommand, |
string | Command ) |
exit command handler
SplitCommand | |
Command |
VOID CommandFlush | ( | vector< string > | SplitCommand, |
string | Command ) |
flush command handler
SplitCommand | |
Command |
VOID CommandFormats | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of .formats command
SplitCommand | |
Command |
VOID CommandG | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of g command
SplitCommand | |
Command |
VOID CommandGu | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of gu command
SplitCommand | |
Command |
VOID CommandHide | ( | vector< string > | SplitCommand, |
string | Command ) |
!hide command handler
SplitCommand | |
Command |
VOID CommandHwClk | ( | vector< string > | SplitCommand, |
string | Command ) |
!hw_clk command handler
SplitCommand | |
Command |
VOID CommandI | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of i command
SplitCommand | |
Command |
VOID CommandInterrupt | ( | vector< string > | SplitCommand, |
string | Command ) |
!interrupt command handler
SplitCommand | |
Command |
VOID CommandIoin | ( | vector< string > | SplitCommand, |
string | Command ) |
!ioin command handler
SplitCommand | |
Command |
VOID CommandIoout | ( | vector< string > | SplitCommand, |
string | Command ) |
!ioout command handler
SplitCommand | |
Command |
VOID CommandK | ( | vector< string > | SplitCommand, |
string | Command ) |
k command handler
SplitCommand | |
Command |
VOID CommandKill | ( | vector< string > | SplitCommand, |
string | Command ) |
.kill command handler
SplitCommand | |
Command |
VOID CommandListen | ( | vector< string > | SplitCommand, |
string | Command ) |
listen command handler
SplitCommand | |
Command |
VOID CommandLm | ( | vector< string > | SplitCommand, |
string | Command ) |
handle lm command
SplitCommand | |
Command |
VOID CommandLoad | ( | vector< string > | SplitCommand, |
string | Command ) |
load command handler
SplitCommand | |
Command |
VOID CommandLogclose | ( | vector< string > | SplitCommand, |
string | Command ) |
.logclose command handler
SplitCommand | |
Command |
VOID CommandLogopen | ( | vector< string > | SplitCommand, |
string | Command ) |
.logopen command handler
SplitCommand | |
Command |
VOID CommandMeasure | ( | vector< string > | SplitCommand, |
string | Command ) |
!measure command handler
SplitCommand | |
Command |
VOID CommandMode | ( | vector< string > | SplitCommand, |
string | Command ) |
!mode command handler
SplitCommand | |
Command |
VOID CommandMonitor | ( | vector< string > | SplitCommand, |
string | Command ) |
!monitor command handler
SplitCommand | |
Command |
VOID CommandMsrread | ( | vector< string > | SplitCommand, |
string | Command ) |
!msrread command handler
SplitCommand | |
Command |
VOID CommandMsrwrite | ( | vector< string > | SplitCommand, |
string | Command ) |
!msrwrite command handler
SplitCommand | |
Command |
VOID CommandOutput | ( | vector< string > | SplitCommand, |
string | Command ) |
output command handler
SplitCommand | |
Command |
VOID CommandP | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of p command
SplitCommand | |
Command |
VOID CommandPa2va | ( | vector< string > | SplitCommand, |
string | Command ) |
!pa2va command handler
SplitCommand | |
Command |
VOID CommandPagein | ( | vector< string > | SplitCommand, |
string | Command ) |
.pagein command handler
SplitCommand | |
Command |
VOID CommandPause | ( | vector< string > | SplitCommand, |
string | Command ) |
pause command handler
SplitCommand | |
Command |
VOID CommandPe | ( | vector< string > | SplitCommand, |
string | Command ) |
.pe command handler
SplitCommand | |
Command |
VOID CommandPmc | ( | vector< string > | SplitCommand, |
string | Command ) |
!pmc command handler
SplitCommand | |
Command |
VOID CommandPreactivate | ( | vector< string > | SplitCommand, |
string | Command ) |
preactivate command handler
SplitCommand | |
Command |
VOID CommandPrealloc | ( | vector< string > | SplitCommand, |
string | Command ) |
prealloc command handler
SplitCommand | |
Command |
VOID CommandPrint | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of print command
SplitCommand | |
Command |
VOID CommandProcess | ( | vector< string > | SplitCommand, |
string | Command ) |
.process command handler
SplitCommand | |
Command |
VOID CommandPte | ( | vector< string > | SplitCommand, |
string | Command ) |
!pte command handler
SplitCommand | |
Command |
VOID CommandPteShowResults | ( | UINT64 | TargetVa, |
PDEBUGGER_READ_PAGE_TABLE_ENTRIES_DETAILS | PteRead ) |
show results of !pte command
TargetVa | |
PteRead |
VOID CommandR | ( | vector< string > | SplitCommand, |
string | Command ) |
VOID CommandRdmsr | ( | vector< string > | SplitCommand, |
string | Command ) |
rdmsr command handler
SplitCommand | |
Command |
VOID CommandReadMemoryAndDisassembler | ( | vector< string > | SplitCommand, |
string | Command ) |
u* d* !u* !d* commands handler
SplitCommand | |
Command |
VOID CommandRestart | ( | vector< string > | SplitCommand, |
string | Command ) |
.restart command handler
SplitCommand | |
Command |
VOID CommandRev | ( | vector< string > | SplitCommand, |
string | Command ) |
!rev command handler
SplitCommand | |
Command |
VOID CommandScript | ( | vector< string > | SplitCommand, |
string | Command ) |
.script command handler
SplitCommand | |
Command |
VOID CommandSearchMemory | ( | vector< string > | SplitCommand, |
string | Command ) |
!s* s* commands handler
SplitCommand | |
Command |
VOID CommandSettings | ( | vector< string > | SplitCommand, |
string | Command ) |
settings command handler
SplitCommand | |
Command |
BOOLEAN CommandSettingsGetValueFromConfigFile | ( | std::string | OptionName, |
std::string & | OptionValue ) |
Gets the setting values from config file.
OptionName | |
OptionValue |
VOID CommandSettingsLoadDefaultValuesFromConfigFile | ( | ) |
Loads default settings values from config file.
VOID CommandSettingsSetValueFromConfigFile | ( | std::string | OptionName, |
std::string | OptionValue ) |
Sets the setting values from config file.
OptionName | |
OptionValue |
VOID CommandSleep | ( | vector< string > | SplitCommand, |
string | Command ) |
sleep command help
SplitCommand | |
Command |
VOID CommandStart | ( | vector< string > | SplitCommand, |
string | Command ) |
.start command handler
SplitCommand | |
Command |
VOID CommandStatus | ( | vector< string > | SplitCommand, |
string | Command ) |
.status and status command handler
SplitCommand | |
Command |
VOID CommandSwitch | ( | vector< string > | SplitCommand, |
string | Command ) |
.switch command handler
SplitCommand | |
Command |
VOID CommandSym | ( | vector< string > | SplitCommand, |
string | Command ) |
.sym command handler
SplitCommand | |
Command |
VOID CommandSympath | ( | vector< string > | SplitCommand, |
string | Command ) |
.sympath command handler
SplitCommand | |
Command |
VOID CommandSyscallAndSysret | ( | vector< string > | SplitCommand, |
string | Command ) |
!syscall, !syscall2 and !sysret, !sysret2 commands handler
SplitCommand | |
Command |
VOID CommandT | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of t command
SplitCommand | |
Command |
VOID CommandTest | ( | vector< string > | SplitCommand, |
string | Command ) |
test command handler
SplitCommand | |
Command |
VOID CommandThread | ( | vector< string > | SplitCommand, |
string | Command ) |
.thread command handler
SplitCommand | |
Command |
VOID CommandTrace | ( | vector< string > | SplitCommand, |
string | Command ) |
!trace command handler
SplitCommand | |
Command |
VOID CommandTrack | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of !track command
SplitCommand | |
Command |
VOID CommandTsc | ( | vector< string > | SplitCommand, |
string | Command ) |
handler of !tsc command
SplitCommand | |
Command |
VOID CommandUnhide | ( | vector< string > | SplitCommand, |
string | Command ) |
!unhide command handler
SplitCommand | |
Command |
VOID CommandUnload | ( | vector< string > | SplitCommand, |
string | Command ) |
unload command handler
SplitCommand | |
Command |
VOID CommandVa2pa | ( | vector< string > | SplitCommand, |
string | Command ) |
!va2pa command handler
SplitCommand | |
Command |
VOID CommandVmcall | ( | vector< string > | SplitCommand, |
string | Command ) |
!vmcall command handler
SplitCommand | |
Command |
VOID CommandWrmsr | ( | vector< string > | SplitCommand, |
string | Command ) |
wrmsr command handler
SplitCommand | |
Command |
VOID CommandX | ( | vector< string > | SplitCommand, |
string | Command ) |
x command handler
SplitCommand | |
Command |
BOOLEAN ContinuePreviousCommand | ( | ) |
Some of commands like stepping commands (i, p, t) and etc. need to be repeated when the user press enter, this function shows whether we should continue the previous command or not.
Reads the CPU vendor string.
BOOLEAN HyperDbgCheckWhetherTheCurrentInstructionIsCall | ( | unsigned char * | BufferToDisassemble, |
UINT64 | BuffLength, | ||
BOOLEAN | Isx86_64, | ||
PUINT32 | CallLength ) |
Check whether the current instruction is a 'call' or not.
BufferToDisassemble | Current Bytes of assembly |
BuffLength | Length of buffer |
Isx86_64 | Whether it's an x86 or x64 |
CallLength | Length of call (if return value is TRUE) |
BOOLEAN HyperDbgCheckWhetherTheCurrentInstructionIsCallOrRet | ( | unsigned char * | BufferToDisassemble, |
UINT64 | CurrentRip, | ||
UINT32 | BuffLength, | ||
BOOLEAN | Isx86_64, | ||
PBOOLEAN | IsRet ) |
Check whether the current instruction is a 'call' or 'ret' or not.
BufferToDisassemble | Current Bytes of assembly |
CurrentRip | Address of current RIP |
BuffLength | Length of buffer |
Isx86_64 | Whether it's an x86 or x64 |
IsRet | Whether it's a 'ret' or not |
BOOLEAN HyperDbgCheckWhetherTheCurrentInstructionIsRet | ( | unsigned char * | BufferToDisassemble, |
UINT64 | BuffLength, | ||
BOOLEAN | Isx86_64 ) |
Check whether the current instruction is a 'ret' or not.
BufferToDisassemble | Current Bytes of assembly |
BuffLength | Length of buffer |
Isx86_64 | Whether it's an x86 or x64 |
RetLength | Length of ret (if return value is TRUE) |
int HyperDbgDisassembler32 | ( | unsigned char * | BufferToDisassemble, |
UINT64 | BaseAddress, | ||
UINT64 | Size, | ||
UINT32 | MaximumInstrDecoded, | ||
BOOLEAN | ShowBranchIsTakenOrNot, | ||
PRFLAGS | Rflags ) |
Disassemble 32 bit assemblies.
BufferToDisassemble | buffer to disassemble |
BaseAddress | the base address of assembly |
Size | size of buffer |
MaximumInstrDecoded | maximum instructions to decode, 0 means all possible |
ShowBranchIsTakenOrNot | on conditional jumps shows whether jumps is taken or not |
Rflags | in the case ShowBranchIsTakenOrNot is true, we use this variable to show the result of jump |
int HyperDbgDisassembler64 | ( | unsigned char * | BufferToDisassemble, |
UINT64 | BaseAddress, | ||
UINT64 | Size, | ||
UINT32 | MaximumInstrDecoded, | ||
BOOLEAN | ShowBranchIsTakenOrNot, | ||
PRFLAGS | Rflags ) |
Disassemble x64 assemblies.
BufferToDisassemble | buffer to disassemble |
BaseAddress | the base address of assembly |
Size | size of buffer |
MaximumInstrDecoded | maximum instructions to decode, 0 means all possible |
ShowBranchIsTakenOrNot | on conditional jumps shows whether jumps is taken or not |
Rflags | in the case ShowBranchIsTakenOrNot is true, we use this variable to show the result of jump |
DEBUGGER_CONDITIONAL_JUMP_STATUS HyperDbgIsConditionalJumpTaken | ( | unsigned char * | BufferToDisassemble, |
UINT64 | BuffLength, | ||
RFLAGS | Rflags, | ||
BOOLEAN | Isx86_64 ) |
Check whether the jump is taken or not taken (in debugger)
the implementation of this function derived from the table in this site : http://www.unixwiz.net/techtips/x86-jumps.html
BufferToDisassemble | Current Bytes of assembly |
BuffLength | Length of buffer |
Rflags | The kernel's current RFLAG |
Isx86_64 | Whether it's an x86 or x64 |
UINT32 HyperDbgLengthDisassemblerEngine | ( | unsigned char * | BufferToDisassemble, |
UINT64 | BuffLength, | ||
BOOLEAN | Isx86_64 ) |
Length Disassembler engine based on Zydis.
BufferToDisassemble | Current Bytes of assembly |
BuffLength | Length of buffer |
Isx86_64 | Whether it's an x86 or x64 |
Length | of call (if return value is TRUE) |
BOOLEAN HyperDbgReadMemory | ( | UINT64 | TargetAddress, |
DEBUGGER_READ_MEMORY_TYPE | MemoryType, | ||
DEBUGGER_READ_READING_TYPE | ReadingType, | ||
UINT32 | Pid, | ||
UINT32 | Size, | ||
BOOLEAN | GetAddressMode, | ||
DEBUGGER_READ_MEMORY_ADDRESS_MODE * | AddressMode, | ||
BYTE * | TargetBufferToStore, | ||
UINT32 * | ReturnLength ) |
Read memory and disassembler.
TargetAddress | location of where to read the memory |
MemoryType | type of memory (phyical or virtual) |
ReadingType | read from kernel or vmx-root |
Pid | The target process id |
Size | size of memory to read |
GetAddressMode | check for address mode |
AddressMode | Address mode (32 or 64) |
TargetBufferToStore | The buffer to store the read memory |
ReturnLength | The length of the read memory |
VOID HyperDbgShowMemoryOrDisassemble | ( | DEBUGGER_SHOW_MEMORY_STYLE | Style, |
UINT64 | Address, | ||
DEBUGGER_READ_MEMORY_TYPE | MemoryType, | ||
DEBUGGER_READ_READING_TYPE | ReadingType, | ||
UINT32 | Pid, | ||
UINT32 | Size, | ||
PDEBUGGER_DT_COMMAND_OPTIONS | DtDetails ) |
Show memory or disassembler.
Style | style of show memory (as byte, dwrod, qword) |
Address | location of where to read the memory |
MemoryType | type of memory (phyical or virtual) |
ReadingType | read from kernel or vmx-root |
Pid | The target process id |
Size | size of memory to read |
DtDetails | Options for dt structure show details |
VOID InitializeCommandsDictionary | ( | ) |
Initialize commands and attributes.
VOID InitializeDebugger | ( | ) |
Initialize the debugger and adjust commands for the first run.
int ReadCpuDetails | ( | ) |
Print out supported instruction set extensions.
string SeparateTo64BitValue | ( | UINT64 | Value | ) |
add ` between 64 bit values and convert them to string
Value |
void ShowMemoryCommandDB | ( | unsigned char * | OutputBuffer, |
UINT32 | Size, | ||
UINT64 | Address, | ||
DEBUGGER_READ_MEMORY_TYPE | MemoryType, | ||
UINT64 | Length ) |
Show memory in bytes (DB)
OutputBuffer | the buffer to show |
Size | size of memory to read |
Address | location of where to read the memory |
MemoryType | type of memory (phyical or virtual) |
Length | Length of memory to show |
void ShowMemoryCommandDC | ( | unsigned char * | OutputBuffer, |
UINT32 | Size, | ||
UINT64 | Address, | ||
DEBUGGER_READ_MEMORY_TYPE | MemoryType, | ||
UINT64 | Length ) |
Show memory in dword format (DC)
OutputBuffer | the buffer to show |
Size | size of memory to read |
Address | location of where to read the memory |
MemoryType | type of memory (phyical or virtual) |
Length | Length of memory to show |
void ShowMemoryCommandDD | ( | unsigned char * | OutputBuffer, |
UINT32 | Size, | ||
UINT64 | Address, | ||
DEBUGGER_READ_MEMORY_TYPE | MemoryType, | ||
UINT64 | Length ) |
Show memory in dword format (DD)
OutputBuffer | the buffer to show |
Size | size of memory to read |
Address | location of where to read the memory |
MemoryType | type of memory (phyical or virtual) |
Length | Length of memory to show |
void ShowMemoryCommandDQ | ( | unsigned char * | OutputBuffer, |
UINT32 | Size, | ||
UINT64 | Address, | ||
DEBUGGER_READ_MEMORY_TYPE | MemoryType, | ||
UINT64 | Length ) |
Show memory in qword format (DQ)
OutputBuffer | the buffer to show |
Size | size of memory to read |
Address | location of where to read the memory |
MemoryType | type of memory (phyical or virtual) |
Length | Length of memory to show |
VOID ShowMessages | ( | const char * | Fmt, |
... ) |
Show messages.
Fmt | format string message |
... | arguments |
Fmt | format string message |
|
extern |
Holds the global handle of device which is used to send the request to the kernel by IOCTL, this handle is not used for IRP Pending of message tracing this handle is used in KD VMM.