A Windows PE (.exe) obfuscation tool with a modern ImGui GUI and a console mode. It applies safe mutations to the .text section, encrypts strings in .rdata, obfuscates import names, and strips debug information while preserving PE structure and section bounds.
- Code Section Mutations (.text)
- NOP instruction replacement
- Single NOP replacement
- Padding obfuscation
- Dead code insertion
- Loop unrolling simulation
- Control flow flattening
- String Obfuscation (.rdata)
- XOR encryption of printable strings (0xAA)
- Import Table Obfuscation
- DLL name encryption (XOR 0xBB)
- Function name encryption (XOR 0xCC)
- Debug Information
- Debug directory removal
- GUI Controls
- Single-window ImGui interface with feature toggles
- File browse for input, auto output naming, and an inline “Debug Log” panel
- Console Mode
- Drag-and-drop or CLI processing of
.exefiles
- Drag-and-drop or CLI processing of
- OS: Windows 10 or later (x64 recommended)
- Toolchain: Visual Studio 2022 (MSVC), Windows 10 SDK
- Build: CMake 3.20+
- Graphics: DirectX 11 runtime (for GUI backend)
- Network: Optional (CMake FetchContent pulls ImGui at configure time)
- Open a Developer PowerShell or PowerShell with
cmakein PATH - From the project root (
obfuscatorv5):- Configure:
"C:\Program Files\CMake\bin\cmake.exe" -S . -B build -A x64 - Build:
"C:\Program Files\CMake\bin\cmake.exe" --build build --config Release
- Configure:
This generates two targets:
obfuscatorv5_gui.exe(GUI, Win32/DX11)obfuscatorv5_console.exe(Console)
- Launch:
build\Release\obfuscatorv5_gui.exe - Steps:
- Click “Browse” to select an input
.exe - Toggle desired features (checkboxes)
- Optional: edit output name (defaults to
<input>_obfuscated.exe) - Click “Obfuscate”
- Check “Debug Log” panel for process output
- Click “Browse” to select an input
- Basic usage:
build\Release\obfuscatorv5_console.exe <path\to\input.exe> - Drag-and-drop multiple
.exefiles onto the console executable also works - Output files are named
<input>_obfuscated.exein the same directory
- Backup your original binaries before obfuscation
- Obfuscation modifies code/data sections while preserving PE headers and bounds
- Antivirus tools may flag modified binaries; ensure you trust your inputs and outputs
- 32-bit and 64-bit PE files are supported; import table handling respects section boundaries
- Ensure Visual Studio 2022 + Windows SDK are installed
- If
cmakeis not found, install CMake and use its full path as shown above - If build tools complain about DirectX libs, install/repair the Windows SDK
If publishing to GitHub, use a private repository such as:
https://github.com/yscodingxyc/Obfuscatorv5/tree/master
