8 Commits

Author SHA1 Message Date
lirent d7ad6e9666 docs(patches): list 0026-cpuid-leaf15 in the inventory
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 01:45:55 +03:00
lirent 633538217c feat(cpuid): leaf 0x15 TSC / core-crystal ratio (patch 0026)
Real Intel CPUs enumerate leaf 0x15 (TSC/crystal ratio); QEMU returns 0. Fill it
consistently with leaf 0x16 (TSC == base freq). Intel persona only. Module getters
spoof_cpu_crystal_hz/tsc_num/tsc_den. Inert without a seed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 00:16:21 +03:00
lirent 3dd010ef3a fix(0025): use spoof_enabled() not spoof_on() at the smbios call site
spoof_on() is internal (spoof-core.h); the smbios.c call site only includes the public
spoof.h, which exposes spoof_enabled() (== spoof_on). Fixes the base build:
implicit-declaration / nested-externs -Werror.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 00:15:02 +03:00
lirent 4998af9cd1 spoof: SMBIOS type 8 (ports) + type 9 (slots) defaults (patch 0025)
Phase 1. Real boards expose port connectors and expansion slots; QEMU emits none, so a
guest dmidecode looks conspicuously empty. Inject a plausible desktop default set
(USB/LAN/audio ports + PCIe/M.2 slots) via the existing type8/type9 build path when none
were configured. Inert without a seed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 23:20:51 +03:00
lirent ec27a8f4e5 spoof: spoof-mode master fork (none/hyperv/vbs/physical) + microsoft-vm persona
Phase 0. Replace the spoof-hv knob with spoof-mode, a first-class selector modeled as
two axes (persona x presence) exposed as 4 presets:
- none: stock (spoof_on now requires mode != none, killing half-spoof states)
- hyperv: Microsoft Virtual Machine persona + Hyper-V presence (honest child VM)
- vbs (seeded default): real-OEM persona + Hyper-V presence (mimic physical Win11+VBS)
- physical: real-OEM persona + bare metal

Engine: spoof_mode()/spoof_persona_msvm()/spoof_presence_hyperv() in spoof-core; the
hv/waet/pvpanic/vmgenid policies now derive from the mode. microsoft-vm persona wired
across platform (ACPI OEM VRTUAL/MICROSFT, Microsoft Corporation), system type1
(Virtual Machine), storage (Virtual HD / Msft Virtual DVD-ROM) and EDID (MSF/Hyper-V).
New getters spoof_system_manufacturer/product (type1, real-OEM or Hyper-V). Patches:
0002 registers spoof-mode; 0024 now also forces type1 system identity. spoof-hv kept
as a back-compat alias. Inert without a seed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 23:15:15 +03:00
lirent 3268fe11e1 spoof: class-bound nvme PCI vendor:device (extend 0018)
Override the qemu-nvme controller vendor:device (Red Hat 1b36:0010) to a real NVMe
vendor matched to the spoofed model brand (Samsung/WD/Kioxia/Kingston/Intel/SMI/
hynix/Micron/Phison), with a coherent subsystem. Safe: NVMe binds by class code,
not id, and this runs before nvme_init_ctrl so the IDENTIFY vid/ssvid stay aligned.
virtio/GPU vendor:device untouched (load-bearing). Inert without a seed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 22:35:47 +03:00
lirent 9b17bdfa33 spoof: SMBIOS type0 BIOS vendor/version/date
Force a real, platform-anchored OEM BIOS identity into SMBIOS type0 (patch 0024 +
spoof_bios_version/spoof_bios_date getters) so the guest does not read an empty or
firmware-default BIOS vendor via WMI/dmidecode. Vendor coheres with the board;
version uses the vendor real format. Inert without a seed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 22:14:12 +03:00
lirent 06463ee65c qemu-spoof: seed-driven per-VM hardware-identity anti-detection for pve-qemu 2026-06-11 17:34:09 +03:00