Check if the remote debuggee needs to pause the system and also process the debuggee's messages. 
   45{
   75    PVOID                                       CallerAddress                 = 
NULL;
 
   77 
   78StartAgain:
   79 
   82 
   83    
   84    
   85    
   86    
   88    {
   89        if (LengthReceived == 0 && BufferToReceive[0] == NULL)
   90        {
   91            
   92            
   93            
   95 
   97            {
   98                
   99                
  100                
  102 
  104                {
  105                    ShowSignatureWhenDisconnected = 
TRUE;
 
  106                }
  107            }
  108 
  110 
  111            if (ShowSignatureWhenDisconnected)
  112            {
  113                ShowSignatureWhenDisconnected = 
FALSE;
 
  115            }
  117        }
  118        else
  119        {
  121            goto StartAgain;
  122        }
  123    }
  124 
  125    
  126    
  127    
  128    if (LengthReceived == 1 && BufferToReceive[0] == NULL)
  129    {
  130        goto StartAgain;
  131    }
  132 
  134 
  136    {
  137        
  138        
  139        
  141                                  LengthReceived - 
sizeof(
BYTE)) != TheActualPacket->
Checksum)
 
  142        {
  144            goto StartAgain;
  145        }
  146 
  147        
  148        
  149        
  151        {
  152            
  153            
  154            
  155            
  156            ShowMessages(
"\nerr, unknown packet received from the debuggee\n");
 
  157            goto StartAgain;
  158        }
  159 
  160        
  161        
  162        
  164        {
  166 
  167            
  168            
  169            
  171 
  172            break;
  173 
  175 
  177 
  178            
  179            
  180            
  182 
  184 
  185            
  186            
  187            
  189 
  190            break;
  191 
  193 
  195 
  196            
  197            
  198            
  202            {
  203                
  204                
  205                
  206                
  208                {
  210                }
  211            }
  212 
  213            break;
  214 
  216 
  217            
  218            
  219            
  221 
  223 
  224            
  225            
  226            
  228 
  229            
  230            
  231            
  233 
  234            
  235            
  236            
  239 
  241 
  242            
  243            
  244            
  246            {
  248 
  250                {
  251                    
  252                    
  253                    
  256                }
  257 
  258                break;
  259 
  261 
  263                {
  264                    
  265                    
  266                    
  268                    {
  271                    }
  272                    else
  273                    {
  276                    }
  277                }
  278 
  279                break;
  280 
  282 
  284 
  285                break;
  286 
  288 
  290 
  291                break;
  292 
  294 
  295                ShowMessages(
"the target module is loaded and a breakpoint is set to the entrypoint\n" 
  296                             "press 'g' to reach to the entrypoint of the main module...\n");
  297 
  298                break;
  299 
  300            default:
  301                break;
  302            }
  303 
  305            {
  306                
  307                
  308                
  310                {
  311                    
  312                    
  313                    
  314                    
  318                    {
  319                        ShowMessages(
"oOh, no! there might be a misinterpretation in disassembling the current instruction\n");
 
  320                    }
  321                }
  322 
  324                {
  325                    
  326                    
  327                    
  331                                           1,
  334                }
  335                else
  336                {
  337                    
  338                    
  339                    
  343                                           1,
  346                }
  347            }
  348 
  350            {
  357 
  358                
  359                
  360                
  362 
  363                break;
  364 
  366 
  367                
  368                
  369                
  373                                                       PausePacket->Rip);
  374 
  375                
  376                
  377                
  379 
  380                break;
  381 
  383 
  384                
  385                
  386                
  389 
  390                break;
  391 
  393 
  394                
  395                
  396                
  397                break;
  398 
  400 
  401                
  402                
  403                
  405 
  406                break;
  407 
  409 
  410                
  411                
  412                
  415 
  416                break;
  417 
  419 
  420                
  421                
  422                
  423                
  425 
  426                break;
  427 
  428            default:
  429 
  430                ShowMessages(
"err, unknown pausing reason is received\n");
 
  431 
  432                break;
  433            }
  434 
  435            break;
  436 
  438 
  440 
  442            {
  443                ShowMessages(
"current operating core changed to 0x%x\n",
 
  445            }
  446            else
  447            {
  449 
  450                
  451                
  452                
  454            }
  455 
  456            break;
  457 
  459 
  461 
  463            {
  465                {
  466                    ShowMessages(
"process id: %x\nprocess (_EPROCESS): %s\nprocess name (16-Byte): %s\n",
 
  470                }
  472                {
  474                        "press 'g' to continue the debuggee, if the pid or the "
  475                        "process object address is valid then the debuggee will "
  476                        "be automatically paused when it attached to the target process\n");
  477                }
  478            }
  479            else
  480            {
  482            }
  483 
  484            
  485            
  486            
  488 
  489            break;
  490 
  492 
  494 
  496            {
  498                {
  500                }
  501            }
  502            else
  503            {
  505            }
  506 
  507            
  508            
  509            
  511 
  512            break;
  513 
  515 
  517 
  519            {
  521                {
  522                    ShowMessages(
"thread id: %x (pid: %x)\nthread (_ETHREAD): %s\nprocess (_EPROCESS): %s\nprocess name (16-Byte): %s\n",
 
  528                }
  530                {
  532                        "press 'g' to continue the debuggee, if the tid or the "
  533                        "thread object address is valid then the debuggee will "
  534                        "be automatically paused when it attached to the target thread\n");
  535                }
  536            }
  537            else
  538            {
  540            }
  541 
  542            
  543            
  544            
  546 
  547            break;
  548 
  550 
  552 
  554            {
  555                
  556                
  557                
  558                
  559                ShowMessages(
"flushing buffers was successful, total %d messages were " 
  560                             "cleared.\n",
  562            }
  563            else
  564            {
  566            }
  567 
  568            
  569            
  570            
  572 
  573            break;
  574 
  576 
  579 
  581            {
  582                
  583                
  584                
  589            }
  590            else
  591            {
  593            }
  594 
  595            
  596            
  597            
  599 
  600            break;
  601 
  603 
  605 
  607            {
  609                {
  611 
  612                    ShowMessages(
"breakpoint interception (#BP) is deactivated\n" 
  613                                 "from now, the breakpoints will be re-injected into the guest debuggee\n");
  614 
  615                    break;
  616 
  618 
  619                    ShowMessages(
"breakpoint interception (#BP) is activated\n");
 
  620 
  621                    break;
  622 
  624 
  625                    ShowMessages(
"debug break interception (#DB) is deactivated\n" 
  626                                 "from now, the debug breaks will be re-injected into the guest debuggee\n");
  627 
  628                    break;
  629 
  631 
  632                    ShowMessages(
"debug break interception (#DB) is activated\n");
 
  633 
  634                    break;
  635 
  636                default:
  637                    break;
  638                }
  639            }
  640            else
  641            {
  643            }
  644 
  645            
  646            
  647            
  649 
  650            break;
  651 
  653 
  655 
  657            {
  658                
  659                
  660                
  661            }
  662            else
  663            {
  665            }
  666 
  668            {
  669                
  670                
  671                
  673            }
  674 
  675            
  676            
  677            
  679 
  680            break;
  681 
  683 
  685 
  686            
  687            
  688            
  689            
  690            
  693 
  694            break;
  695 
  697 
  699 
  700            
  701            
  702            
  704 
  705            
  706            
  707            
  709 
  710            break;
  711 
  713 
  715 
  716            
  717            
  718            
  720 
  721            
  722            
  723            
  725 
  726            break;
  727 
  729 
  731 
  732            
  733            
  734            
  736            {
  737                
  738                
  739                
  741            }
  743            {
  744                
  745                
  746                
  748            }
  749            else
  750            {
  752                                                 EventModifyAndQueryPacket);
  753            }
  754 
  755            
  756            
  757            
  758            
  760 
  761            break;
  762 
  764 
  766 
  767            
  768            
  769            
  771            {
  772                
  773                
  774                
  776            }
  777            else
  778            {
  779                
  780                
  781                
  783            }
  784 
  785            
  786            
  787            
  789 
  790            break;
  791 
  793 
  795 
  796            
  797            
  798            
  800 
  801            
  802            
  803            
  804            memcpy(CallerAddress, ReadRegisterPacket, CallerSize);
  805 
  806            
  807            
  808            
  810 
  811            break;
  812 
  814 
  816 
  817            
  818            
  819            
  821 
  822            
  823            
  824            
  825            memcpy(CallerAddress, WriteRegisterPacket, CallerSize);
  826 
  827            
  828            
  829            
  831 
  832            break;
  833 
  835 
  837 
  838            
  839            
  840            
  842 
  843            
  844            
  845            
  846            memcpy(CallerAddress, ReadMemoryPacket, CallerSize);
  847 
  848            
  849            
  850            
  852 
  853            break;
  854 
  856 
  858 
  859            
  860            
  861            
  863 
  864            
  865            
  866            
  867            memcpy(CallerAddress, EditMemoryPacket, CallerSize);
  868 
  869            
  870            
  871            
  873 
  874            break;
  875 
  877 
  879 
  881            {
  882                
  883                
  884                
  885            }
  886            else
  887            {
  889            }
  890 
  891            
  892            
  893            
  895 
  896            break;
  897 
  899 
  901 
  903            {
  905            }
  906            else
  907            {
  909            }
  910 
  911            
  912            
  913            
  915 
  916            break;
  917 
  919 
  921 
  923            {
  924                
  925                
  926                
  928            }
  929            else
  930            {
  932            }
  933 
  934            
  935            
  936            
  938 
  939            break;
  940 
  942 
  944 
  946            {
  947                
  948                
  949                
  950                ShowMessages(
"the page-fault is delivered to the target thread\n" 
  951                             "press 'g' to continue debuggee (the current thread will execute ONLY one instruction and will be halted again)...\n");
  952            }
  953            else
  954            {
  956            }
  957 
  958            
  959            
  960            
  962 
  963            break;
  964 
  966 
  968 
  970            {
  972                {
  974                }
  975                else
  976                {
  978                }
  979            }
  980            else
  981            {
  983            }
  984 
  985            
  986            
  987            
  989 
  990            break;
  991 
  993 
  995 
  997            {
  998                
  999                
 1000                
 1001            }
 1002            else
 1003            {
 1005            }
 1006 
 1007            
 1008            
 1009            
 1010            
 1012 
 1013            break;
 1014 
 1016 
 1018            
 1019            
 1020            
 1022 
 1023            break;
 1024 
 1025        default:
 1026            ShowMessages(
"err, unknown packet action received from the debugger\n");
 
 1027            break;
 1028        }
 1029    }
 1030    else
 1031    {
 1032        
 1033        
 1034        
 1036        
 1037    }
 1038 
 1039    
 1040    
 1041    
 1042    goto StartAgain;
 1043 
 1045}
UCHAR BOOLEAN
Definition BasicTypes.h:39
#define NULL_ZERO
Definition BasicTypes.h:51
char CHAR
Definition BasicTypes.h:31
@ DEBUGGER_REMOTE_PACKET_TYPE_DEBUGGEE_TO_DEBUGGER
Definition Connection.h:164
@ DEBUGGEE_PAUSING_REASON_DEBUGGEE_SOFTWARE_BREAKPOINT_HIT
Definition Connection.h:29
@ DEBUGGEE_PAUSING_REASON_DEBUGGEE_PROCESS_SWITCHED
Definition Connection.h:32
@ DEBUGGEE_PAUSING_REASON_DEBUGGEE_STEPPED
Definition Connection.h:27
@ DEBUGGEE_PAUSING_REASON_DEBUGGEE_EVENT_TRIGGERED
Definition Connection.h:35
@ DEBUGGEE_PAUSING_REASON_DEBUGGEE_THREAD_SWITCHED
Definition Connection.h:33
@ DEBUGGEE_PAUSING_REASON_PAUSE
Definition Connection.h:25
@ DEBUGGEE_PAUSING_REASON_DEBUGGEE_TRACKING_STEPPED
Definition Connection.h:28
@ DEBUGGEE_PAUSING_REASON_REQUEST_FROM_DEBUGGER
Definition Connection.h:26
@ DEBUGGEE_PAUSING_REASON_DEBUGGEE_STARTING_MODULE_LOADED
Definition Connection.h:36
@ DEBUGGEE_PAUSING_REASON_DEBUGGEE_COMMAND_EXECUTION_FINISHED
Definition Connection.h:34
@ DEBUGGEE_PAUSING_REASON_DEBUGGEE_HARDWARE_DEBUG_REGISTER_HIT
Definition Connection.h:30
@ DEBUGGEE_PAUSING_REASON_DEBUGGEE_CORE_SWITCHED
Definition Connection.h:31
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_BP
Definition Connection.h:122
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RELOAD_SYMBOL_FINISHED
Definition Connection.h:126
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_PTE
Definition Connection.h:128
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_TEST_QUERY
Definition Connection.h:114
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RELOAD_SEARCH_QUERY
Definition Connection.h:127
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_SHORT_CIRCUITING_STATE
Definition Connection.h:123
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_FLUSH
Definition Connection.h:112
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_ADDING_ACTION_TO_EVENT
Definition Connection.h:116
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_READING_REGISTERS
Definition Connection.h:119
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_LOGGING_MECHANISM
Definition Connection.h:105
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_READING_MEMORY
Definition Connection.h:120
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_REGISTERING_EVENT
Definition Connection.h:115
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_WRITE_REGISTER
Definition Connection.h:131
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_VA2PA_AND_PA2VA
Definition Connection.h:129
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_EDITING_MEMORY
Definition Connection.h:121
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_CHANGING_THREAD
Definition Connection.h:109
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_STARTED
Definition Connection.h:104
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_PAUSED_AND_CURRENT_INSTRUCTION
Definition Connection.h:106
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_RUNNING_SCRIPT
Definition Connection.h:110
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_BRINGING_PAGES_IN
Definition Connection.h:130
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_QUERY_AND_MODIFY_EVENT
Definition Connection.h:117
@ DEBUGGER_REMOTE_PACKET_PING_AND_SEND_SUPPORTED_VERSION
Definition Connection.h:68
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_CALLSTACK
Definition Connection.h:113
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_CHANGING_CORE
Definition Connection.h:107
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_LIST_OR_MODIFY_BREAKPOINTS
Definition Connection.h:124
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_UPDATE_SYMBOL_INFO
Definition Connection.h:125
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_CHANGING_PROCESS
Definition Connection.h:108
@ DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_DEBUGGEE_RESULT_OF_FORMATS
Definition Connection.h:111
struct _DEBUGGER_REMOTE_PACKET DEBUGGER_REMOTE_PACKET
The structure of remote packets in HyperDbg.
#define MAXIMUM_INSTR_SIZE
maximum instruction size in Intel
Definition Constants.h:468
#define DebuggerEventTagStartSeed
The seeds that user-mode codes use as the starter of their events' tag.
Definition Constants.h:222
@ VMM_CALLBACK_CALLING_STAGE_POST_EVENT_EMULATION
Definition DataTypes.h:94
#define DEBUGGER_OPERATION_WAS_SUCCESSFUL
General value to indicate that the operation or request was successful.
Definition ErrorCodes.h:23
@ TEST_BREAKPOINT_TURN_OFF_DBS
Definition RequestStructures.h:323
@ TEST_BREAKPOINT_TURN_OFF_BPS
Definition RequestStructures.h:316
@ TEST_BREAKPOINT_TURN_ON_DBS
Definition RequestStructures.h:324
@ TEST_BREAKPOINT_TURN_ON_BPS
Definition RequestStructures.h:317
struct _DEBUGGER_CALLSTACK_REQUEST DEBUGGER_CALLSTACK_REQUEST
request for callstack frames
@ DEBUGGEE_DETAILS_AND_SWITCH_THREAD_PERFORM_SWITCH
Definition RequestStructures.h:952
@ DEBUGGEE_DETAILS_AND_SWITCH_THREAD_GET_THREAD_DETAILS
Definition RequestStructures.h:953
@ DEBUGGEE_DETAILS_AND_SWITCH_PROCESS_GET_PROCESS_DETAILS
Definition RequestStructures.h:912
@ DEBUGGEE_DETAILS_AND_SWITCH_PROCESS_PERFORM_SWITCH
Definition RequestStructures.h:914
VOID CallstackShowFrames(PDEBUGGER_SINGLE_CALLSTACK_FRAME CallstackFrames, UINT32 FrameCount, DEBUGGER_CALLSTACK_DISPLAY_METHOD DisplayMethod, BOOLEAN Is32Bit)
Show stack frames.
Definition callstack.cpp:212
string SeparateTo64BitValue(UINT64 Value)
add ` between 64 bit values and convert them to string
Definition common.cpp:27
BOOLEAN ShowErrorMessage(UINT32 Error)
shows the error message
Definition debugger.cpp:38
int HyperDbgDisassembler32(unsigned char *BufferToDisassemble, UINT64 BaseAddress, UINT64 Size, UINT32 MaximumInstrDecoded, BOOLEAN ShowBranchIsTakenOrNot, PRFLAGS Rflags)
Disassemble 32 bit assemblies.
Definition disassembler.cpp:373
int HyperDbgDisassembler64(unsigned char *BufferToDisassemble, UINT64 BaseAddress, UINT64 Size, UINT32 MaximumInstrDecoded, BOOLEAN ShowBranchIsTakenOrNot, PRFLAGS Rflags)
Disassemble x64 assemblies.
Definition disassembler.cpp:333
UINT32 HyperDbgLengthDisassemblerEngine(unsigned char *BufferToDisassemble, UINT64 BuffLength, BOOLEAN Isx86_64)
Length Disassembler engine based on Zydis.
Definition disassembler.cpp:856
VOID CommandEventsHandleModifiedEvent(UINT64 Tag, PDEBUGGER_MODIFY_EVENTS ModifyEventRequest)
Handle events after modification.
Definition events.cpp:499
VOID CommandEventsClearAllEventsAndResetTags()
Clears all the events and resets the tag.
Definition events.cpp:470
BOOLEAN ForwardingCheckAndPerformEventForwarding(UINT32 OperationCode, CHAR *Message, UINT32 MessageLength)
Check and send the event result to the corresponding sources.
Definition forwarding.cpp:439
ULONG g_CurrentRemoteCore
Current core that the debuggee is debugging.
Definition globals.h:263
DEBUGGER_EVENT_AND_ACTION_RESULT g_DebuggeeResultOfRegisteringEvent
Holds the result of registering events from the remote debuggee.
Definition globals.h:283
BOOLEAN g_OutputSourcesInitialized
it shows whether the debugger started using output sources or not or in other words,...
Definition globals.h:408
BOOLEAN g_IsDebuggeeRunning
Shows if the debuggee is running or not.
Definition globals.h:250
UINT64 g_ResultOfEvaluatedExpression
Result of the expression that is evaluated in the debuggee.
Definition globals.h:630
BOOLEAN g_IsRunningInstruction32Bit
whether the Current executing instructions is 32-bit or 64 bit
Definition globals.h:210
BOOLEAN g_IgnoreNewLoggingMessages
Shows if the debugger should show debuggee's messages or not.
Definition globals.h:257
DEBUGGER_EVENT_AND_ACTION_RESULT g_DebuggeeResultOfAddingActionsToEvent
Holds the result of adding action to events from the remote debuggee.
Definition globals.h:289
UINT64 g_KernelBaseAddress
Shows the kernel base address.
Definition globals.h:566
BOOLEAN g_IsSerialConnectedToRemoteDebuggee
Shows if the debugger was connected to remote debuggee over (A remote guest)
Definition globals.h:231
UINT32 g_ErrorStateOfResultOfEvaluatedExpression
Shows the state of the evaluation of expression which whether contains error or not.
Definition globals.h:637
BYTE g_CurrentRunningInstruction[MAXIMUM_INSTR_SIZE]
Current executing instructions.
Definition globals.h:204
BOOLEAN g_SharedEventStatus
Shows whether the queried event is enabled or disabled.
Definition globals.h:307
RFLAGS * PRFLAGS
Definition pch.h:34
VOID CommandPteShowResults(UINT64 TargetVa, PDEBUGGER_READ_PAGE_TABLE_ENTRIES_DETAILS PteRead)
show results of !pte command
Definition pte.cpp:47
The structure of breakpoint modification requests packet in HyperDbg.
Definition RequestStructures.h:1090
UINT32 Result
Definition RequestStructures.h:1093
The structure of bp command packet in HyperDbg.
Definition RequestStructures.h:1060
UINT32 Result
Definition RequestStructures.h:1067
The structure of changing core packet in HyperDbg.
Definition RequestStructures.h:599
UINT32 Result
Definition RequestStructures.h:601
UINT32 NewCore
Definition RequestStructures.h:600
The structure of changing process and show process packet in HyperDbg.
Definition RequestStructures.h:924
UINT32 ProcessId
Definition RequestStructures.h:926
UINT64 Process
Definition RequestStructures.h:927
DEBUGGEE_DETAILS_AND_SWITCH_PROCESS_TYPE ActionType
Definition RequestStructures.h:925
UINT32 Result
Definition RequestStructures.h:931
UCHAR ProcessName[16]
Definition RequestStructures.h:929
The structure of changing thead and show thread packet in HyperDbg.
Definition RequestStructures.h:963
DEBUGGEE_DETAILS_AND_SWITCH_THREAD_TYPE ActionType
Definition RequestStructures.h:964
UINT64 Thread
Definition RequestStructures.h:967
UINT64 Process
Definition RequestStructures.h:968
UINT32 ProcessId
Definition RequestStructures.h:966
UCHAR ProcessName[16]
Definition RequestStructures.h:970
UINT32 ThreadId
Definition RequestStructures.h:965
UINT32 Result
Definition RequestStructures.h:972
The structure of .formats result packet in HyperDbg.
Definition RequestStructures.h:1033
UINT32 Result
Definition RequestStructures.h:1035
UINT64 Value
Definition RequestStructures.h:1034
The structure of pausing packet in kHyperDbg.
Definition DataTypes.h:207
UINT16 ReadInstructionLen
Definition DataTypes.h:217
UINT64 Rip
Definition DataTypes.h:208
UINT64 Rflags
Definition DataTypes.h:215
BYTE InstructionBytesOnRip[MAXIMUM_INSTR_SIZE]
Definition DataTypes.h:216
BOOLEAN IsProcessorOn32BitMode
Definition DataTypes.h:209
DEBUGGEE_PAUSING_REASON PausingReason
Definition DataTypes.h:211
UINT64 EventTag
Definition DataTypes.h:213
ULONG CurrentCore
Definition DataTypes.h:212
BOOLEAN IgnoreDisassembling
Definition DataTypes.h:210
VMM_CALLBACK_EVENT_CALLING_STAGE_TYPE EventCallingStage
Definition DataTypes.h:214
The structure of message packet in HyperDbg.
Definition DataTypes.h:268
UINT32 OperationCode
Definition DataTypes.h:269
CHAR Message[PacketChunkSize]
Definition DataTypes.h:270
Register Descriptor Structure to use in r command.
Definition RequestStructures.h:1156
Register Descriptor Structure to write on registers.
Definition RequestStructures.h:1171
The structure of result of search packet in HyperDbg.
Definition RequestStructures.h:1142
UINT32 CountOfResults
Definition RequestStructures.h:1143
UINT32 Result
Definition RequestStructures.h:1144
The structure of script packet in HyperDbg.
Definition RequestStructures.h:1122
BOOLEAN IsFormat
Definition RequestStructures.h:1125
UINT32 Result
Definition RequestStructures.h:1126
request that shows, symbol reload process is finished
Definition Symbols.h:89
UINT64 KernelStatus
Definition Symbols.h:90
request for callstack frames
Definition RequestStructures.h:789
UINT32 KernelStatus
Definition RequestStructures.h:791
UINT32 FrameCount
Definition RequestStructures.h:794
BOOLEAN Is32Bit
Definition RequestStructures.h:790
DEBUGGER_CALLSTACK_DISPLAY_METHOD DisplayMethod
Definition RequestStructures.h:792
request for test query buffers
Definition RequestStructures.h:333
UINT32 KernelStatus
Definition RequestStructures.h:336
DEBUGGER_TEST_QUERY_STATE RequestType
Definition RequestStructures.h:334
request for edit virtual and physical memory
Definition RequestStructures.h:482
Status of register buffers.
Definition Events.h:423
request for flushing buffers
Definition RequestStructures.h:294
UINT32 CountOfMessagesThatSetAsReadFromVmxRoot
Definition RequestStructures.h:296
UINT32 CountOfMessagesThatSetAsReadFromVmxNonRoot
Definition RequestStructures.h:297
UINT32 KernelStatus
Definition RequestStructures.h:295
request for modifying events (enable/disable/clear)
Definition Events.h:242
DEBUGGER_MODIFY_EVENTS_TYPE TypeOfAction
Definition Events.h:246
BOOLEAN IsEnabled
Definition Events.h:247
UINT64 KernelStatus
Definition Events.h:244
UINT64 Tag
Definition Events.h:243
requests for the '.pagein' command
Definition RequestStructures.h:73
UINT32 KernelStatus
Definition RequestStructures.h:78
request to make this computer to a debuggee
Definition RequestStructures.h:582
UINT64 KernelBaseAddress
Definition RequestStructures.h:585
CHAR OsName[MAXIMUM_CHARACTER_FOR_OS_NAME]
Definition RequestStructures.h:587
request for reading virtual and physical memory
Definition RequestStructures.h:266
request for !pte command
Definition RequestStructures.h:22
UINT64 VirtualAddress
Definition RequestStructures.h:23
UINT32 KernelStatus
Definition RequestStructures.h:38
request for performing a short-circuiting event
Definition Events.h:256
BOOLEAN IsShortCircuiting
Definition Events.h:258
UINT64 KernelStatus
Definition Events.h:257
The structure for saving the callstack frame of one parameter.
Definition RequestStructures.h:761
request to add new symbol detail or update a previous symbol table entry
Definition Symbols.h:73
MODULE_SYMBOL_DETAIL SymbolDetailPacket
Definition Symbols.h:76
requests for !va2pa and !pa2va commands
Definition RequestStructures.h:54
BOOLEAN IsVirtual2Physical
Definition RequestStructures.h:58
UINT32 KernelStatus
Definition RequestStructures.h:59
UINT64 PhysicalAddress
Definition RequestStructures.h:56
UINT64 VirtualAddress
Definition RequestStructures.h:55
BOOLEAN SymbolBuildAndUpdateSymbolTable(PMODULE_SYMBOL_DETAIL SymbolDetail)
Allocate (build) and update the symbol table whenever a debuggee is attached on the debugger mode.
Definition symbol.cpp:940
VOID SymbolInitialReload()
Initial load of symbols (for previously download symbols)
Definition symbol.cpp:34
VOID CommandTrackHandleReceivedInstructions(unsigned char *BufferToDisassemble, UINT32 BuffLength, BOOLEAN Isx86_64, UINT64 RipAddress)
Handle received 'call' or 'ret'.
Definition track.cpp:211