x64dbg plugin for simple spoofing of CPUID instruction behavior

Overview

CPUID Spoofer

GitHub release (latest by date) GitHub Workflow Status

CpuidSpoofer is a x64dbg plugin which helps you to modify the behaviour of the CPUID instruction.

For example, you can easily change the manufacturer ID string:

Custom processor name

Installation

  1. Go to Latest Release page
  2. Download CpuidSpoofer.dp64 into x64dbg\x64\plugins\
  3. Download CpuidSpoofer.dp32 into x64dbg\x32\plugins\

Usage

Everything is accessible from the top menu bar, under the Plugins → CPUID Spoofer submenu.

Options

The options/presets dialog allows you to prepare various triggers and actions that should happen upon CPUID instruction execution.

These presets are global. They are shared between debugged files.

Find CPUIDs and set breakpoints

Once the debugged file is fully loaded, breakpoints must be placed onto the CPUID instructions.

Click the convenient Find CPUIDs and set breakpoints menu option to automatically place those breakpoints.

Two breakpoints will be created for each CPUID instruciton. First, directly on the said instr., for trigger evaluation. Second, after the said instr., for action evaluation.

You can place these breakpoints manually by selecting a CPUID instruction in the CPU tab and clicking Set breakpoint here.

If you find yourself overwhelmed by the number of breakpoints created, just click on Remove all breakpoints. This will remove both automatically and manually placed breakpoints (by this tool only).

Advanced usage

This plugin exports two commands: CpuidSpooferBegin and CpuidSpooferEnd. When CPUID instruction is found, two breakpoints are created, as described above. Each of them executes one of these exported commands.

The "Begin" command evaluates all triggers from all enabled presets. If the trigger condition is true, preset action is selected to be executed.

The "End" command executes all perviously selected actions.

To break execution during trigger or action evaluation, append $breakpointcondition=1; into the Custom field.

You might also like...
A simple and efficient c++ KDTree implementation.

A simple and efficient c++ KD-Tree implementation. This code was written when I was learning c++11.

Va1 is a simple character converter. It converts characters into nums, might be used in encryption protocols or as independent algorithm.
Va1 is a simple character converter. It converts characters into nums, might be used in encryption protocols or as independent algorithm.

Va1 What is it? Va1 is a simple character converter. It converts characters into nums, might be used in encryption protocols or as independent algorit

Simple PRNG (Pseudo random number generator) i wrote in C

Floian Simple PRNG i wrote in C (Kinda trash actually). Kinda same with Xorshift32. For speed i didn't test it yet, maybe later. Anyone can use and mo

A simple single header 64 and 32 bit hash function using only add, sub, ror, and xor.
A simple single header 64 and 32 bit hash function using only add, sub, ror, and xor.

K-HASH A simple single header 64 bit hash function using only add, sub, ror, and xor. This a just general-purpose hash function for like making hash m

Simple and fast configuration file library (written in C99)

Features Configuration file reading Supported operating systems Ubuntu MacOS Windows Build requirements C99 compiler CMake 3.10+ Cloning git clone htt

A simple repo with different data structure programs made in C.
A simple repo with different data structure programs made in C.

Hacktoberfest 2021 - Expert This is an intermediate-level project to help you get started with your [hacktoberfest] (https://hacktoberfest.digitalocea

A simple implementation of nodes and their connections.

NodesGraph A simple implementation of nodes and their connections. It uses a keyboard based interface for interacting with the program. Selecting Node

Bit-Map is a simple bit map.

Bit-Map Bit-Map is a simple bit map. Usage Create a map uint8** bitmap; uint64 map_size = 32; // bit number pfs_create_bitmap(bitmap,

HashTableBenchmark - A simple cross-platform speed & memory-efficiency benchmark for the most common hash-table implementations in the C++ world

Hash-Tables Benchmarks This repository contains a bunch of extendable benchmarks mostly for following containers: std:unordered_map from STL. google::

Owner
null
A lightweight library of Behavior Trees Library in C++.

A lightweight behavior tree library in C++. NEWS! ?? Thanks to Davide Faconti there is now a more sophisticated version of the library. The new versio

Michele Colledanchise 168 Dec 21, 2022
A simple C library for working with KD-Trees

kdtree Overview kdtree is a simple, easy to use C library for working with kd-trees. Kd-trees are an extension of binary search trees to k-dimensional

John Tsiombikas 348 Dec 28, 2022
Simple hash table implemented in C

Simple hash table written in C. To go with my article How to implement a hash table (in C). This is a learning exercise, not a battle-tested data stru

Ben Hoyt 86 Dec 10, 2022
Simple C++ code to benchmark fast division algorithms

fast_division Simple C++ code to benchmark fast division algorithms relying on constant divisors. The code is a companion to the paper Integer Divisio

Daniel Lemire 39 Dec 27, 2022
Simple C++ Genetic Algorithm library

crsGA: Simple C++ Genetic Algorithm library crsGA is a simple C++ template library for developing genetic algorithms, plus some other utilities (Logge

Rafael Gaitán 6 Apr 24, 2022
A Simple Stack Machine VM

Arkam - Stack Machine VM Purposes Build small cli tools Sound/Graphic tinkering environment Status 2021-05-06 start Influenced by uxn Mako Retro Neste

jin hanada 29 Mar 13, 2022
Simple Useful Libraries: C++17/20 header-only dynamic bitset

dynamic_bitset Simple Useful Libraries: C++17/20 header-only dynamic bitset Requirements To use this dynamic bitset, you will need a C++17 (or later)

Maxime Pinard 118 Dec 12, 2022
A simple & stupid data structure library for C

HDataStruct - Hans' Data Structures Library A simple & stupid data structure library for C. Introduction This is a small C library containing several

Hans Wan 3 Oct 6, 2021
A simple and easy-to-use library to build pipelines in C

A simple and easy-to-use library to build pipelines in C

Ray 15 Dec 25, 2022
simple hash table linear probing method can expand/reduce

hash table a simple c hash table implementation based on https://benhoyt.com/writings/hash-table-in-c/ project can store different data types (data al

Fabio Murer 1 Oct 3, 2021