.formats (show number formats)
Description of the '.formats' command in HyperDbg.
Command
.formats
Syntax
.formats [Expression (string)]
Description
Evaluates an expression or register or a value in the current thread and process context and displays it in multiple numeric formats.
Parameters
[Expression (string)]
An expression, or a register, or a hex value to be evaluated.
Examples
Show 0x10
in different formats.
Show different formats of rcx
register.
Show different formats of rcx
register added to rbx
register.
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 ScriptBufferSize
and ScriptBufferPointer
to the values you got from the script engine interpreter, and leave the Result
and set the IsFormat
to true.
After that, you should move the interpreted buffer to the end of the structure (this structure is a header for the interpreted buffer).
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_RUN_SCRIPT
as RequestedAction
and DEBUGGER_REMOTE_PACKET_TYPE_DEBUGGER_TO_DEBUGGEE_EXECUTE_ON_VMX_ROOT
as PacketType
.
In return, the debuggee sends two packets back to the debugger. The first packet type is:
This packet should be interpreted based on the following structure:
The value should be passed to the following function to illustrate different formats.
If the Result
is DEBUGEER_OPERATION_WAS_SUCCESSFULL
, then the operation was successful. Otherwise, the returned result is an error.
After that, the debuggee sends the above structure with the following type.
In the returned structure, the Result
is filled by the kernel.
If the Result
is DEBUGEER_OPERATION_WAS_SUCCESSFULL
, then the operation was successful. Otherwise, the returned result is an error.
The following function is responsible for sending script buffers in the debugger.
Remarks
This command is guaranteed to keep debuggee in a halt state (in Debugger Mode); thus, nothing will change during its execution.
Requirements
None
Related
None
Last updated