# zhaodice/qemu-anti-detection architecture

> Architecture diagram of the GitHub repository zhaodice/qemu-anti-detection, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/zhaodice/qemu-anti-detection
- Repository: https://github.com/zhaodice/qemu-anti-detection

## Overview

This repository is a set of version-specific QEMU anti-detection patches plus a sample VM XML configuration. The documented workflow is to apply a matching patch to a QEMU source release, build QEMU, then configure a VM with the XML; the patched emulator presents altered device and firmware identity data to the guest. The README also describes a QEMU 10.2.2 hypercall-quirk change. No source excerpts were provided, so relationships below are limited to those documented in the README; bundled binary/data files are not connected without evidence.

Main entry points: [`qemu-6.2.0.patch`](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-6.2.0.patch) (QEMU 6.2 patch), [`qemu-7.0.0.patch`](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-7.0.0.patch) (QEMU 7.0 patch), [`qemu-7.2.0.patch`](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-7.2.0.patch) (QEMU 7.2 patch), [`qemu-8.0.2.patch`](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-8.0.2.patch) (QEMU 8.0.2 patch)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_patches["QEMU patches"]
  node_patch62["QEMU 6.2 patch<br/>[qemu-6.2.0.patch]"]
  node_patch70["QEMU 7.0 patch<br/>[qemu-7.0.0.patch]"]
  node_patch72["QEMU 7.2 patch<br/>[qemu-7.2.0.patch]"]
  node_patch802["QEMU 8.0.2 patch<br/>[qemu-8.0.2.patch]"]
  node_patch805["QEMU 8.0.5 patch<br/>[qemu-8.0.5.patch]"]
  node_patch810["QEMU 8.1 patch<br/>[qemu-8.1.0.patch]"]
  node_patch820["QEMU 8.2 patch<br/>[qemu-8.2.0.patch]"]
  node_patch1022["QEMU 10.2.2 patch<br/>[qemu-10.2.2.patch]"]
end

subgraph group_identity["Guest identity"]
  node_vmxml["VM XML settings<br/>[samuil1337.xml]"]
  node_guestidentity["Guest-visible identity"]
end

subgraph group_runtime["VM runtime"]
  node_qemusource["QEMU source"]
  node_builtqemu["Patched QEMU"]
  node_guestvm["Virtual machine"]
end

node_operator(("VM operator"))

node_operator -->|"selects version"| node_patch62
node_operator -->|"selects version"| node_patch70
node_operator -->|"selects version"| node_patch72
node_operator -->|"selects version"| node_patch802
node_operator -->|"selects version"| node_patch805
node_operator -->|"selects version"| node_patch810
node_operator -->|"selects version"| node_patch820
node_operator -->|"selects version"| node_patch1022
node_patch62 -->|"patches"| node_qemusource
node_patch70 -->|"patches"| node_qemusource
node_patch72 -->|"patches"| node_qemusource
node_patch802 -->|"patches"| node_qemusource
node_patch805 -->|"patches"| node_qemusource
node_patch810 -->|"patches"| node_qemusource
node_patch820 -->|"patches"| node_qemusource
node_patch1022 -->|"patches"| node_qemusource
node_qemusource -->|"builds"| node_builtqemu
node_operator -->|"configures"| node_vmxml
node_builtqemu -->|"runs"| node_guestvm
node_vmxml -->|"configures"| node_guestvm
node_builtqemu -->|"alters reported data"| node_guestidentity
node_guestvm -->|"exposes"| node_guestidentity

click node_patch62 "https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-6.2.0.patch"
click node_patch70 "https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-7.0.0.patch"
click node_patch72 "https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-7.2.0.patch"
click node_patch802 "https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-8.0.2.patch"
click node_patch805 "https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-8.0.5.patch"
click node_patch810 "https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-8.1.0.patch"
click node_patch820 "https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-8.2.0.patch"
click node_patch1022 "https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-10.2.2.patch"
click node_vmxml "https://github.com/zhaodice/qemu-anti-detection/blob/main/configs/samuil1337.xml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_patch62,node_patch70,node_patch72,node_patch802,node_patch805,node_patch810,node_patch820,node_patch1022 toneBlue
class node_vmxml,node_guestidentity toneAmber
class node_qemusource,node_builtqemu,node_guestvm toneMint
class node_operator toneIndigo
```

## Components

### QEMU patches

- [QEMU 6.2 patch](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-6.2.0.patch): `qemu-6.2.0.patch`
- [QEMU 7.0 patch](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-7.0.0.patch): `qemu-7.0.0.patch`
- [QEMU 7.2 patch](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-7.2.0.patch): `qemu-7.2.0.patch`
- [QEMU 8.0.2 patch](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-8.0.2.patch): `qemu-8.0.2.patch`
- [QEMU 8.0.5 patch](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-8.0.5.patch): `qemu-8.0.5.patch`
- [QEMU 8.1 patch](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-8.1.0.patch): `qemu-8.1.0.patch`
- [QEMU 8.2 patch](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-8.2.0.patch): `qemu-8.2.0.patch`
- [QEMU 10.2.2 patch](https://github.com/zhaodice/qemu-anti-detection/blob/main/qemu-10.2.2.patch): `qemu-10.2.2.patch`

### Guest identity

- [VM XML settings](https://github.com/zhaodice/qemu-anti-detection/blob/main/configs/samuil1337.xml): `configs/samuil1337.xml`
- **Guest-visible identity**

### VM runtime

- **QEMU source**
- **Patched QEMU**
- **Virtual machine**

### Other components

- **VM operator**

## Connections

- VM operator → QEMU 6.2 patch: selects version (evidence: `README.md`)
- VM operator → QEMU 7.0 patch: selects version (evidence: `README.md`)
- VM operator → QEMU 7.2 patch: selects version (evidence: `README.md`)
- VM operator → QEMU 8.0.2 patch: selects version (evidence: `README.md`)
- VM operator → QEMU 8.0.5 patch: selects version (evidence: `README.md`)
- VM operator → QEMU 8.1 patch: selects version (evidence: `README.md`)
- VM operator → QEMU 8.2 patch: selects version (evidence: `README.md`)
- VM operator → QEMU 10.2.2 patch: selects version (evidence: `README.md`)
- QEMU 6.2 patch → QEMU source: patches (evidence: `README.md`)
- QEMU 7.0 patch → QEMU source: patches (evidence: `README.md`)
- QEMU 7.2 patch → QEMU source: patches (evidence: `README.md`)
- QEMU 8.0.2 patch → QEMU source: patches (evidence: `README.md`)
- QEMU 8.0.5 patch → QEMU source: patches (evidence: `README.md`)
- QEMU 8.1 patch → QEMU source: patches (evidence: `README.md`)
- QEMU 8.2 patch → QEMU source: patches (evidence: `README.md`)
- QEMU 10.2.2 patch → QEMU source: patches (evidence: `README.md`)
- QEMU source → Patched QEMU: builds (evidence: `README.md`)
- VM operator → VM XML settings: configures (evidence: `README.md`)
- Patched QEMU → Virtual machine: runs (evidence: `README.md`)
- VM XML settings → Virtual machine: configures (evidence: `README.md`)
- Patched QEMU → Guest-visible identity: alters reported data (evidence: `README.md`)
- Virtual machine → Guest-visible identity: exposes (evidence: `README.md`)
