77 UINT32 MaximumInstrDecoded,
85 UINT32 MaximumInstrDecoded,
91 UCHAR * BufferToDisassemble,
97 UCHAR * BufferToDisassemble,
104 UCHAR * BufferToDisassemble,
112 UCHAR * BufferToDisassemble,
118 UCHAR * BufferToDisassemble,
139 BYTE * TargetBufferToStore,
177typedef std::tuple<CommandParsingTokenType, std::string, std::string>
CommandToken;
213#define DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE 0x1
214#define DEBUGGER_COMMAND_ATTRIBUTE_EVENT 0x2 | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
215#define DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_REMOTE_CONNECTION 0x4
216#define DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER 0x8
217#define DEBUGGER_COMMAND_ATTRIBUTE_WONT_STOP_DEBUGGER_AGAIN 0x10
218#define DEBUGGER_COMMAND_ATTRIBUTE_HWDBG 0x20
224#define DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL \
225 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_REMOTE_CONNECTION
231#define DEBUGGER_COMMAND_CLEAR_ATTRIBUTES \
232 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
234#define DEBUGGER_COMMAND_HELP_ATTRIBUTES \
235 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
237#define DEBUGGER_COMMAND_CONNECT_ATTRIBUTES \
238 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
240#define DEBUGGER_COMMAND_LISTEN_ATTRIBUTES \
241 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
243#define DEBUGGER_COMMAND_G_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
245#define DEBUGGER_COMMAND_GG_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
247#define DEBUGGER_COMMAND_ATTACH_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_WONT_STOP_DEBUGGER_AGAIN
249#define DEBUGGER_COMMAND_DETACH_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_WONT_STOP_DEBUGGER_AGAIN
251#define DEBUGGER_COMMAND_SWITCH_ATTRIBUTES NULL
253#define DEBUGGER_COMMAND_CONTINUE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_WONT_STOP_DEBUGGER_AGAIN
255#define DEBUGGER_COMMAND_PAUSE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_WONT_STOP_DEBUGGER_AGAIN
257#define DEBUGGER_COMMAND_START_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_WONT_STOP_DEBUGGER_AGAIN
259#define DEBUGGER_COMMAND_RESTART_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_WONT_STOP_DEBUGGER_AGAIN
261#define DEBUGGER_COMMAND_KILL_ATTRIBUTES NULL
263#define DEBUGGER_COMMAND_PROCESS_ATTRIBUTES \
264 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
266#define DEBUGGER_COMMAND_THREAD_ATTRIBUTES \
267 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
269#define DEBUGGER_COMMAND_SLEEP_ATTRIBUTES \
270 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
272#define DEBUGGER_COMMAND_EVENTS_ATTRIBUTES \
273 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
275#define DEBUGGER_COMMAND_SETTINGS_ATTRIBUTES \
276 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
278#define DEBUGGER_COMMAND_DISCONNECT_ATTRIBUTES \
279 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
281#define DEBUGGER_COMMAND_DEBUG_ATTRIBUTES \
282 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
284#define DEBUGGER_COMMAND_DOT_STATUS_ATTRIBUTES \
285 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
287#define DEBUGGER_COMMAND_STATUS_ATTRIBUTES NULL
289#define DEBUGGER_COMMAND_LOAD_ATTRIBUTES NULL
291#define DEBUGGER_COMMAND_EXIT_ATTRIBUTES \
292 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
294#define DEBUGGER_COMMAND_FLUSH_ATTRIBUTES \
295 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
297#define DEBUGGER_COMMAND_UNLOAD_ATTRIBUTES NULL
299#define DEBUGGER_COMMAND_SCRIPT_ATTRIBUTES \
300 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
302#define DEBUGGER_COMMAND_OUTPUT_ATTRIBUTES \
303 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
305#define DEBUGGER_COMMAND_PRINT_ATTRIBUTES \
306 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
308#define DEBUGGER_COMMAND_EVAL_ATTRIBUTES \
309 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
311#define DEBUGGER_COMMAND_LOGOPEN_ATTRIBUTES \
312 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
314#define DEBUGGER_COMMAND_LOGCLOSE_ATTRIBUTES \
315 DEBUGGER_COMMAND_ATTRIBUTE_ABSOLUTE_LOCAL
317#define DEBUGGER_COMMAND_TEST_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
319#define DEBUGGER_COMMAND_CPU_ATTRIBUTES NULL
321#define DEBUGGER_COMMAND_WRMSR_ATTRIBUTES NULL
323#define DEBUGGER_COMMAND_RDMSR_ATTRIBUTES NULL
325#define DEBUGGER_COMMAND_VA2PA_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
327#define DEBUGGER_COMMAND_PA2VA_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
329#define DEBUGGER_COMMAND_FORMATS_ATTRIBUTES \
330 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
332#define DEBUGGER_COMMAND_PTE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
334#define DEBUGGER_COMMAND_APIC_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
336#define DEBUGGER_COMMAND_IOAPIC_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
338#define DEBUGGER_COMMAND_CORE_ATTRIBUTES \
339 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
341#define DEBUGGER_COMMAND_MONITOR_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
343#define DEBUGGER_COMMAND_VMCALL_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
345#define DEBUGGER_COMMAND_EPTHOOK_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
347#define DEBUGGER_COMMAND_EPTHOOK2_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
349#define DEBUGGER_COMMAND_CPUID_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
351#define DEBUGGER_COMMAND_XSETBV_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
353#define DEBUGGER_COMMAND_MSRREAD_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
355#define DEBUGGER_COMMAND_MSRWRITE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
357#define DEBUGGER_COMMAND_TSC_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
359#define DEBUGGER_COMMAND_PMC_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
361#define DEBUGGER_COMMAND_CRWRITE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
363#define DEBUGGER_COMMAND_DR_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
365#define DEBUGGER_COMMAND_IOIN_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
367#define DEBUGGER_COMMAND_IOOUT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
369#define DEBUGGER_COMMAND_EXCEPTION_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
371#define DEBUGGER_COMMAND_INTERRUPT_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
373#define DEBUGGER_COMMAND_SYSCALL_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
375#define DEBUGGER_COMMAND_SYSRET_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
377#define DEBUGGER_COMMAND_MODE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
379#define DEBUGGER_COMMAND_TRACE_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_EVENT
381#define DEBUGGER_COMMAND_HIDE_ATTRIBUTES NULL
383#define DEBUGGER_COMMAND_UNHIDE_ATTRIBUTES NULL
385#define DEBUGGER_COMMAND_MEASURE_ATTRIBUTES NULL
387#define DEBUGGER_COMMAND_LM_ATTRIBUTES NULL
389#define DEBUGGER_COMMAND_P_ATTRIBUTES \
390 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
392#define DEBUGGER_COMMAND_T_ATTRIBUTES \
393 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
395#define DEBUGGER_COMMAND_I_ATTRIBUTES \
396 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
398#define DEBUGGER_COMMAND_D_AND_U_ATTRIBUTES \
399 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
401#define DEBUGGER_COMMAND_E_ATTRIBUTES \
402 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
404#define DEBUGGER_COMMAND_S_ATTRIBUTES \
405 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
407#define DEBUGGER_COMMAND_R_ATTRIBUTES \
408 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
410#define DEBUGGER_COMMAND_BP_ATTRIBUTES \
411 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
413#define DEBUGGER_COMMAND_BE_ATTRIBUTES \
414 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
416#define DEBUGGER_COMMAND_BD_ATTRIBUTES \
417 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
419#define DEBUGGER_COMMAND_BC_ATTRIBUTES \
420 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
422#define DEBUGGER_COMMAND_BL_ATTRIBUTES \
423 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
425#define DEBUGGER_COMMAND_SYMPATH_ATTRIBUTES \
426 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
428#define DEBUGGER_COMMAND_SYM_ATTRIBUTES \
429 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
431#define DEBUGGER_COMMAND_X_ATTRIBUTES \
432 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
434#define DEBUGGER_COMMAND_PREALLOC_ATTRIBUTES NULL
436#define DEBUGGER_COMMAND_PREACTIVATE_ATTRIBUTES NULL
438#define DEBUGGER_COMMAND_K_ATTRIBUTES \
439 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
441#define DEBUGGER_COMMAND_DT_ATTRIBUTES \
442 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
444#define DEBUGGER_COMMAND_STRUCT_ATTRIBUTES \
445 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
447#define DEBUGGER_COMMAND_PE_ATTRIBUTES NULL
449#define DEBUGGER_COMMAND_REV_ATTRIBUTES NULL
451#define DEBUGGER_COMMAND_TRACK_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
453#define DEBUGGER_COMMAND_PAGEIN_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
455#define DEBUGGER_COMMAND_DUMP_ATTRIBUTES \
456 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
458#define DEBUGGER_COMMAND_GU_ATTRIBUTES \
459 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE | DEBUGGER_COMMAND_ATTRIBUTE_REPEAT_ON_ENTER
461#define DEBUGGER_COMMAND_HWDBG_HW_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_HWDBG
463#define DEBUGGER_COMMAND_HWDBG_HW_CLK_ATTRIBUTES DEBUGGER_COMMAND_ATTRIBUTE_HWDBG
465#define DEBUGGER_COMMAND_A_ATTRIBUTES \
466 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
468#define DEBUGGER_COMMAND_PCITREE_ATTRIBUTES \
469 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
471#define DEBUGGER_COMMAND_PCICAM_ATTRIBUTES \
472 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
474#define DEBUGGER_COMMAND_IDT_ATTRIBUTES \
475 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
477#define DEBUGGER_COMMAND_SMI_ATTRIBUTES \
478 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
480#define DEBUGGER_COMMAND_LBR_ATTRIBUTES \
483#define DEBUGGER_COMMAND_LBRDUMP_ATTRIBUTES \
484 DEBUGGER_COMMAND_ATTRIBUTE_LOCAL_COMMAND_IN_DEBUGGER_MODE
486#define DEBUGGER_COMMAND_PT_ATTRIBUTES \
494CommandTest(vector<CommandToken> CommandTokens,
string Command);
497CommandCls(vector<CommandToken> CommandTokens,
string Command);
503CommandConnect(vector<CommandToken> CommandTokens,
string Command);
506CommandLoad(vector<CommandToken> CommandTokens,
string Command);
509CommandUnload(vector<CommandToken> CommandTokens,
string Command);
512CommandScript(vector<CommandToken> CommandTokens,
string Command);
515CommandCpu(vector<CommandToken> CommandTokens,
string Command);
518CommandExit(vector<CommandToken> CommandTokens,
string Command);
524CommandFormats(vector<CommandToken> CommandTokens,
string Command);
527CommandRdmsr(vector<CommandToken> CommandTokens,
string Command);
530CommandWrmsr(vector<CommandToken> CommandTokens,
string Command);
533CommandPte(vector<CommandToken> CommandTokens,
string Command);
536CommandMonitor(vector<CommandToken> CommandTokens,
string Command);
542CommandEptHook(vector<CommandToken> CommandTokens,
string Command);
548CommandCpuid(vector<CommandToken> CommandTokens,
string Command);
551CommandMsrread(vector<CommandToken> CommandTokens,
string Command);
557CommandTsc(vector<CommandToken> CommandTokens,
string Command);
560CommandPmc(vector<CommandToken> CommandTokens,
string Command);
566CommandCrwrite(vector<CommandToken> CommandTokens,
string Command);
569CommandDr(vector<CommandToken> CommandTokens,
string Command);
575CommandIoin(vector<CommandToken> CommandTokens,
string Command);
578CommandIoout(vector<CommandToken> CommandTokens,
string Command);
581CommandVmcall(vector<CommandToken> CommandTokens,
string Command);
584CommandMode(vector<CommandToken> CommandTokens,
string Command);
587CommandTrace(vector<CommandToken> CommandTokens,
string Command);
590CommandHide(vector<CommandToken> CommandTokens,
string Command);
593CommandUnhide(vector<CommandToken> CommandTokens,
string Command);
596CommandLogopen(vector<CommandToken> CommandTokens,
string Command);
602CommandVa2pa(vector<CommandToken> CommandTokens,
string Command);
605CommandPa2va(vector<CommandToken> CommandTokens,
string Command);
608CommandEvents(vector<CommandToken> CommandTokens,
string Command);
611CommandG(vector<CommandToken> CommandTokens,
string Command);
617CommandGg(vector<CommandToken> CommandTokens,
string Command);
620CommandLm(vector<CommandToken> CommandTokens,
string Command);
623CommandSleep(vector<CommandToken> CommandTokens,
string Command);
632CommandMeasure(vector<CommandToken> CommandTokens,
string Command);
638CommandFlush(vector<CommandToken> CommandTokens,
string Command);
641CommandPause(vector<CommandToken> CommandTokens,
string Command);
644CommandListen(vector<CommandToken> CommandTokens,
string Command);
647CommandStatus(vector<CommandToken> CommandTokens,
string Command);
650CommandAttach(vector<CommandToken> CommandTokens,
string Command);
653CommandDetach(vector<CommandToken> CommandTokens,
string Command);
656CommandStart(vector<CommandToken> CommandTokens,
string Command);
659CommandRestart(vector<CommandToken> CommandTokens,
string Command);
662CommandSwitch(vector<CommandToken> CommandTokens,
string Command);
665CommandKill(vector<CommandToken> CommandTokens,
string Command);
668CommandT(vector<CommandToken> CommandTokens,
string Command);
671CommandI(vector<CommandToken> CommandTokens,
string Command);
674CommandPrint(vector<CommandToken> CommandTokens,
string Command);
677CommandOutput(vector<CommandToken> CommandTokens,
string Command);
680CommandDebug(vector<CommandToken> CommandTokens,
string Command);
683CommandP(vector<CommandToken> CommandTokens,
string Command);
686CommandCore(vector<CommandToken> CommandTokens,
string Command);
689CommandProcess(vector<CommandToken> CommandTokens,
string Command);
692CommandThread(vector<CommandToken> CommandTokens,
string Command);
695CommandEval(vector<CommandToken> CommandTokens,
string Command);
698CommandR(vector<CommandToken> CommandTokens,
string Command);
701CommandBp(vector<CommandToken> CommandTokens,
string Command);
704CommandBl(vector<CommandToken> CommandTokens,
string Command);
707CommandBe(vector<CommandToken> CommandTokens,
string Command);
710CommandBd(vector<CommandToken> CommandTokens,
string Command);
713CommandBc(vector<CommandToken> CommandTokens,
string Command);
716CommandSympath(vector<CommandToken> CommandTokens,
string Command);
719CommandSym(vector<CommandToken> CommandTokens,
string Command);
722CommandX(vector<CommandToken> CommandTokens,
string Command);
734CommandK(vector<CommandToken> CommandTokens,
string Command);
737CommandPe(vector<CommandToken> CommandTokens,
string Command);
740CommandRev(vector<CommandToken> CommandTokens,
string Command);
743CommandApic(vector<CommandToken> CommandTokens,
string Command);
746CommandIoapic(vector<CommandToken> CommandTokens,
string Command);
749CommandTrack(vector<CommandToken> CommandTokens,
string Command);
752CommandPagein(vector<CommandToken> CommandTokens,
string Command);
755CommandDump(vector<CommandToken> CommandTokens,
string Command);
758CommandGu(vector<CommandToken> CommandTokens,
string Command);
764CommandPcitree(vector<CommandToken> CommandTokens,
string Command);
767CommandPcicam(vector<CommandToken> CommandTokens,
string Command);
770CommandIdt(vector<CommandToken> CommandTokens,
string Command);
773CommandSmi(vector<CommandToken> CommandTokens,
string Command);
776CommandLbr(vector<CommandToken> CommandTokens,
string Command);
779CommandLbrdump(vector<CommandToken> CommandTokens,
string Command);
782CommandPt(vector<CommandToken> CommandTokens,
string Command);
788CommandHwClk(vector<CommandToken> CommandTokens,
string Command);
791CommandHw(vector<CommandToken> CommandTokens,
string Command);
794CommandXsetbv(vector<CommandToken> CommandTokens,
string Command);
VOID CommandBl(vector< CommandToken > CommandTokens, string Command)
handler of the bl command
Definition bl.cpp:41
VOID CommandPcitree(vector< CommandToken > CommandTokens, string Command)
!pcitree command handler
Definition pcitree.cpp:45
VOID CommandBd(vector< CommandToken > CommandTokens, string Command)
handler of bd command
Definition bd.cpp:45
VOID CommandLm(vector< CommandToken > CommandTokens, string Command)
handle lm command
Definition lm.cpp:358
string SeparateTo64BitValue(UINT64 Value)
VOID CommandAssemble(vector< CommandToken > CommandTokens, string Command)
a and !a commands handler
Definition a.cpp:182
VOID CommandPte(vector< CommandToken > CommandTokens, string Command)
!pte command handler
Definition pte.cpp:93
VOID CommandBp(vector< CommandToken > CommandTokens, string Command)
bp command handler
Definition bp.cpp:168
VOID CommandPa2va(vector< CommandToken > CommandTokens, string Command)
!pa2va command handler
Definition pa2va.cpp:50
VOID CommandXsetbvHelp()
help of the !xsetbv command
Definition xsetbv.cpp:20
VOID CommandKill(vector< CommandToken > CommandTokens, string Command)
.kill command handler
Definition kill.cpp:42
VOID CommandReadMemoryAndDisassembler(vector< CommandToken > CommandTokens, string Command)
u* d* !u* !d* commands handler
Definition d-u.cpp:73
VOID CommandMsrwrite(vector< CommandToken > CommandTokens, string Command)
!msrwrite command handler
Definition msrwrite.cpp:47
VOID CommandPagein(vector< CommandToken > CommandTokens, string Command)
.pagein command handler
Definition pagein.cpp:266
VOID CommandFormats(vector< CommandToken > CommandTokens, string Command)
handler of .formats command
Definition formats.cpp:106
VOID CommandUnhide(vector< CommandToken > CommandTokens, string Command)
!unhide command handler
Definition unhide.cpp:100
VOID ShowMemoryCommandDC(UCHAR *OutputBuffer, UINT32 Size, UINT64 Address, DEBUGGER_READ_MEMORY_TYPE MemoryType, UINT64 Length)
Show memory in dword format (DC).
Definition readmem.cpp:490
BOOLEAN HyperDbgCheckWhetherTheCurrentInstructionIsCallOrRet(UCHAR *BufferToDisassemble, UINT64 CurrentRip, UINT32 BuffLength, BOOLEAN Isx86_64, PBOOLEAN IsRet)
Check whether the current instruction is a 'call' or 'ret' or not.
Definition disassembler.cpp:983
VOID CommandMeasure(vector< CommandToken > CommandTokens, string Command)
!measure command handler
Definition measure.cpp:56
VOID CommandApic(vector< CommandToken > CommandTokens, string Command)
!apic command handler
Definition apic.cpp:186
VOID CommandRdmsr(vector< CommandToken > CommandTokens, string Command)
rdmsr command handler
Definition rdmsr.cpp:120
VOID InitializeCommandsDictionary()
Initialize commands and attributes.
Definition interpreter.cpp:1343
VOID CommandTrack(vector< CommandToken > CommandTokens, string Command)
handler of !track command
Definition track.cpp:60
VOID CommandStatus(vector< CommandToken > CommandTokens, string Command)
.status and status command handler
Definition status.cpp:51
VOID CommandRestart(vector< CommandToken > CommandTokens, string Command)
.restart command handler
Definition restart.cpp:47
VOID CommandSympath(vector< CommandToken > CommandTokens, string Command)
.sympath command handler
Definition sympath.cpp:45
VOID CommandDr(vector< CommandToken > CommandTokens, string Command)
!dr command handler
Definition dr.cpp:46
VOID CommandPe(vector< CommandToken > CommandTokens, string Command)
.pe command handler
Definition pe.cpp:42
VOID CommandVa2pa(vector< CommandToken > CommandTokens, string Command)
!va2pa command handler
Definition va2pa.cpp:51
VOID CommandLbrdump(vector< CommandToken > CommandTokens, string Command)
!lbrdump command handler
Definition lbrdump.cpp:240
UINT32 HyperDbgLengthDisassemblerEngine(UCHAR *BufferToDisassemble, UINT64 BuffLength, BOOLEAN Isx86_64)
Length Disassembler engine based on Zydis.
Definition disassembler.cpp:856
VOID CommandDtAndStruct(vector< CommandToken > CommandTokens, string Command)
dt and struct command handler
Definition dt-struct.cpp:429
INT HyperDbgDisassembler64(UCHAR *BufferToDisassemble, UINT64 BaseAddress, UINT64 Size, UINT32 MaximumInstrDecoded, BOOLEAN ShowBranchIsTakenOrNot, PRFLAGS Rflags)
Disassemble x64 assemblies.
Definition disassembler.cpp:333
VOID CommandCore(vector< CommandToken > CommandTokens, string Command)
~ command handler
Definition core.cpp:47
VOID CommandXsetbv(vector< CommandToken > CommandTokens, string Command)
!xsetbv command handler
Definition xsetbv.cpp:47
VOID CommandDumpSaveIntoFile(PVOID Buffer, UINT32 Length)
Saves the received buffers into the files.
Definition dump.cpp:308
VOID CommandCpuid(vector< CommandToken > CommandTokens, string Command)
!cpuid command handler
Definition cpuid.cpp:48
VOID CommandLoad(vector< CommandToken > CommandTokens, string Command)
load command handler
Definition load.cpp:50
VOID CommandSmi(vector< CommandToken > CommandTokens, string Command)
!smi command handler
Definition smi.cpp:123
VOID CommandHw(vector< CommandToken > CommandTokens, string Command)
!hw command handler
Definition hw.cpp:46
VOID CommandWrmsr(vector< CommandToken > CommandTokens, string Command)
wrmsr command handler
Definition wrmsr.cpp:47
VOID CommandSettingsSetValueFromConfigFile(std::string OptionName, std::string OptionValue)
Sets the setting values from config file.
Definition settings.cpp:115
VOID CommandX(vector< CommandToken > CommandTokens, string Command)
x command handler
Definition x.cpp:41
VOID CommandSleep(vector< CommandToken > CommandTokens, string Command)
sleep command help
Definition sleep.cpp:38
VOID CommandLogclose(vector< CommandToken > CommandTokens, string Command)
.logclose command handler
Definition logclose.cpp:42
INT HyperDbgDisassembler32(UCHAR *BufferToDisassemble, UINT64 BaseAddress, UINT64 Size, UINT32 MaximumInstrDecoded, BOOLEAN ShowBranchIsTakenOrNot, PRFLAGS Rflags)
Disassemble 32 bit assemblies.
Definition disassembler.cpp:373
VOID CommandException(vector< CommandToken > CommandTokens, string Command)
!exception command handler
Definition exception.cpp:51
VOID CommandCpu(vector< CommandToken > CommandTokens, string Command)
cpu command handler
Definition cpu.cpp:36
VOID CommandTest(vector< CommandToken > CommandTokens, string Command)
test command handler
Definition test.cpp:434
VOID CommandT(vector< CommandToken > CommandTokens, string Command)
handler of t command
Definition t.cpp:53
VOID CommandContinue(vector< CommandToken > CommandTokens, string Command)
handler of continue command
Definition continue.cpp:47
VOID CommandI(vector< CommandToken > CommandTokens, string Command)
handler of i command
Definition i.cpp:56
VOID CommandEval(vector< CommandToken > CommandTokens, string Command)
handler of ? command
Definition eval.cpp:196
VOID CommandPteShowResults(UINT64 TargetVa, PDEBUGGER_READ_PAGE_TABLE_ENTRIES_DETAILS PteRead)
show results of !pte command
Definition pte.cpp:48
VOID CommandPcicam(vector< CommandToken > CommandTokens, string Command)
!pcicam command handler
Definition pcicam.cpp:47
VOID CommandHwClk(vector< CommandToken > CommandTokens, string Command)
!hw_clk command handler
Definition hw_clk.cpp:154
VOID CommandBc(vector< CommandToken > CommandTokens, string Command)
handler of bc command
Definition bc.cpp:45
VOID CommandSearchMemory(vector< CommandToken > CommandTokens, string Command)
!s* s* commands handler
Definition s.cpp:141
VOID CommandPrint(vector< CommandToken > CommandTokens, string Command)
handler of print command
Definition print.cpp:42
VOID CommandEptHook(vector< CommandToken > CommandTokens, string Command)
!epthook command handler
Definition epthook.cpp:48
VOID CommandLogopen(vector< CommandToken > CommandTokens, string Command)
.logopen command handler
Definition logopen.cpp:48
VOID CommandSyscallAndSysret(vector< CommandToken > CommandTokens, string Command)
!syscall, !syscall2 and !sysret, !sysret2 commands handler
Definition syscall-sysret.cpp:85
VOID CommandSwitch(vector< CommandToken > CommandTokens, string Command)
.switch command handler
Definition switch.cpp:45
VOID CommandExit(vector< CommandToken > CommandTokens, string Command)
exit command handler
Definition exit.cpp:46
VOID CommandBe(vector< CommandToken > CommandTokens, string Command)
handler of be command
Definition be.cpp:45
VOID CommandG(vector< CommandToken > CommandTokens, string Command)
handler of g command
Definition g.cpp:94
VOID CommandCrwrite(vector< CommandToken > CommandTokens, string Command)
!crwrite command handler
Definition crwrite.cpp:47
VOID CommandTsc(vector< CommandToken > CommandTokens, string Command)
handler of !tsc command
Definition tsc.cpp:46
std::map< std::string, COMMAND_DETAIL > CommandType
Type saving commands and mapping to command string.
Definition commands.h:207
VOID CommandAttach(vector< CommandToken > CommandTokens, string Command)
.attach command handler
Definition attach.cpp:44
VOID CommandMonitor(vector< CommandToken > CommandTokens, string Command)
!monitor command handler
Definition monitor.cpp:62
VOID CommandGg(vector< CommandToken > CommandTokens, string Command)
gg command handler
Definition gg.cpp:41
VOID CommandSettingsLoadDefaultValuesFromConfigFile()
Loads default settings values from config file.
Definition settings.cpp:161
VOID CommandRev(vector< CommandToken > CommandTokens, string Command)
!rev command handler
Definition rev.cpp:50
VOID CommandProcess(vector< CommandToken > CommandTokens, string Command)
.process command handler
Definition process.cpp:57
VOID CommandMsrread(vector< CommandToken > CommandTokens, string Command)
!msrread command handler
Definition msrread.cpp:47
VOID CommandHide(vector< CommandToken > CommandTokens, string Command)
!hide command handler
Definition hide.cpp:395
BOOLEAN CheckMultilineCommand(CHAR *CurrentCommand, BOOLEAN Reset)
check for multi-line commands
Definition interpreter.cpp:1132
VOID CommandLbr(vector< CommandToken > CommandTokens, string Command)
!lbr command handler
Definition lbr.cpp:329
BOOLEAN CommandSettingsGetValueFromConfigFile(std::string OptionName, std::string &OptionValue)
Gets the setting values from config file.
Definition settings.cpp:60
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.
Definition readmem.cpp:193
VOID CommandR(vector< CommandToken > CommandTokens, string Command)
handler of r command
Definition r.cpp:452
INT ReadCpuDetails()
Print out supported instruction set extensions.
Definition cpu.cpp:264
VOID CommandPmc(vector< CommandToken > CommandTokens, string Command)
!pmc command handler
Definition pmc.cpp:46
VOID CommandConnect(vector< CommandToken > CommandTokens, string Command)
.connect command handler
Definition connect.cpp:107
VOID CpuReadVendorString(CHAR *Result)
Reads the CPU vendor string.
Definition cpu.cpp:252
VOID CommandListen(vector< CommandToken > CommandTokens, string Command)
listen command handler
Definition listen.cpp:54
VOID CommandPause(vector< CommandToken > CommandTokens, string Command)
pause command handler
Definition pause.cpp:71
VOID CommandEvents(vector< CommandToken > CommandTokens, string Command)
events command handler
Definition events.cpp:67
DEBUGGER_CONDITIONAL_JUMP_STATUS HyperDbgIsConditionalJumpTaken(UCHAR *BufferToDisassemble, UINT64 BuffLength, RFLAGS Rflags, BOOLEAN Isx86_64)
Check whether the jump is taken or not taken (in debugger).
Definition disassembler.cpp:410
BOOLEAN HyperDbgCheckWhetherTheCurrentInstructionIsRet(UCHAR *BufferToDisassemble, UINT64 BuffLength, BOOLEAN Isx86_64)
Check whether the current instruction is a 'ret' or not.
Definition disassembler.cpp:1095
VOID CommandMode(vector< CommandToken > CommandTokens, string Command)
!mode command handler
Definition mode.cpp:49
VOID(* CommandFuncTypeParser)(vector< CommandToken > CommandTokens, string Command)
Command's function type.
Definition commands.h:183
VOID CommandDump(vector< CommandToken > CommandTokens, string Command)
.dump command handler
Definition dump.cpp:62
VOID(* CommandHelpFuncType)()
Command's help function type.
Definition commands.h:189
VOID CommandVmcall(vector< CommandToken > CommandTokens, string Command)
!vmcall command handler
Definition vmcall.cpp:46
VOID CommandDebug(vector< CommandToken > CommandTokens, string Command)
.debug command handler
Definition debug.cpp:235
VOID CommandOutput(vector< CommandToken > CommandTokens, string Command)
output command handler
Definition output.cpp:58
VOID ShowMemoryCommandDB(UCHAR *OutputBuffer, UINT32 Size, UINT64 Address, DEBUGGER_READ_MEMORY_TYPE MemoryType, UINT64 Length)
Show memory in bytes (DB).
Definition readmem.cpp:420
VOID CommandIoout(vector< CommandToken > CommandTokens, string Command)
!ioout command handler
Definition ioout.cpp:48
VOID CommandPt(vector< CommandToken > CommandTokens, string Command)
!pt command handler
Definition pt.cpp:321
VOID CommandP(vector< CommandToken > CommandTokens, string Command)
handler of p command
Definition p.cpp:53
VOID CommandUnload(vector< CommandToken > CommandTokens, string Command)
unload command handler
Definition unload.cpp:82
VOID CommandEptHook2(vector< CommandToken > CommandTokens, string Command)
!epthook2 command handler
Definition epthook2.cpp:49
UINT32 HyperDbgGetImmediateValueOnEaxForSyscallNumber(UCHAR *BufferToDisassemble, UINT64 BuffLength, BOOLEAN Isx86_64)
Get immediate value on EAX register.
Definition disassembler.cpp:1184
VOID CommandCls(vector< CommandToken > CommandTokens, string Command)
.cls command handler
Definition cls.cpp:36
VOID ShowMemoryCommandDQ(UCHAR *OutputBuffer, UINT32 Size, UINT64 Address, DEBUGGER_READ_MEMORY_TYPE MemoryType, UINT64 Length)
Show memory in qword format (DQ).
Definition readmem.cpp:612
VOID CommandDetach(vector< CommandToken > CommandTokens, string Command)
.detach command handler
Definition detach.cpp:72
VOID CommandGu(vector< CommandToken > CommandTokens, string Command)
handler of gu command
Definition gu.cpp:52
VOID CommandIdt(vector< CommandToken > CommandTokens, string Command)
!idt command handler
Definition idt.cpp:115
VOID CommandK(vector< CommandToken > CommandTokens, string Command)
k command handler
Definition k.cpp:56
VOID CommandEditMemory(vector< CommandToken > CommandTokens, string Command)
!e* and e* commands handler
Definition e.cpp:269
struct _COMMAND_DETAIL * PCOMMAND_DETAIL
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.
Definition readmem.cpp:37
VOID InitializeDebugger()
Initialize the debugger and adjust commands for the first run.
Definition interpreter.cpp:1288
BOOLEAN ContinuePreviousCommand()
Some of commands like stepping commands (i, p, t) and etc. need to be repeated when the user press en...
Definition interpreter.cpp:1229
VOID CommandScript(vector< CommandToken > CommandTokens, string Command)
.script command handler
Definition script.cpp:263
struct _COMMAND_DETAIL COMMAND_DETAIL
Details of each command.
VOID CommandFlush(vector< CommandToken > CommandTokens, string Command)
flush command handler
Definition flush.cpp:111
VOID CommandInterrupt(vector< CommandToken > CommandTokens, string Command)
!interrupt command handler
Definition interrupt.cpp:49
VOID CommandTrace(vector< CommandToken > CommandTokens, string Command)
!trace command handler
Definition trace.cpp:51
VOID CommandPrealloc(vector< CommandToken > CommandTokens, string Command)
prealloc command handler
Definition prealloc.cpp:60
VOID CommandThread(vector< CommandToken > CommandTokens, string Command)
.thread command handler
Definition thread.cpp:120
VOID CommandStart(vector< CommandToken > CommandTokens, string Command)
.start command handler
Definition start.cpp:47
VOID CommandDisconnect(vector< CommandToken > CommandTokens, string Command)
.disconnect command handler
Definition disconnect.cpp:45
VOID CommandPreactivate(vector< CommandToken > CommandTokens, string Command)
preactivate command handler
Definition preactivate.cpp:49
VOID ShowMessages(const CHAR *Fmt,...)
Show messages.
Definition messaging.cpp:84
VOID ShowMemoryCommandDD(UCHAR *OutputBuffer, UINT32 Size, UINT64 Address, DEBUGGER_READ_MEMORY_TYPE MemoryType, UINT64 Length)
Show memory in dword format (DD).
Definition readmem.cpp:561
std::tuple< CommandParsingTokenType, std::string, std::string > CommandToken
Command's parsing type.
Definition commands.h:177
VOID CommandSettings(vector< CommandToken > CommandTokens, string Command)
settings command handler
Definition settings.cpp:553
CommandParsingTokenType
Command's parsing type (enum).
Definition commands.h:166
@ Num
Definition commands.h:167
@ StringLiteral
Definition commands.h:169
@ String
Definition commands.h:168
@ BracketString
Definition commands.h:170
VOID CommandSym(vector< CommandToken > CommandTokens, string Command)
.sym command handler
Definition sym.cpp:56
VOID CommandIoin(vector< CommandToken > CommandTokens, string Command)
!ioin command handler
Definition ioin.cpp:48
VOID CommandIoapic(vector< CommandToken > CommandTokens, string Command)
!ioapic command handler
Definition ioapic.cpp:194
BOOLEAN HyperDbgCheckWhetherTheCurrentInstructionIsCall(UCHAR *BufferToDisassemble, UINT64 BuffLength, BOOLEAN Isx86_64, PUINT32 CallLength)
Check whether the current instruction is a 'call' or not.
Definition disassembler.cpp:755
RFLAGS * PRFLAGS
Definition pch.h:34
RequestedActionOfThePacket Value(0x1) 00000000
HANDLE g_DeviceHandle
Holds the global handle of device which is used to send the request to the kernel by IOCTL,...
Definition globals.h:481
Details of each command.
Definition commands.h:196
UINT64 CommandAttrib
Definition commands.h:199
CommandHelpFuncType CommandHelpFunction
Definition commands.h:198
CommandFuncTypeParser CommandFunctionNewParser
Definition commands.h:197