For the complete documentation index, see llms.txt. This page is also available as Markdown.

ucpuid (execute CPUID instruction in debuggee)

Description of the 'ucpuid' command in HyperDbg.

Command

ucpuid

Syntax

ucpuid [Function (hex)] [SubFunction (hex)]

Description

Executes the CPUID instruction on the target debuggee and displays the structured results.

This command executes CPUID in the target debuggee (not the debugger). In local debugging mode, the debuggee and the debugger are the same machine, so the results reflect the local processor.

Parameters

[Function (hex)]

The CPUID leaf (i.e., the value placed in EAX before executing the CPUID instruction).

[SubFunction (hex)] (optional)

The CPUID sub-leaf (i.e., the value placed in ECX before executing the CPUID instruction). If not specified, defaults to 0.

Use ucpuid 0 to see the maximum supported basic CPUID leaf.

Use ucpuid 0x80000000 to see the maximum supported extended CPUID leaf.

Examples

The following example shows the result of CPUID with EAX=0 (vendor and maximum basic leaf).

The following example shows the result of CPUID with EAX=0x80000000 (maximum supported extended leaf).

The following example shows the result of CPUID with EAX=1 (version and feature information).

The following example uses a sub-leaf. For example, CPUID leaf 4 with sub-leaf 2.

SDK

To execute the CPUID instruction in the target debuggee, use the following function in libhyperdbg:

Remarks

Starting from HyperDbg v0.23, this command is available.

This command is guaranteed to keep debuggee in a halt state (in Debugger Mode); thus, nothing will change during its execution.

Requirements

None

cpu (check cpu supported technologies)

!cpuid (hook CPUID instruction execution)

Last updated