!smi (trigger and show System Management Interrupt functionalities)
Description of '!smi' command in HyperDbg.
Previous!idt (show Interrupt Descriptor Table entries)Next!apic (dump local APIC entries in XAPIC and X2APIC modes)
Last updated
Description of '!smi' command in HyperDbg.
!smi
!smi [Function (string)]
Triggers and shows functionalities related to System Management Interrupts (SMIs).
[Function (string)]
The target functionality.
count
Number of SMIs triggered in the target system
trigger
Triggers a power SMI
The following command triggers a power SMI (using APM I/O Decode Registers).
HyperDbg> !smi trigger
power SMI triggered successfully (you can use '!smi count' to view the number of executed SMIs)The following example shows the number of SMIs that are already executed in the target system.
To perform SMI-related functionalities, you need to use the following function in libhyperdbg:
Starting from v0.15, this command was added to the HyperDbg debugger.
HyperDbg reads the number of SMIs from MSR_SMI_COUNT MSR (0x34) and triggers SMIs using APM I/O Decode Registers. For more information, please refer to this post.
This command is guaranteed to keep debuggee in a halt state (in Debugger Mode); thus, nothing will change during its execution.
None
None
Last updated
HyperDbg> !smi count
SMI count: 0x153eBOOLEAN
hyperdbg_u_perform_smi_operation(SMI_OPERATION_PACKETS * SmiOperation);