diff --git a/content/posts/hidden_vm.md b/content/posts/hidden_vm.md
new file mode 100644
index 0000000..57e59ec
--- /dev/null
+++ b/content/posts/hidden_vm.md
@@ -0,0 +1,137 @@
++++
+draft = false
+date = 2025-08-31T21:27:35+02:00
+title = "How to create a stealthy VM"
+description = "How to create a hard to detect virtual machine using QEMU."
++++
+
+This article explains how to create a stealthy virtual machine that can be used for multiple things.
+I made this for my personnal use so there is still room for improvement.
+I'll explain what I personally use it for at the end.
+
+Virtual machine detection can be done in a lot of ways however,
+except for the most basic ones it always revolves around identifying markers that are hard coded into the hypervisor.
+For example [PCI ID's](https://en.wikipedia.org/wiki/PCI_configuration_space#Standardized_registers), plug and play devices names, etc
+To defeat this in addition to configuring the VM so it doesn't appear like one we will have to patch and compile the hypervisor.
+
+## 1. Compiling QEMU
+
+⚠️ *Always maintain an installation of QEMU managed by your package manager, because it may delete necessary runtime dependencies otherwise! The binaries you compile are saved in **/usr/local/bin**, so they will take precedence.*
+
+### Build dependencies
+
+**Arch**:
+`sudo pacman -S git wget base-devel glib2 ninja python`
+
+**Ubuntu**:
+`sudo apt install git build-essential ninja-build python-venv libglib2.0-0 flex bison`
+
+### Patching and building QEMU
+
+Go to the directory where you want to keep the sources and run
+
+{{< highlight bash >}}
+wget https://raw.githubusercontent.com/furtest/furtest/refs/heads/main/qemu_patch/qemu-10.1.0.patch
+wget https://download.qemu.org/qemu-10.1.0.tar.xz
+tar xvJf qemu-10.1.0.tar.xz
+cd qemu-10.1.0
+../qemu-10.1.0.patch
+./configure --disable-werror
+make -j$(nproc)
+sudo make install
+{{< /highlight >}}
+
+For some reasons the build fails with Werror enabled so we disable it.
+If you only need the x86_64 system hypervisor you can add `--target-list=x86_64-softmmu` to the configure command which will significantly shorten the compile time.
+
+## 2. Creating the VM
+
+You need to make the following changes to the configuration :
+- Use **BIOS** not UEFI
+- Change the MAC address (eg: 8c:1f:66:b8:67:84)
+- Set the video to VGA
+- Each of those snippets are things you need to have in your config, some of the text (like the `` ) is here for you to locate where to put the thing.
+
+{{< highlight html >}}
+
+
+
+{{< /highlight >}}
+
+{{< highlight html >}}
+
+
+
+
+{{< /highlight >}}
+{{< highlight html >}}
+
+
+{{< /highlight >}}
+
+**In the uuid field below replace with your uuid (top of the file)**
+
+{{< highlight html >}}
+6
+
+
+ Dell Inc.
+ 2.5.2
+ 01/28/2015
+ 2.5
+
+
+ Dell Inc.
+ PowerEdge R720
+ Not Specified
+ H5DR542
+ SHOULD MATCH THE UUID OF THE DOMAIN .. CHECK THE ELEMENT uuid ABOVE
+ SKU=NotProvided;ModelName=PowerEdge R720
+ Not Specified
+
+
+ Dell Inc.
+ 12NR12
+ A02
+ .5KT0B123.ABCDE000000001.
+ Not Specified
+ Null Location
+
+
+ Lenovo
+ none
+ J30038ZR
+ none
+ Default string
+
+
+ myappname:some arbitrary data
+ otherappname:more arbitrary data
+
+
+{{< /highlight >}}
+
+## 3. Installing windows
+
+During the windows installation there are 2 annoying things
+- Windows 11 hardware requirements.
+- Microsoft forcing you to connect to a microsoft account.
+
+Once the installer has started open a cmd with `shift F10` and run `regedit`.
+Then go to `KEY_LOCAL_MACHINE\SYSTEM\Setup`, create a new key called `LabConfig` and inside three DWORD values
+- BypassTPMCheck = 1
+- BypassSecureBootCheck = 1
+- BypassRAMCheck = 1
+
+To use a local account :
+1. Configure until the windows installation is done which is when you have to choose the language again.
+2. Then open a cmd again and run `OOBE\BYPASSNRO`
+3. Wait for reboot
+4. Once rebooted run `ipconfig /release` (if you forget you will have to go from step 1 again)
+
+## Sources
+
+- Most of this was inspired by : https://github.com/zhaodice/qemu-anti-detection
+- Windows requirement bypass : https://www.tomshardware.com/how-to/bypass-windows-11-tpm-requirement
+- Things about the VM configuration : https://r0ttenbeef.github.io/Deploy-Hidden-Virtual-Machine-For-VMProtections-Evasion-And-Dynamic-Analysis/
+