consoleprogram
CPUPRINT.EXE
for
Microsoft®
Windows® NT decodes and prints the
information gathered from the processor’s
CPUID
and XGETBV
instructions.
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 2010 in first generation Intel Core
processors with Westmere
microarchitecture, and
INVPCID,
introduced 2013 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
.
Note: when started in its own console
window, for example per double-click, 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.
CPUPRINT.EEE
shows typical output for an
Intel® Atom™
processor.
CPUPRINT.LOG
and
CPUPRINT.TXT
show typical outputs for
Intel® Core™
processors.
CPUPRINT.AMD
shows typical output for an
AMD® Athlon™
processor.
CPUPRINT.ZEN
shows the output for an
AMD® Ryzen™7 2700X
processor.
CPUPRINT.ZEN2
shows the output for an
AMD® Ryzen™5 3600
processor.
CPUPRINT.EPYC
shows the output for an
AMD® EPYC™ 7713
processor.
CPUPRINT.EXC
shows the output for an
AMD® A4-9125 Radeon™ R3
processor with microcode update applied.
CPUPRINT.CFL
shows the output for an
Intel® Core™ i5-8400
Coffee Lake
processor with microcode update applied.
CPUPRINT.NEW
shows the output for an
Intel® Core™ i7-7500U
processor with microcode update applied.
CPUPRINT.ICL
shows the output for an
Intel® Core™ i5-1035G1
Ice Lake
processor with microcode update applied.
CPUPRINT.HVP
shows the output for the same processor running under
Microsoft Hyper-V, which but exhibits significant
differences to the previous output.
CPUPRINT.KVM
shows the output for an
Intel® Xeon® Platinum 8124M
processor running under Linux’
KVM.
CPUPRINT.EXE
supports multiple specifications of (real
and virtualised) x86 and x64 processors
from several vendors:
CPUPRINT.EXE
is a pure Win32
binary executable, written from scratch in
ANSI C,
built with the 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 (abandoned or outdated) tools like
cpuid,
cpuid,
cpuid
or
CPUID explorer part 1
and
CPUID explorer part 2
nor related to any of them!
RAWCPUID.COM
from the source
presented below that demonstrates the enumerator, but not the
decoder, and execute it.
Create the text file RAWCPUID.C
with the following
content in an arbitrary, preferable empty directory:
// Copyright © 2004-2022, Stefan Kanthak <stefan.kanthak@nexgo.de>
// * The software is provided "as is" without any warranty, neither express
// nor implied.
// * In no event will the author be held liable for any damage(s) arising
// from the use of the software.
// * Redistribution of the software is allowed only in unmodified form.
// * Permission is granted to use the software solely for personal private
// and non-commercial purposes.
// * An individuals use of the software in his or her capacity or function
// as an agent, (independent) contractor, employee, member or officer of
// a business, corporation or organization (commercial or non-commercial)
// does not qualify as personal private and non-commercial purpose.
// * Without written approval from the author the software must not be used
// for a business, for commercial, corporate, governmental, military or
// organizational purposes of any kind, or in a commercial, corporate,
// governmental, military or organizational environment of any kind.
#define STRICT
#undef UNICODE
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
__declspec(safebuffers)
BOOL PrintFormat(HANDLE hOutput, LPCSTR lpFormat, ...)
{
CHAR szBuffer[1025];
DWORD dwBuffer;
DWORD dwOutput;
va_list vaInserts;
va_start(vaInserts, lpFormat);
dwBuffer = wvsprintf(szBuffer, lpFormat, vaInserts);
va_end(vaInserts);
if (dwBuffer == 0)
return FALSE;
#ifdef UNICODE
if (!WriteConsole(hOutput, szBuffer, dwBuffer, &dwOutput, NULL))
#else
if (!WriteFile(hOutput, szBuffer, dwBuffer, &dwOutput, (LPOVERLAPPED) NULL))
#endif
return FALSE;
return dwOutput == dwBuffer;
}
__declspec(noreturn)
VOID WINAPI mainCRTStartup(VOID)
{
union
{
DWORD dw[4]; // EAX, EBX, ECX, EDX
WORD w[8];
BYTE b[16];
} CPUInfo, Default;
#ifndef _WIN64
BOOL bWoW64;
#endif
DWORD dwLeaf;
DWORD dwHigh;
DWORD dwSubLeaf;
DWORD dwSubHigh;
DWORD dwSubMask;
DWORD dwError = ERROR_SUCCESS;
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
if (hOutput == INVALID_HANDLE_VALUE)
dwError = GetLastError();
else
{
#ifndef _WIN64
if (!IsWow64Process(GetCurrentProcess(), &bWoW64))
PrintFormat(hOutput,
"IsWow64Process() returned error %lu\n",
dwError = GetLastError());
else
if (bWoW64)
PrintFormat(hOutput,
"CAVEAT: some flags differ in 32-bit mode from native 64-bit mode!\n");
#endif
if (SetThreadIdealProcessor(GetCurrentThread(), 0) == -1)
PrintFormat(hOutput,
"SetThreadIdealProcessor() returned error %lu\n",
dwError = GetLastError());
PrintFormat(hOutput,
"Leaf, SubLeaf: EAX EBX ECX EDX\n");
__cpuid(CPUInfo.dw, dwLeaf = 0x00000000);
for (dwHigh = CPUInfo.dw[0]; dwLeaf <= dwHigh; __cpuid(CPUInfo.dw, ++dwLeaf))
{
if ((CPUInfo.dw[0] == 0)
&& (CPUInfo.dw[1] == 0)
&& (CPUInfo.dw[2] == 0)
&& (CPUInfo.dw[3] == 0))
continue;
switch (dwLeaf)
{
case 0x00000004: // Deterministic Cache Parameters
for (dwSubLeaf = 0; (CPUInfo.dw[0] & 0x0000001F) != 0; __cpuidex(CPUInfo.dw, 0x00000004, ++dwSubLeaf))
PrintFormat(hOutput,
"0x00000004, 0x%08X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwSubLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
break;
case 0x00000007: // Structured Extended Feature Flags Enumeration
case 0x00000014: // Processor Trace Enumeration
case 0x00000017: // System-On-Chip Vendor Attribute Enumeration
case 0x00000018: // Deterministic Address Translation Parameters Enumeration
case 0x0000001D: // TILE Information Enumeration
case 0x00000020: // Processor History Reset Enumeration
// case 0x00000021: // Intel Trust Domain Extensions Enumeration (NEVER SHIPPED)
PrintFormat(hOutput,
"0x%08X, 0x00000000: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
for (dwSubHigh = CPUInfo.dw[0], dwSubLeaf = 1; dwSubLeaf <= dwSubHigh; dwSubLeaf++)
{
__cpuidex(CPUInfo.dw, dwLeaf, dwSubLeaf);
PrintFormat(hOutput,
"0x%08X, 0x%08X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwLeaf, dwSubLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
}
break;
case 0x0000000B: // Extended Topology Enumeration
case 0x0000001F: // V2 Extended Topology Enumeration
#if 0
for (dwSubLeaf = 0; CPUInfo.w[2] != 0; __cpuidex(CPUInfo.dw, dwLeaf, ++dwSubLeaf))
#else
for (dwSubLeaf = 0; CPUInfo.b[9] != 0; __cpuidex(CPUInfo.dw, dwLeaf, ++dwSubLeaf))
#endif
PrintFormat(hOutput,
"0x%08X, 0x%08X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwLeaf, dwSubLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
break;
case 0x0000000D: // Processor Extended State Enumeration
PrintFormat(hOutput,
"0x0000000D, 0x00000000: 0x%08X 0x%08X 0x%08X 0x%08X\n",
CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
__cpuidex(CPUInfo.dw, 0x0000000D, 0x00000001);
if ((CPUInfo.dw[0] != 0)
|| (CPUInfo.dw[1] != 0)
|| (CPUInfo.dw[2] != 0)
|| (CPUInfo.dw[3] != 0))
PrintFormat(hOutput,
"0x0000000D, 0x00000001: 0x%08X 0x%08X 0x%08X 0x%08X\n",
CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
__cpuid(CPUInfo.dw, 0x0000000D);
for (dwSubMask = CPUInfo.dw[0] & 0xFFFFFFFC; _BitScanForward(&dwSubLeaf, dwSubMask); dwSubMask &= dwSubMask - 1)
{
__cpuidex(CPUInfo.dw, 0x0000000D, dwSubLeaf);
if ((CPUInfo.dw[0] == 0)
&& (CPUInfo.dw[1] == 0)
&& (CPUInfo.dw[2] == 0)
&& (CPUInfo.dw[3] == 0))
continue;
PrintFormat(hOutput,
"0x0000000D, 0x%08X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwSubLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
}
__cpuid(CPUInfo.dw, 0x0000000D);
for (dwSubMask = CPUInfo.dw[3]; _BitScanForward(&dwSubLeaf, dwSubMask); dwSubMask &= dwSubMask - 1)
{
dwSubLeaf += 32;
__cpuidex(CPUInfo.dw, 0x0000000D, dwSubLeaf);
if ((CPUInfo.dw[0] == 0)
&& (CPUInfo.dw[1] == 0)
&& (CPUInfo.dw[2] == 0)
&& (CPUInfo.dw[3] == 0))
continue;
PrintFormat(hOutput,
"0x0000000D, 0x%08X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwSubLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
}
break;
case 0x0000000F: // Platform Quality of Service Monitoring Enumeration
// Resource Director Technology Monitoring Enumeration
PrintFormat(hOutput,
"0x0000000F, 0x00000000: 0x%08X 0x%08X 0x%08X 0x%08X\n",
CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
for (dwSubMask = CPUInfo.dw[3] & 0xFFFFFFFE; _BitScanForward(&dwSubLeaf, dwSubMask); dwSubMask &= dwSubMask - 1)
{
__cpuidex(CPUInfo.dw, 0x0000000F, dwSubLeaf);
PrintFormat(hOutput,
"0x0000000F, 0x%08X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwSubLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
}
break;
case 0x00000010: // Platform Quality of Service Enforcement Enumeration
// Resource Director Technology Allocation Enumeration
PrintFormat(hOutput,
"0x00000010, 0x00000000: 0x%08X 0x%08X 0x%08X 0x%08X\n",
CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
for (dwSubMask = CPUInfo.dw[1] & 0xFFFFFFFE; _BitScanForward(&dwSubLeaf, dwSubMask); dwSubMask &= dwSubMask - 1)
{
__cpuidex(CPUInfo.dw, 0x00000010, dwSubLeaf);
PrintFormat(hOutput,
"0x00000010, 0x%08X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwSubLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
}
break;
case 0x00000012: // Software Guard Extensions Enumeration
PrintFormat(hOutput,
"0x00000012, 0x00000000: 0x%08X 0x%08X 0x%08X 0x%08X\n",
CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
for (dwSubLeaf = 1; dwSubLeaf < 33; dwSubLeaf++)
{
__cpuidex(CPUInfo.dw, 0x00000012, dwSubLeaf);
if ((CPUInfo.dw[0] == 0)
&& (CPUInfo.dw[1] == 0)
&& (CPUInfo.dw[2] == 0)
&& (CPUInfo.dw[3] == 0))
continue;
PrintFormat(hOutput,
"0x00000012, 0x%08X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwSubLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
}
break;
case 0x0000001B: // PCONFIG Information Enumeration
for (dwSubLeaf = 0; (CPUInfo.dw[0] & 0xFFF) != 0; __cpuidex(CPUInfo.dw, 0x0000001B, ++dwSubLeaf))
PrintFormat(hOutput,
"0x0000001B, 0x%08X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwSubLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
break;
#if 0
case 0x00000000: // Maximum Basic Leaf and Vendor Identification
case 0x00000001: // Basic Processor Version and Features
case 0x00000002: // Cache and Translation Lookaside Buffer Information
case 0x00000003: // Processor Serial Number
case 0x00000005: // MONITOR/MWAIT Information
case 0x00000006: // Thermal and Power Management
case 0x00000008: // RESERVED
case 0x00000009: // Direct Cache Access Information
case 0x0000000A: // Architectural Performance Monitoring
case 0x0000000C: // RESERVED
case 0x0000000E: // RESERVED
case 0x00000011: // UNUSED
case 0x00000013: // UNUSED
case 0x00000015: // Time Stamp Counter and Nominal Core Crystal Clock Information
case 0x00000016: // Processor Frequency Information Enumeration
case 0x00000019: // Key Locker Enumeration
case 0x0000001A: // Hybrid Enumeration
case 0x0000001C: // Architectural Last Branch Record Capabilities Enumeration
case 0x0000001E: // TMUL Information Enumeration
case 0x00000021: // INVALID
#endif
default:
PrintFormat(hOutput,
"0x%08X, 0x00000000: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
break;
}
}
__cpuid(Default.dw, dwHigh);
#ifdef XEON_PHI
__cpuid(CPUInfo.dw, dwLeaf = 0x20000000);
if ((CPUInfo.dw[0] != Default.dw[0])
|| (CPUInfo.dw[1] != Default.dw[1])
|| (CPUInfo.dw[2] != Default.dw[2])
|| (CPUInfo.dw[3] != Default.dw[3]))
for (dwHigh = CPUInfo.dw[0]; dwLeaf <= dwHigh; __cpuid(CPUInfo.dw, ++dwLeaf))
{
if ((CPUInfo.dw[0] == 0)
&& (CPUInfo.dw[1] == 0)
&& (CPUInfo.dw[2] == 0)
&& (CPUInfo.dw[3] == 0))
continue;
PrintFormat(hOutput,
"0x%08X, 0x00000000: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
}
#endif // XEON_PHI
__cpuid(CPUInfo.dw, dwLeaf = 0x40000000);
if ((CPUInfo.dw[0] != Default.dw[0])
|| (CPUInfo.dw[1] != Default.dw[1])
|| (CPUInfo.dw[2] != Default.dw[2])
|| (CPUInfo.dw[3] != Default.dw[3]))
for (dwHigh = CPUInfo.dw[0]; dwLeaf <= dwHigh; __cpuid(CPUInfo.dw, ++dwLeaf))
{
if ((CPUInfo.dw[0] == 0)
&& (CPUInfo.dw[1] == 0)
&& (CPUInfo.dw[2] == 0)
&& (CPUInfo.dw[3] == 0))
continue;
PrintFormat(hOutput,
"0x%08X, 0x00000000: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
}
__cpuid(CPUInfo.dw, dwLeaf = 0x80000000);
if ((CPUInfo.dw[0] != Default.dw[0])
|| (CPUInfo.dw[1] != Default.dw[1])
|| (CPUInfo.dw[2] != Default.dw[2])
|| (CPUInfo.dw[3] != Default.dw[3]))
for (dwHigh = CPUInfo.dw[0]; dwLeaf <= dwHigh; __cpuid(CPUInfo.dw, ++dwLeaf))
{
if ((CPUInfo.dw[0] == 0)
&& (CPUInfo.dw[1] == 0)
&& (CPUInfo.dw[2] == 0)
&& (CPUInfo.dw[3] == 0))
continue;
switch (dwLeaf)
{
case 0x8000001D: // Cache Topology Information
for (dwSubLeaf = 0; (CPUInfo.dw[0] & 0x0000001F) != 0; __cpuidex(CPUInfo.dw, 0x8000001D, ++dwSubLeaf))
PrintFormat(hOutput,
"0x8000001D, 0x%08X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwSubLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
break;
case 0x80000020: // Bandwidth Enforcement Information
PrintFormat(hOutput,
"0x80000020, 0x00000000: 0x%08X 0x%08X 0x%08X 0x%08X\n",
CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
for (dwSubMask = CPUInfo.dw[1] & 0xFFFFFFFE; _BitScanForward(&dwSubLeaf, dwSubMask); dwSubMask &= dwSubMask - 1)
{
__cpuidex(CPUInfo.dw, 0x80000020, dwSubLeaf);
if ((CPUInfo.dw[0] == 0)
&& (CPUInfo.dw[1] == 0)
&& (CPUInfo.dw[2] == 0)
&& (CPUInfo.dw[3] == 0))
continue;
PrintFormat(hOutput,
"0x80000020, 0x%08X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwSubLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
}
break;
#if 0
case 0x80000000: // Maximum Extended Leaf and Vendor Identification
case 0x80000001: // Extended Processor Information and Features
case 0x80000002: // Processor Brand String, Part 1
case 0x80000003: // Processor Brand String, Part 2
case 0x80000004: // Processor Brand String, Part 3
case 0x80000005: // L1 Cache and Translation Lookaside Buffer Configuration
case 0x80000006: // L2 Cache and Translation Lookaside Buffer Configuration
case 0x80000007: // Thermal and Power Management Capabilities
case 0x80000008: // Virtual and Physical Address Sizes
case 0x8000000A: // Secure Virtual Machine Information
case 0x80000019: // Translation Lookaside Buffer Configuration
case 0x8000001A: // Performance Optimization Identifiers
case 0x8000001B: // Instruction Based Sampling Identifiers
case 0x8000001C: // Light-Weight Profiling Capabilities
case 0x8000001E: // Extended Advanced Programmable Interrupt Controller Information
case 0x8000001F: // Secure Memory Encryption and Secure Encrypted Virtualization Information
case 0x80000021: // Extended Feature Identification 2
case 0x80000022: // Extended Performance Monitoring and Debug
#endif
default:
PrintFormat(hOutput,
"0x%08X, 0x00000000: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
}
}
__cpuid(CPUInfo.dw, dwLeaf = 0xC0000000);
if ((CPUInfo.dw[0] != Default.dw[0])
|| (CPUInfo.dw[1] != Default.dw[1])
|| (CPUInfo.dw[2] != Default.dw[2])
|| (CPUInfo.dw[3] != Default.dw[3]))
for (dwHigh = CPUInfo.dw[0]; dwLeaf <= dwHigh; __cpuid(CPUInfo.dw, ++dwLeaf))
{
if ((CPUInfo.dw[0] == 0)
&& (CPUInfo.dw[1] == 0)
&& (CPUInfo.dw[2] == 0)
&& (CPUInfo.dw[3] == 0))
continue;
PrintFormat(hOutput,
"0x%08X, 0x00000000: 0x%08X 0x%08X 0x%08X 0x%08X\n",
dwLeaf, CPUInfo.dw[0], CPUInfo.dw[1], CPUInfo.dw[2], CPUInfo.dw[3]);
}
}
ExitProcess(dwError);
}
Run the following four command lines to compile the source file
RAWCPUID.C
created in step 1., link the compiled
object file RAWCPUID.OBJ
and cleanup afterwards:
SET CL=/GA /GF /GS /Gw /Gy /O1 /Os /Oy /W4 /Zl SET LINK=/DEFAULTLIB:KERNEL32.LIB /DEFAULTLIB:USER32.LIB /DYNAMICBASE /ENTRY:mainCRTStartup /LARGEADDRESSAWARE /NOCOFFGRPINFO /NXCOMPAT /OSVERSION:5.1 /OUT:RAWCPUID.COM /RELEASE /SUBSYSTEM:CONSOLE,5.1 /SWAPRUN:CD,NET /VERSION:0.815 CL.EXE RAWCPUID.C ERASE RAWCPUID.OBJ
For details and reference see the MSDN articles Compiler Options and Linker Options.
Note: if necessary, see the
MSDN article
Use the Microsoft C++ toolset from the command line
for an introduction.
Note: the command lines can be copied and pasted as block into a Command Processor window!
Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. RAWCPUID.C Microsoft (R) Incremental Linker Version 10.00.40219.386 Copyright (C) Microsoft Corporation. All rights reserved.
Create the text file RAWCPUID.TXT
with the following
content in an arbitrary, preferable empty directory:
4d 5a 90 00 01 00 00 00 04 00 00 00 ff ff 00 00 MZ..............
d0 00 00 00 43 00 00 00 40 00 00 00 00 00 00 00 ....C...@.......
00 00 00 00 19 57 04 27 00 00 00 00 00 00 00 00 .....W.'........
00 00 00 00 00 00 00 00 00 00 00 00 90 00 00 00 ................
43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 Copyright (C) 20
30 34 2d 32 30 32 32 2c 20 53 74 65 66 61 6e 20 04-2022, Stefan
4b 61 6e 74 68 61 6b 20 3c 73 74 65 66 61 6e 2e Kanthak <stefan.
6b 61 6e 74 68 61 6b 40 6e 65 78 67 6f 2e 64 65 kanthak@nexgo.de
3e 0a 24 0e 1f 33 d2 b4 09 cd 21 b8 01 4c cd 21 >.$..3....!..L.!
50 45 00 00 4c 01 03 00 56 4f 49 44 00 00 00 00 PE..L...VOID....
00 00 00 00 e0 00 02 0d 0b 01 0a 00 00 0a 00 00 ................
00 0c 00 00 00 00 00 00 60 10 00 00 00 10 00 00 ........`.......
00 20 00 00 00 00 40 00 00 10 00 00 00 02 00 00 . ....@.........
05 00 01 00 00 00 2f 03 05 00 01 00 00 00 00 00 ....../.........
00 40 00 00 00 02 00 00 94 03 01 00 03 00 40 85 .@............@.
00 00 10 00 00 10 00 00 00 00 10 00 00 10 00 00 ................
00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 ................
64 24 00 00 3c 00 00 00 00 00 00 00 00 00 00 00 d$..<...........
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 30 00 00 68 00 00 00 00 00 00 00 00 00 00 00 .0..h...........
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 20 00 00 2c 00 00 00 ......... ..,...
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 2e 63 6f 64 65 00 00 00 .........code...
e5 09 00 00 00 10 00 00 00 0a 00 00 00 02 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 60 ............ ..`
2e 63 6f 6e 73 74 00 00 82 05 00 00 00 20 00 00 .const....... ..
00 0a 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 40 00 00 40 2e 72 65 6c 6f 63 00 00 ....@..@.reloc..
68 00 00 00 00 30 00 00 00 02 00 00 00 12 00 00 h....0..........
00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 42 ............@..B
8b 4c 24 08 81 ec 08 04 00 00 56 8d 84 24 18 04 .L$.......V..$..
00 00 50 51 8d 54 24 10 52 ff 15 24 20 40 00 8b ..PQ.T$.R..$ @..
f0 85 f6 75 0a 33 c0 5e 81 c4 08 04 00 00 c3 8b ...u.3.^........
94 24 10 04 00 00 6a 00 8d 44 24 08 50 56 8d 4c .$....j..D$.PV.L
24 14 51 52 ff 15 00 20 40 00 85 c0 74 d7 33 c0 $.QR... @...t.3.
39 74 24 04 5e 0f 94 c0 81 c4 08 04 00 00 c3 cc 9t$.^...........
83 ec 38 55 57 33 ff 6a f5 89 7c 24 1c ff 15 1c ..8UW3.j..|$....
20 40 00 8b e8 83 fd ff 75 0f ff 15 18 20 40 00 @......u.... @.
89 44 24 18 e9 0c 09 00 00 56 8d 44 24 20 50 ff .D$......V.D$ P.
15 14 20 40 00 50 ff 15 10 20 40 00 8b 35 18 20 .. @.P... @..5.
40 00 85 c0 75 17 ff d6 50 68 3c 24 40 00 55 89 @...u...Ph<$@.U.
44 24 28 e8 48 ff ff ff 83 c4 0c eb 14 39 7c 24 D$(.H........9|$
20 74 0e 68 f8 23 40 00 55 e8 32 ff ff ff 83 c4 t.h.#@.U.2.....
08 57 ff 15 0c 20 40 00 50 ff 15 08 20 40 00 83 .W... @.P... @..
f8 ff 75 15 ff d6 50 68 c4 23 40 00 55 89 44 24 ..u...Ph.#@.U.D$
28 e8 0a ff ff ff 83 c4 0c 53 68 84 23 40 00 55 (........Sh.#@.U
e8 fb fe ff ff 33 c0 83 c4 08 33 c9 0f a2 8d 74 .....3....3....t
24 28 89 06 89 5e 04 89 4e 08 89 56 0c 8b 5c 24 $(...^..N..V..\$
28 89 7c 24 14 89 5c 24 1c eb 09 eb 03 8d 49 00 (.|$..\$......I.
8b 5c 24 28 8b 74 24 34 8b 44 24 30 8b 7c 24 2c .\$(.t$4.D$0.|$,
33 d2 3b da 75 10 3b fa 75 0c 3b c2 75 08 3b f2 3.;.u.;.u.;.u.;.
0f 84 e1 04 00 00 8b 4c 24 14 83 c1 fc 83 f9 1c .......L$.......
0f 87 ba 04 00 00 0f b6 89 c8 19 40 00 ff 24 8d ...........@..$.
a4 19 40 00 89 54 24 10 f6 c3 1f 0f 84 b6 04 00 ..@..T$.........
00 eb 0c 8b 74 24 34 8b 44 24 30 8b 7c 24 2c 8b ....t$4.D$0.|$,.
54 24 10 56 50 57 53 52 68 50 23 40 00 55 e8 5d T$.VPWSRhP#@.U.]
fe ff ff 8b 4c 24 2c 41 b8 04 00 00 00 89 4c 24 ....L$,A......L$
2c 0f a2 8d 74 24 44 89 06 89 5e 04 89 4e 08 89 ,...t$D...^..N..
56 0c 8b 5c 24 44 83 c4 1c f6 c3 1f 75 b5 e9 64 V..\$D......u..d
04 00 00 56 50 8b 44 24 1c 57 53 50 68 1c 23 40 ...VP.D$.WSPh.#@
00 55 e8 19 fe ff ff bf 01 00 00 00 83 c4 1c 89 .U..............
5c 24 18 89 7c 24 10 3b df 0f 82 38 04 00 00 8b \$..|$.;...8....
5c 24 14 8b c3 8b cf 0f a2 8b 7c 24 10 8d 74 24 \$........|$..t$
28 89 06 89 5e 04 8b 5c 24 14 89 4e 08 89 56 0c (...^..\$..N..V.
8b 4c 24 34 8b 54 24 30 8b 44 24 2c 51 8b 4c 24 .L$4.T$0.D$,Q.L$
2c 52 50 51 57 53 68 ec 22 40 00 55 e8 bf fd ff ,RPQWSh."@.U....
ff 47 83 c4 20 89 7c 24 10 3b 7c 24 18 76 b4 e9 .G.. .|$.;|$.v..
e3 03 00 00 89 54 24 10 3a e2 0f 84 d7 03 00 00 .....T$.:.......
eb 0c 8b 74 24 34 8b 7c 24 2c 8b 5c 24 28 8b 54 ...t$4.|$,.\$(.T
24 10 56 50 8b 44 24 1c 57 53 52 50 68 ec 22 40 $.VP.D$.WSRPh."@
00 55 e8 79 fd ff ff 8b 4c 24 30 8b 44 24 34 41 .U.y....L$0.D$4A
89 4c 24 30 0f a2 8d 74 24 48 89 06 89 5e 04 89 .L$0...t$H...^..
4e 08 89 56 0c 8b 44 24 50 83 c4 20 84 e4 75 b2 N..V..D$P.. ..u.
e9 82 03 00 00 56 50 57 53 68 b4 22 40 00 55 e8 .....VPWSh."@.U.
3c fd ff ff b8 0d 00 00 00 b9 01 00 00 00 0f a2 <...............
8d 74 24 40 89 06 89 5e 04 89 4e 08 89 56 0c 8b .t$@...^..N..V..
44 24 40 8b 4c 24 4c 8b 54 24 48 8b 74 24 44 83 D$@.L$L.T$H.t$D.
c4 18 85 c0 75 0c 85 f6 75 08 85 d2 75 04 85 c9 ....u...u...u...
74 12 51 52 56 50 68 7c 22 40 00 55 e8 ef fc ff t.QRVPh|"@.U....
ff 83 c4 18 33 c9 b8 0d 00 00 00 0f a2 8d 74 24 ....3.........t$
28 89 06 89 5e 04 89 4e 08 89 56 0c 8b 44 24 28 (...^..N..V..D$(
83 e0 fc 0f bc c8 89 44 24 18 89 4c 24 10 0f 84 .......D$..L$...
63 00 00 00 b8 0d 00 00 00 0f a2 8d 74 24 28 89 c...........t$(.
06 89 5e 04 89 4e 08 89 56 0c 8b 44 24 28 8b 4c ..^..N..V..D$(.L
24 34 8b 54 24 30 8b 74 24 2c 85 c0 75 0c 85 f6 $4.T$0.t$,..u...
75 08 85 d2 75 04 85 c9 74 17 51 8b 4c 24 14 52 u...u...t.Q.L$.R
56 50 51 68 48 22 40 00 55 e8 72 fc ff ff 83 c4 VPQhH"@.U.r.....
1c 8b 44 24 18 8d 50 ff 23 c2 0f bc c8 89 44 24 ..D$..P.#.....D$
18 89 4c 24 10 75 9d 33 c9 b8 0d 00 00 00 0f a2 ..L$.u.3........
8d 74 24 28 89 06 89 5e 04 89 4e 08 89 56 0c 8b .t$(...^..N..V..
44 24 34 0f bc c8 89 44 24 18 0f 84 67 02 00 00 D$4....D$...g...
83 c1 20 89 4c 24 10 b8 0d 00 00 00 0f a2 8d 74 .. .L$.........t
24 28 89 06 89 5e 04 89 4e 08 89 56 0c 8b 44 24 $(...^..N..V..D$
28 8b 4c 24 34 8b 54 24 30 8b 74 24 2c 85 c0 75 (.L$4.T$0.t$,..u
0c 85 f6 75 08 85 d2 75 04 85 c9 74 17 51 52 56 ...u...u...t.QRV
50 8b 44 24 20 50 68 48 22 40 00 55 e8 df fb ff P.D$ PhH"@.U....
ff 83 c4 1c 8b 44 24 18 8d 48 ff 23 c1 0f bc c8 .....D$..H.#....
89 44 24 18 75 9a e9 fc 01 00 00 56 50 57 53 68 .D$.u......VPWSh
10 22 40 00 55 e8 b6 fb ff ff 83 e6 fe 83 c4 18 ."@.U...........
0f bc ce 89 74 24 18 89 4c 24 10 0f 84 d6 01 00 ....t$..L$......
00 b8 0f 00 00 00 0f a2 8d 7c 24 28 89 07 89 5f .........|$(..._
04 89 4f 08 89 57 0c 8b 54 24 34 8b 44 24 30 8b ..O..W..T$4.D$0.
4c 24 2c 52 8b 54 24 2c 50 8b 44 24 18 51 52 50 L$,R.T$,P.D$.QRP
68 dc 21 40 00 55 e8 65 fb ff ff 8b 44 24 34 8d h.!@.U.e....D$4.
48 ff 23 c1 83 c4 1c 0f bc c8 89 44 24 18 89 4c H.#........D$..L
24 10 75 ad e9 7e 01 00 00 56 50 57 53 68 a4 21 $.u..~...VPWSh.!
40 00 55 e8 38 fb ff ff 83 e7 fe 83 c4 18 0f bc @.U.8...........
cf 89 7c 24 18 89 4c 24 10 0f 84 58 01 00 00 90 ..|$..L$...X....
b8 10 00 00 00 0f a2 8d 74 24 28 89 06 89 5e 04 ........t$(...^.
89 4e 08 89 56 0c 8b 54 24 34 8b 44 24 30 8b 4c .N..V..T$4.D$0.L
24 2c 52 8b 54 24 2c 50 8b 44 24 18 51 52 50 68 $,R.T$,P.D$.QRPh
70 21 40 00 55 e8 e6 fa ff ff 8b 44 24 34 8d 48 p!@.U......D$4.H
ff 23 c1 83 c4 1c 0f bc c8 89 44 24 18 89 4c 24 .#........D$..L$
10 75 ad e9 ff 00 00 00 56 50 57 53 68 38 21 40 .u......VPWSh8!@
00 55 e8 b9 fa ff ff bf 01 00 00 00 83 c4 18 89 .U..............
7c 24 10 b8 12 00 00 00 8b cf 0f a2 8d 74 24 28 |$...........t$(
89 06 89 5e 04 89 4e 08 89 56 0c 8b 44 24 28 8b ...^..N..V..D$(.
4c 24 34 8b 54 24 30 8b 74 24 2c 85 c0 75 0c 85 L$4.T$0.t$,..u..
f6 75 08 85 d2 75 04 85 c9 74 19 8b 7c 24 10 51 .u...u...t..|$.Q
52 56 50 57 68 04 21 40 00 55 e8 61 fa ff ff 83 RVPWh.!@.U.a....
c4 1c eb 04 8b 7c 24 10 47 89 7c 24 10 83 ff 21 .....|$.G.|$...!
72 a1 e9 80 00 00 00 89 54 24 10 f7 c3 ff 0f 00 r.......T$......
00 0f 84 70 00 00 00 eb 13 8d a4 24 00 00 00 00 ...p.......$....
8b 74 24 34 8b 44 24 30 8b 7c 24 2c 8b 54 24 10 .t$4.D$0.|$,.T$.
56 50 57 53 52 68 d0 20 40 00 55 e8 10 fa ff ff VPWSRh. @.U.....
8b 4c 24 2c 41 b8 1b 00 00 00 89 4c 24 2c 0f a2 .L$,A......L$,..
8d 74 24 44 89 06 89 5e 04 89 4e 08 89 56 0c 8b .t$D...^..N..V..
5c 24 44 83 c4 1c f7 c3 ff 0f 00 00 75 b2 eb 17 \$D.........u...
56 50 8b 44 24 1c 57 53 50 68 1c 23 40 00 55 e8 VP.D$.WSPh.#@.U.
cc f9 ff ff 83 c4 1c 8b 44 24 14 40 89 44 24 14 ........D$.@.D$.
33 c9 0f a2 8d 74 24 28 89 06 8b 44 24 1c 89 5e 3....t$(...D$..^
04 89 4e 08 89 56 0c 39 44 24 14 0f 86 cf fa ff ..N..V.9D$......
ff 33 c9 0f a2 8d 74 24 38 89 06 89 5e 04 89 4e .3....t$8...^..N
08 89 56 0c b8 00 00 00 40 33 c9 89 44 24 14 0f ..V.....@3..D$..
a2 8d 74 24 28 89 06 89 5e 04 89 4e 08 89 56 0c ..t$(...^..N..V.
8b 44 24 28 8b 4c 24 34 8b 54 24 30 8b 74 24 2c .D$(.L$4.T$0.t$,
3b 44 24 38 75 16 3b 74 24 3c 75 10 3b 54 24 40 ;D$8u.;t$<u.;T$@
75 0a 3b 4c 24 44 0f 84 68 00 00 00 89 44 24 1c u.;L$D..h....D$.
3d 00 00 00 40 0f 82 59 00 00 00 8b 7c 24 14 eb =...@..Y....|$..
10 8b 4c 24 34 8b 54 24 30 8b 74 24 2c 8b 44 24 ..L$4.T$0.t$,.D$
28 85 c0 75 0c 85 f6 75 08 85 d2 75 04 85 c9 74 (..u...u...u...t
13 51 52 56 50 57 68 1c 23 40 00 55 e8 ff f8 ff .QRVPWh.#@.U....
ff 83 c4 1c 47 33 c9 8b c7 0f a2 8d 74 24 28 89 ....G3......t$(.
06 89 5e 04 89 4e 08 89 7c 24 14 89 56 0c 3b 7c ..^..N..|$..V.;|
24 1c 76 ad b8 00 00 00 80 33 c9 89 44 24 14 0f $.v......3..D$..
a2 8d 74 24 28 89 06 89 5e 04 89 4e 08 89 56 0c ..t$(...^..N..V.
8b 44 24 28 8b 4c 24 34 8b 54 24 30 8b 74 24 2c .D$(.L$4.T$0.t$,
3b 44 24 38 75 16 3b 74 24 3c 75 10 3b 54 24 40 ;D$8u.;t$<u.;T$@
75 0a 3b 4c 24 44 0f 84 74 01 00 00 89 44 24 1c u.;L$D..t....D$.
3d 00 00 00 80 0f 82 65 01 00 00 8b 7c 24 14 eb =......e....|$..
10 8b 4c 24 34 8b 54 24 30 8b 74 24 2c 8b 44 24 ..L$4.T$0.t$,.D$
28 85 c0 75 10 85 f6 75 0c 85 d2 75 08 85 c9 0f (..u...u...u....
84 17 01 00 00 81 ff 1d 00 00 80 0f 84 aa 00 00 ................
00 51 52 56 50 81 ff 20 00 00 80 74 14 57 68 1c .QRVP.. ...t.Wh.
23 40 00 55 e8 37 f8 ff ff 83 c4 1c e9 eb 00 00 #@.U.7..........
00 68 98 20 40 00 55 e8 24 f8 ff ff 83 e6 fe 83 .h. @.U.$.......
c4 18 0f bc ce 89 74 24 18 89 4c 24 10 0f 84 c9 ......t$..L$....
00 00 00 b8 20 00 00 80 0f a2 8d 74 24 28 89 06 .... ......t$(..
89 5e 04 89 4e 08 89 56 0c 8b 44 24 28 8b 4c 24 .^..N..V..D$(.L$
34 8b 54 24 30 8b 74 24 2c 85 c0 75 0c 85 f6 75 4.T$0.t$,..u...u
08 85 d2 75 04 85 c9 74 17 51 8b 4c 24 14 52 56 ...u...t.Q.L$.RV
50 51 68 64 20 40 00 55 e8 c3 f7 ff ff 83 c4 1c PQhd @.U........
8b 44 24 18 8d 50 ff 23 c2 0f bc c8 89 44 24 18 .D$..P.#.....D$.
89 4c 24 10 75 9d e9 5d 00 00 00 33 db a8 1f 0f .L$.u..]...3....
84 57 00 00 00 eb 19 eb 07 8d a4 24 00 00 00 00 .W.........$....
8b 4c 24 34 8b 54 24 30 8b 74 24 2c 8b 5c 24 10 .L$4.T$0.t$,.\$.
51 52 56 50 53 68 30 20 40 00 55 e8 70 f7 ff ff QRVPSh0 @.U.p...
43 b8 1d 00 00 80 8b cb 89 5c 24 2c 0f a2 8d 74 C........\$,...t
24 44 89 06 89 5e 04 89 4e 08 89 56 0c 8b 44 24 $D...^..N..V..D$
44 83 c4 1c a8 1f 75 b8 8b 7c 24 14 47 33 c9 8b D.....u..|$.G3..
c7 0f a2 8d 74 24 28 89 06 89 5e 04 89 4e 08 89 ....t$(...^..N..
7c 24 14 89 56 0c 3b 7c 24 1c 0f 86 a1 fe ff ff |$..V.;|$.......
b8 00 00 00 c0 33 c9 89 44 24 14 0f a2 8d 74 24 .....3..D$....t$
28 89 06 89 5e 04 89 4e 08 89 56 0c 8b 44 24 28 (...^..N..V..D$(
8b 4c 24 34 8b 54 24 30 8b 74 24 2c 3b 44 24 38 .L$4.T$0.t$,;D$8
75 16 3b 74 24 3c 75 10 3b 54 24 40 75 0a 3b 4c u.;t$<u.;T$@u.;L
24 44 0f 84 6b 00 00 00 89 44 24 1c 3d 00 00 00 $D..k....D$.=...
c0 0f 82 5c 00 00 00 8b 7c 24 14 eb 13 8d 49 00 ...\....|$....I.
8b 4c 24 34 8b 54 24 30 8b 74 24 2c 8b 44 24 28 .L$4.T$0.t$,.D$(
85 c0 75 0c 85 f6 75 08 85 d2 75 04 85 c9 74 13 ..u...u...u...t.
51 52 56 50 57 68 1c 23 40 00 55 e8 90 f6 ff ff QRVPWh.#@.U.....
83 c4 1c 47 33 c9 8b c7 0f a2 8d 74 24 28 89 06 ...G3......t$(..
89 5e 04 89 4e 08 89 7c 24 14 89 56 0c 3b 7c 24 .^..N..|$..V.;|$
1c 76 ad 5b 5e 8b 44 24 18 50 ff 15 04 20 40 00 .v.[^.D$.P... @.
5f 5d 8b ff 74 11 40 00 d3 11 40 00 54 12 40 00 _]..t.@...@.T.@.
b5 12 40 00 3b 14 40 00 b9 14 40 00 38 15 40 00 ..@.;.@...@.8.@.
b7 15 40 00 20 16 40 00 00 08 08 01 08 08 08 02 ..@. .@.........
08 03 08 04 05 08 06 08 01 08 08 01 01 08 08 07 ................
08 01 08 02 01 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
cc 24 00 00 d8 24 00 00 e6 24 00 00 00 25 00 00 .$...$...$...%..
14 25 00 00 26 25 00 00 3a 25 00 00 4a 25 00 00 .%..&%..:%..J%..
00 00 00 00 68 25 00 00 00 00 00 00 00 00 00 00 ....h%..........
30 78 38 30 30 30 30 30 31 44 2c 20 30 78 25 30 0x8000001D, 0x%0
38 58 3a 20 30 78 25 30 38 58 20 30 78 25 30 38 8X: 0x%08X 0x%08
58 20 30 78 25 30 38 58 20 30 78 25 30 38 58 0a X 0x%08X 0x%08X.
00 00 00 00 30 78 38 30 30 30 30 30 32 30 2c 20 ....0x80000020,
30 78 25 30 38 58 3a 20 30 78 25 30 38 58 20 30 0x%08X: 0x%08X 0
78 25 30 38 58 20 30 78 25 30 38 58 20 30 78 25 x%08X 0x%08X 0x%
30 38 58 0a 00 00 00 00 30 78 38 30 30 30 30 30 08X.....0x800000
32 30 2c 20 30 78 30 30 30 30 30 30 30 30 3a 20 20, 0x00000000:
30 78 25 30 38 58 20 30 78 25 30 38 58 20 30 78 0x%08X 0x%08X 0x
25 30 38 58 20 30 78 25 30 38 58 0a 00 00 00 00 %08X 0x%08X.....
30 78 30 30 30 30 30 30 31 42 2c 20 30 78 25 30 0x0000001B, 0x%0
38 58 3a 20 30 78 25 30 38 58 20 30 78 25 30 38 8X: 0x%08X 0x%08
58 20 30 78 25 30 38 58 20 30 78 25 30 38 58 0a X 0x%08X 0x%08X.
00 00 00 00 30 78 30 30 30 30 30 30 31 32 2c 20 ....0x00000012,
30 78 25 30 38 58 3a 20 30 78 25 30 38 58 20 30 0x%08X: 0x%08X 0
78 25 30 38 58 20 30 78 25 30 38 58 20 30 78 25 x%08X 0x%08X 0x%
30 38 58 0a 00 00 00 00 30 78 30 30 30 30 30 30 08X.....0x000000
31 32 2c 20 30 78 30 30 30 30 30 30 30 30 3a 20 12, 0x00000000:
30 78 25 30 38 58 20 30 78 25 30 38 58 20 30 78 0x%08X 0x%08X 0x
25 30 38 58 20 30 78 25 30 38 58 0a 00 00 00 00 %08X 0x%08X.....
30 78 30 30 30 30 30 30 31 30 2c 20 30 78 25 30 0x00000010, 0x%0
38 58 3a 20 30 78 25 30 38 58 20 30 78 25 30 38 8X: 0x%08X 0x%08
58 20 30 78 25 30 38 58 20 30 78 25 30 38 58 0a X 0x%08X 0x%08X.
00 00 00 00 30 78 30 30 30 30 30 30 31 30 2c 20 ....0x00000010,
30 78 30 30 30 30 30 30 30 30 3a 20 30 78 25 30 0x00000000: 0x%0
38 58 20 30 78 25 30 38 58 20 30 78 25 30 38 58 8X 0x%08X 0x%08X
20 30 78 25 30 38 58 0a 00 00 00 00 30 78 30 30 0x%08X.....0x00
30 30 30 30 30 46 2c 20 30 78 25 30 38 58 3a 20 00000F, 0x%08X:
30 78 25 30 38 58 20 30 78 25 30 38 58 20 30 78 0x%08X 0x%08X 0x
25 30 38 58 20 30 78 25 30 38 58 0a 00 00 00 00 %08X 0x%08X.....
30 78 30 30 30 30 30 30 30 46 2c 20 30 78 30 30 0x0000000F, 0x00
30 30 30 30 30 30 3a 20 30 78 25 30 38 58 20 30 000000: 0x%08X 0
78 25 30 38 58 20 30 78 25 30 38 58 20 30 78 25 x%08X 0x%08X 0x%
30 38 58 0a 00 00 00 00 30 78 30 30 30 30 30 30 08X.....0x000000
30 44 2c 20 30 78 25 30 38 58 3a 20 30 78 25 30 0D, 0x%08X: 0x%0
38 58 20 30 78 25 30 38 58 20 30 78 25 30 38 58 8X 0x%08X 0x%08X
20 30 78 25 30 38 58 0a 00 00 00 00 30 78 30 30 0x%08X.....0x00
30 30 30 30 30 44 2c 20 30 78 30 30 30 30 30 30 00000D, 0x000000
30 31 3a 20 30 78 25 30 38 58 20 30 78 25 30 38 01: 0x%08X 0x%08
58 20 30 78 25 30 38 58 20 30 78 25 30 38 58 0a X 0x%08X 0x%08X.
00 00 00 00 30 78 30 30 30 30 30 30 30 44 2c 20 ....0x0000000D,
30 78 30 30 30 30 30 30 30 30 3a 20 30 78 25 30 0x00000000: 0x%0
38 58 20 30 78 25 30 38 58 20 30 78 25 30 38 58 8X 0x%08X 0x%08X
20 30 78 25 30 38 58 0a 00 00 00 00 30 78 25 30 0x%08X.....0x%0
38 58 2c 20 30 78 25 30 38 58 3a 20 30 78 25 30 8X, 0x%08X: 0x%0
38 58 20 30 78 25 30 38 58 20 30 78 25 30 38 58 8X 0x%08X 0x%08X
20 30 78 25 30 38 58 0a 00 00 00 00 30 78 25 30 0x%08X.....0x%0
38 58 2c 20 30 78 30 30 30 30 30 30 30 30 3a 20 8X, 0x00000000:
30 78 25 30 38 58 20 30 78 25 30 38 58 20 30 78 0x%08X 0x%08X 0x
25 30 38 58 20 30 78 25 30 38 58 0a 00 00 00 00 %08X 0x%08X.....
30 78 30 30 30 30 30 30 30 34 2c 20 30 78 25 30 0x00000004, 0x%0
38 58 3a 20 30 78 25 30 38 58 20 30 78 25 30 38 8X: 0x%08X 0x%08
58 20 30 78 25 30 38 58 20 30 78 25 30 38 58 0a X 0x%08X 0x%08X.
00 00 00 00 4c 65 61 66 2c 20 20 20 20 20 20 20 ....Leaf,
53 75 62 4c 65 61 66 3a 20 20 20 20 45 41 58 20 SubLeaf: EAX
20 20 20 20 20 20 20 45 42 58 20 20 20 20 20 20 EBX
20 20 45 43 58 20 20 20 20 20 20 20 20 45 44 58 ECX EDX
0a 00 00 00 53 65 74 54 68 72 65 61 64 49 64 65 ....SetThreadIde
61 6c 50 72 6f 63 65 73 73 6f 72 28 29 20 72 65 alProcessor() re
74 75 72 6e 65 64 20 65 72 72 6f 72 20 25 6c 75 turned error %lu
0a 00 00 00 00 00 00 00 43 41 56 45 41 54 3a 20 ........CAVEAT:
73 6f 6d 65 20 66 6c 61 67 73 20 64 69 66 66 65 some flags diffe
72 20 69 6e 20 33 32 2d 62 69 74 20 6d 6f 64 65 r in 32-bit mode
20 66 72 6f 6d 20 6e 61 74 69 76 65 20 36 34 2d from native 64-
62 69 74 20 6d 6f 64 65 21 0a 00 00 49 73 57 6f bit mode!...IsWo
77 36 34 50 72 6f 63 65 73 73 28 29 20 72 65 74 w64Process() ret
75 72 6e 65 64 20 65 72 72 6f 72 20 25 6c 75 0a urned error %lu.
00 00 00 00 a0 24 00 00 00 00 00 00 00 00 00 00 .....$..........
5a 25 00 00 00 20 00 00 c4 24 00 00 00 00 00 00 Z%... ...$......
00 00 00 00 76 25 00 00 24 20 00 00 00 00 00 00 ....v%..$ ......
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
cc 24 00 00 d8 24 00 00 e6 24 00 00 00 25 00 00 .$...$...$...%..
14 25 00 00 26 25 00 00 3a 25 00 00 4a 25 00 00 .%..&%..:%..J%..
00 00 00 00 68 25 00 00 00 00 00 00 25 05 57 72 ....h%......%.Wr
69 74 65 46 69 6c 65 00 19 01 45 78 69 74 50 72 iteFile...ExitPr
6f 63 65 73 73 00 95 04 53 65 74 54 68 72 65 61 ocess...SetThrea
64 49 64 65 61 6c 50 72 6f 63 65 73 73 6f 72 00 dIdealProcessor.
c4 01 47 65 74 43 75 72 72 65 6e 74 54 68 72 65 ..GetCurrentThre
61 64 00 00 0e 03 49 73 57 6f 77 36 34 50 72 6f ad....IsWow64Pro
63 65 73 73 00 00 c0 01 47 65 74 43 75 72 72 65 cess....GetCurre
6e 74 50 72 6f 63 65 73 73 00 02 02 47 65 74 4c ntProcess...GetL
61 73 74 45 72 72 6f 72 00 00 64 02 47 65 74 53 astError..d.GetS
74 64 48 61 6e 64 6c 65 00 00 4b 45 52 4e 45 4c tdHandle..KERNEL
33 32 2e 64 6c 6c 00 00 34 03 77 76 73 70 72 69 32.dll..4.wvspri
6e 74 66 41 00 00 55 53 45 52 33 32 2e 64 6c 6c ntfA..USER32.dll
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 10 00 00 68 00 00 00 1b 30 46 30 6f 30 7c 30 ....h....0F0o0|0
91 30 98 30 9e 30 aa 30 c4 30 d4 30 db 30 e8 30 .0.0.0.0.0.0.0.0
fb 30 69 31 70 31 99 31 dd 31 37 32 7d 32 ba 32 .0i1p1.1.172}2.2
07 33 84 33 17 34 40 34 91 34 be 34 10 35 3d 35 .3.3.4@4.4.4.5=5
95 35 e6 35 2a 36 f7 36 bf 37 d2 37 33 38 86 38 .5.5*6.6.7.738.8
66 39 9c 39 a4 39 a8 39 ac 39 b0 39 b4 39 b8 39 f9.9.9.9.9.9.9.9
bc 39 c0 39 c4 39 00 00 00 00 00 00 00 00 00 00 .9.9.9..........
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Decode the dump file RAWCPUID.TXT
created in
step 3. to recreate the console application
RAWCPUID.COM:
CERTUTIL.EXE /DecodeHex /V RAWCPUID.TXT RAWCPUID.COM
Input Length = 21760 Output Length = 5120 CertUtil: -decodehex command completed successfully.
Finally execute the console application RAWCPUID.COM
built in step 2.:
.\RAWCPUID.COM
CAVEAT: some flags differ in 32-bit mode from native 64-bit mode! Leaf, SubLeaf: EAX EBX ECX EDX 0x00000000, 0x00000000: 0x0000000D 0x756E6547 0x6C65746E 0x49656E69 0x00000001, 0x00000000: 0x0001067A 0x00020800 0x0C08E3FD 0xBFEBFBFF 0x00000002, 0x00000000: 0x05B0B101 0x005657F0 0x00000000 0x2CB43048 0x00000004, 0x00000000: 0x04000121 0x01C0003F 0x0000003F 0x00000001 0x00000004, 0x00000001: 0x04000122 0x01C0003F 0x0000003F 0x00000001 0x00000004, 0x00000002: 0x04004143 0x02C0003F 0x00000FFF 0x00000001 0x00000005, 0x00000000: 0x00000040 0x00000040 0x00000003 0x03122220 0x00000006, 0x00000000: 0x00000003 0x00000002 0x00000003 0x00000000 0x00000008, 0x00000000: 0x00000400 0x00000000 0x00000000 0x00000000 0x0000000A, 0x00000000: 0x07280202 0x00000000 0x00000000 0x00000503 0x0000000D, 0x00000000: 0x00000003 0x00000240 0x00000240 0x00000000 0x80000000, 0x00000000: 0x80000008 0x00000000 0x00000000 0x00000000 0x80000001, 0x00000000: 0x00000000 0x00000000 0x00000001 0x20100000 0x80000002, 0x00000000: 0x65746E49 0x2952286C 0x726F4320 0x4D542865 0x80000003, 0x00000000: 0x44203229 0x43206F75 0x20205550 0x50202020 0x80000004, 0x00000000: 0x30303738 0x20402020 0x33352E32 0x007A4847 0x80000006, 0x00000000: 0x00000000 0x00000000 0x0C006040 0x00000000 0x80000008, 0x00000000: 0x00003024 0x00000000 0x00000000 0x00000000
CPUPRINT.EXE
is
digitally signed
using a (self-issued)
X.509
leaf certificate
and
time stamped.
Download and install the (self-signed) X.509 root certificate to validate and verify the digital certificate and the signature.
Use the X.509 certificate to send S/MIME encrypted mail.
Note: email in weird format and without a proper sender name is likely to be discarded!
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.
I abhor top posts and expect inline quotes in replies.
as iswithout any warranty, neither express nor implied.
cookiesin the web browser.
The web service is operated and provided by
Telekom Deutschland GmbH The web service provider stores a session cookie
in the web
browser and records every visit of this web site with the following
data in an access log on their server(s):