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>
This commit is contained in:
@@ -38,6 +38,21 @@ QEMU_SPOOF_SEED=<string> # env fallback (testing)
|
||||
Same seed → same persona. Mix in a host secret so personas are not guessable from
|
||||
the vmid. Proxmox: add `spoof-seed=` through the VM `args:` line.
|
||||
|
||||
### Modes
|
||||
|
||||
`-machine ...,spoof-mode=` selects the identity strategy (two axes — hardware
|
||||
persona × hypervisor presence — as presets):
|
||||
|
||||
| mode | persona | presence | looks like |
|
||||
|---|---|---|---|
|
||||
| `none` | stock | KVM | a plain VM (no spoof) |
|
||||
| `hyperv` | Microsoft "Virtual Machine" | Hyper-V | an honest Hyper-V guest |
|
||||
| `vbs` (default when seeded) | real OEM | Hyper-V | a physical Win11 box with VBS on |
|
||||
| `physical` | real OEM | bare metal | a physical machine (no hypervisor) |
|
||||
|
||||
The presence axis (clearing the hypervisor bit / Hyper-V enlightenments) is partly
|
||||
the CPU model configuration (`cpu: host,hidden=1` + `hv-*`); set it to match the mode.
|
||||
|
||||
## Layout
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user