t (step-in)
Description of the 't' command in HyperDbg.
Command
t
tr
Syntax
t
t [Count (hex)]
tr
tr [Count (hex)]
Description
Executes a single instruction (step-in) and optionally displays the resulting values of all registers and flags.
The difference between this command and the 'i' command is that, in the 'i' command, no other cores and other threads find a chance to be executed during the stepping process; the system is fully halted, and only the current core will execute just one instruction and halts again. However, in this command, all the threads and cores are continued until an instruction in the target thread is executed. This command won't follow the execution between different rings.
Parameters
[Count (hex)] (optional)
Count of step(s), or how many times perform the stepping operation. If you don't set this argument, then by default, the Count is 1
.
Examples
If you want to step-in one instruction.
If you want to step-in one instruction and view the registers.
If you want to step-in for 5
instructions.
IOCTL
This commands works over serial by sending the serial packets to the remote computer.
First of all, you should fill the following structure, set the StepType
to the type of step that you want to perform (e.g., step-in, step-over, and instrumentation step-in), and if it's a step-over (only step-over), then if the currently executing instruction is a call instruction, set the IsCurrentInstructionACall
to TRUE
and also set the length of the current call instruction (if it's a call instruction) to CallLength
, so you can hint the debuggee to find the next instruction. In step-over and instrumentation step-over, just set the StepType
and set all the other members to null.
StepType
can be chosen from one of the following types.
The next step is sending the above structure to the debuggee when debuggee is paused and waiting for new command on vmx-root mode.
You should send the above structure with DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION_ON_VMX_ROOT_MODE_STEP
as RequestedAction
and DEBUGGER_REMOTE_PACKET_TYPE_DEBUGGER_TO_DEBUGGEE_EXECUTE_ON_VMX_ROOT
as PacketType
.
In return, the debuggee sends a pause packet with the following type.
The following function is responsible for sending breakpoint buffers in the debugger.
Remarks
This command will set a trap flag in debuggee and continue all the cores. After executing one instruction, it halts the debuggee again.
If the currently executing instruction is a call instruction, it will follow and enter the call instruction.
All cores and threads (except the currently executing thread) find a chance to be executed between each step in this type of stepping.
If you load symbols and you don't want to see function names, you turn addressconversion off in the 'settings' command.
Requirements
None
Related
Last updated