Valid HTML 4.01 Transitional Valid CSS Valid SVG 1.0

Me, myself & IT

CPUID Enumerator and Decoder

Purpose

The command line alias console program CPUPRINT.EXE for Microsoft® Windows® NT decodes and prints the information gathered from the processor’s CPUID and XGETBV instructions.
CPUPRINT.LOG and CPUPRINT.TXT show typical outputs for Intel® Core processors; CPUPRINT.AMD shows typical output for an AMD® Athlon processor.

Note: CPUPRINT.EXE enumerates the processor capabilities alias features IBRS, STIBP, IBPB, L1D_FLUSH and SSBD as well as the presence of the IA32_ARCH_CAPABILITIES and IA32_FLUSH_CMD model specific registers, introduced by AMD and Intel with firmware alias microcode updates to fix the vulnerabilities CVE-2017-5715 alias Branch Target Injection, CVE-2017-5753 alias Bounds Check Bypass, CVE-2017-5754 alias Rogue Data Cache Load, CVE-2018-3639 alias Speculative Store Bypass, CVE-2018-3640 alias Rogue System Register Read, CVE-2018-3693 alias Bounds Check Bypass Store, and CVE-2018-3615, CVE-2018-3620 plus CVE-2018-3646 alias L1 Termination Fault, better known by their nicknames Meltdown, Spectre, Spectre-NG and Foreshadow.
It also enumerates the processor capabilities alias features PCID, introduced in first generation Intel Core processors with Westmere microarchitecture, and INVPCID, introduced in fourth generation Intel Core processors with Haswell microarchitecture, both available only in long mode, i.e. to 64-bit operating systems, which are necessary to reduce the performance impact of the fix for CVE-2017-5754 alias Meltdown.

CPUPRINT.NEW shows the output for an Intel® Core i7-7500U processor with microcode update applied and all features present;
CPUPRINT.KBL shows the output for an Intel® Core i5-7400U processor with microcode update applied and all features present, running under Microsoft Hyper-V.

Note: when started per double-click, i.e. in its own console window, CPUPRINT.EXE waits for a keypress before it exits and its console window closes; it beeps once and flashes the title bar of its console window to indicate this wait state.

Specification

CPUPRINT.EXE supports multiple specifications of (real and virtualised) x86 and x64 processors from several vendors: AMD logo
AMD64 Architecture Programmer’s Manual Volume 3: General Purpose and System Instructions
Revision 3.26, May 2018
AMD64 Technology Indirect Branch Control Extension
Revision 4.10.18, April 2018
AMD64 Speculative Store Bypass Disable
Revision 5.21.18, May 2018
AMD Geode LX Processors Data Book
February 2009
Intel logo
Intel® 64 and IA-32 Architectures Software Developer’s Manuals
Revision 067, May 2018
Intel® Architecture Instruction Set Extensions and Future Features Programming Reference
Revision 034, May 2018
Intel® Software ISA Extensions
October 2017
Speculative Execution Side Channel Mitigations
Revision 2.0, May 2018
Intel® Architecture Memory Encryption Technologies Specification
Revision 1.1, December 2017
Control-flow Enforcement Technology Preview
Revision 2.0, June 2017
Intel® Itanium® Architecture Software Developer’s Manual
Revision 2.3, May 2010
Microsoft logo
Microsoft Hypervisor Top Level Functional Specification
Version 5.0c, July 2018 (which is but incomplete)
VIA logo
VIA C7-M Processor Datasheet
Revision 2.50, May 2008
VIA Eden Processor Datasheet
Revision 1.70, January 2006
VIA PadLock Programming Guide
August 2005
VIA Eden ESP Processor Datasheet
Revision 1.79, October 2004
VIA C3 Nehemiah Processor Datasheet
Revision 1.13, September 2004
VIA Antaur Processor Datasheet
July 2003

Implementation and Build Details

CPUPRINT.EXE is a pure Win32 binary executable, written from scratch in ANSI C, built without the MSVCRT libraries, with the Platform SDK for Windows Server 2003 R2 Microsoft Visual C++ Compiler 2010 SP1 from update 2519277, for use on Windows XP and newer versions of Windows NT as well as Windows PE.

CPUPRINT.EXE is available for the I386 alias x86 and AMD64 alias x64 processor architectures of Windows NT.
Note: on the IA64 processor architecture, the CPUID instruction is supported in the emulated I386 alias x86 execution environment only!

Note: CPUPRINT.EXE is neither based on other outdated tools like cpuid, cpuid or cpuid nor related to any of them!

Authenticity and Integrity

CPUPRINT.EXE is digitally signed using an X.509 certificate issued by WEB.DE TrustCenter E-Mail Certification Authority.
Serial number of the certificate
73780985
0x0465CEF9
Fingerprint of the certificate
MD5: 33 33 6e 1d 26 18 a7 c2 be 87 11 68 05 2c 70 09
SHA-1: 8c 5b 75 21 40 41 77 ac 54 13 13 02 06 6b b0 69 10 2e 83 0e
-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA6ipnm9vAs63w+TM+9UcG1yQ8CRIxMz/tTXry9MCbeHpkiM/qdPaRWlwVTW2j
PhC81xwIPZXgE1FE4DgE1eImb33DG2YfEBY/ARpMaGUnme+85WmExWWc/YMUAaHOMYQ3TQDX
0V/7yuhfa9Uc29ljtQ2AB0MjhXTJvGguvZZTI5A3rcN4+AKwmETdYH+8OQKMU2s+2H9CVfaD
waX0aj9CeibGNooLTgDchzCBIC5J47qHned/3ZqnMDjYCv3Yc1HNgcbM+ZKzPoD8jShb/ptI
wWPo9s00KEs9ti68RsmejqKovAmdLSzFLGARbue2uiqs4piJkxI0LS5+NTTPyZjsSwIDAQAB
-----END RSA PUBLIC KEY-----
Download and install the CA and root X.509 certificates of WEB.DE to validate and verify the digital signature.

Note: due to its counter signature alias timestamp the digital signature remains valid past the X.509 certificates expiration date!

Contact

If you miss anything here, have additions, comments, corrections, criticism or questions, want to give feedback, hints or tipps, report broken links, bugs, errors, inaccuracies, omissions, vulnerabilities or weaknesses, …:
don’t hesitate to contact me and feel free to ask, comment, criticise, flame, notify or report!

Use the X.509 certificate to send S/MIME encrypted mail.

Notes: I dislike HTML (and even weirder formats too) in email, I prefer to receive plain text.
I also expect to see your full (real) name as sender, not your nickname!
Emails in weird formats and without a proper sender name are likely to be discarded.
I abhor top posts and expect inline quotes in replies.

Terms and Conditions

By using this site, you signify your agreement to these terms and conditions. If you do not agree to these terms and conditions, do not use this site!

Data Protection Declaration

This web page records no data and sets no cookies.

The service provider for *.homepage.t-online.de, Deutsche Telekom AG,


Copyright © 1995–2018 • Stefan Kanthak • <‍stefan‍.‍kanthak‍@‍nexgo‍.‍de‍>