!smi (trigger and show System Management Interrupt functionalities)

Description of '!smi' command in HyperDbg.

!smi

Syntax

!smi [Function (string)]

Description

Triggers and shows functionalities related to System Management Interrupts (SMIs).

Parameters

[Function (string)]

The target functionality.

Function
Description

count

Number of SMIs triggered in the target system

trigger

Triggers a power SMI

Examples

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.

HyperDbg> !smi count
SMI count: 0x153e

SDK

To perform SMI-related functionalities, you need to use the following function in libhyperdbg:

BOOLEAN
hyperdbg_u_perform_smi_operation(SMI_OPERATION_PACKETS * SmiOperation);

Remarks

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.

Requirements

None

None

Last updated