Autonomous Multi-Cipher PE Crypter with Per-Build Cryptographic Metamorphism,
Real-Time AV/EDR Threat Modeling, and 18-Layer Structural Mutation Engine
Designed & Engineered by Gary Senderson β Xanthorox Research
β‘ Ready to use? The pre-built release is available on Releases β no compilation needed. Source code is provided for educational review and authorized security research.
videolol.mp4
Xanthorox-OFCrypt is not a standard crypter. It is a full-spectrum evasion framework that combines four standard ciphers, four custom-designed research-grade cipher architectures, an 18-mutation PE metamorphism engine, and a real-time AV/EDR threat modeling system into a single cohesive tool.
Every single build produces a cryptographically and structurally unique binary β not just different encrypted payloads, but different PE timestamps, section layouts, entropy profiles, code paths, exception handlers, import tables, resource structures, and metadata signatures. Two builds of the same payload with the same key will produce binaries that share zero static signatures.
The runtime stub is written entirely in position-independent native C++ with zero managed dependencies. It implements a multi-stage boot sequence that systematically dismantles every layer of endpoint protection β from userland hooks to kernel telemetry providers β before touching the payload.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BUILDER ENGINE β
β (C# / WPF / .NET 9) β
β β
β ββββββββββββββββββββββ ββββββββββββββββββββββ ββββββββββββββββ β
β β TARGET MATRIX β β CRYPTO PIPELINE β β PE MUTATOR β β
β β β β β β β β
β β β’ 25+ AV/EDR β β STANDARD: β β 18 Unique β β
β β profiles w/ β β β’ AES-256-CBC β β Structural β β
β β detection engine β β β’ ChaCha20-SHA512 β β Transforms: β β
β β mapping β β β’ RC4 (KSA+PRGA) β β β β
β β β’ Per-engine β β β’ Rolling XOR β β β’ Timestamp β β
β β threat scoring β β β β β’ Rich Strip β β
β β (1-5 scale) β β RESEARCH-GRADE: β β β’ Sections β β
β β β’ Auto-compute β β β’ Ghost Protocol β β β’ Junk Code β β
β β optimal counter- β β (5-layer SPN) β β β’ Entropy β β
β β measure stack β β β’ Neuromancer β β β’ TLS Dir β β
β β β’ Static, Heurist, β β (Env-Bound) β β β’ Debug Dir β β
β β Behavioral, Mem, β β β’ Darknet Cipher β β β’ Imports β β
β β Cloud, ML, AMSI β β (16-round SPN) β β β’ Resources β β
β β engine coverage β β β’ VOID WALKER β β β’ Dead Code β β
β β β β (Anti-Timing) β β β’ SEH/pdata β β
β ββββββββββ¬ββββββββββββ ββββββββββ¬ββββββββββββ β β’ Metadata β β
β β Threat Surface β Cipher β β’ Strings β β
β β Analysis β Selection β β’ Relocs β β
β βββββββββββββ¬ββββββββββββ β β’ Cert Pad β β
β βΌ β β’ Alignment β β
β ββββββββββββββββββββββββ β β’ Code Sign β β
β β STUB PATCHER β ββββββββ¬ββββββββ β
β β β β β
β β Marker-based binary ββββββββββββββββββββββββ β
β β patching with β Post-patch metamorphism β
β β save-and-restore β with data region protection β
β β data protection β β
β ββββββββββββ¬βββββββββββ β
β βΌ β
β ββββββββββββββββββββββββ β
β β CODE SIGNER β β
β β β β
β β Ephemeral X.509 β β
β β self-signed cert β β
β β per build β β
β ββββββββββββ¬βββββββββββ β
βββββββββββββββββββββββββͺβββββββββββββββββββββββββββββββββββββββββββββ
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β NATIVE STUB (C++ x64) β
β β
β BOOT SEQUENCE (23 individually toggleable protection layers): β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PHASE 0: PRE-EXECUTION ENVIRONMENT VALIDATION β β
β β β β
β β L21 MOTW Strip βββΊ L22 Anti-Emulation βββΊ L0 Integrity β β
β β βββΊ L23 TLS Callback Verify βββΊ L1 ntdll Unhook β β
β β βββΊ L11 Syscall SSN Resolution β β
β βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PHASE 1: TELEMETRY NEUTRALIZATION β β
β β β β
β β L3 AMSI Patch βββΊ L4 ETW Patch βββΊ L4b ETW-TI Disable β β
β βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PHASE 2: ANTI-ANALYSIS GAUNTLET β β
β β β β
β β L5 Anti-Debug βββΊ L6 Anti-VM βββΊ L7 Anti-Sandbox β β
β β βββΊ L8 Encrypted Sleep (payload stays ciphertext) β β
β βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PHASE 3: PAYLOAD RECOVERY β β
β β β β
β β L20 Entropy Denormalize βββΊ L15 HWID Key Derivation β β
β β βββΊ Decrypt (Standard or Research cipher) βββΊ L39 Staged β β
β βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PHASE 4: PROTECTED EXECUTION β β
β β β β
β β L14 Guard Page Install βββΊ Execute via: β β
β β L16 Phantom DLL Hollowing (from signed DLL memory) β β
β β L12 Thread Pool (TpAllocWork β legitimate work items) β β
β β L16b Callback Diversification (callback proxy chain) β β
β β L10 Module Stomping (overwrite loaded DLL .text) β β
β β L9 RunPE (NtUnmapViewOfSection hollowing) β β
β β L13 Fiber Execution (ConvertThreadToFiber context) β β
β βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PHASE 5: POST-EXECUTION β β
β β β β
β β L17 Persistence (HKCU Run) βββΊ L18 Melt (self-delete) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Cipher | Class | Key Schedule | Block/Stream | Self-Inverse | Per-Build Entropy |
|---|---|---|---|---|---|
| AES-256-CBC | Symmetric Block | 256-bit CSPRNG key | 128-bit blocks, PKCS7 padding | No (IV-dependent) | Random 16-byte IV prepended to ciphertext |
| ChaCha20 | Stream (SHA-512 Sim) | 256-bit seed β SHA-512 PRNG expansion | Byte-level XOR | Yes (symmetric) | Deterministic from key+counter |
| RC4 | Stream | KSA over 256-byte S-Box | Byte-level XOR | Yes (symmetric) | Key-dependent permutation |
| Rolling XOR | Stream | Bit-rotated key cycling | Byte-level XOR with (key >> (i%8)) | (key << (8-i%8)) |
Yes (symmetric) | Key rotation pattern |
These are custom-designed cryptographic systems, not wrappers around existing libraries. Each generates a unique set of cryptographic parameters per build β meaning the cipher itself is different every time, not just the key.
π¬ GHOST PROTOCOL β Randomized Substitution-Permutation Network
Parameter Size: 271 bytes per build
Ghost Protocol implements a 5-layer SPN where the execution order of layers is randomized per build (120 possible permutations). Each layer applies a different cryptographic primitive:
| Component | Size | Description |
|---|---|---|
| S-Box | 256 bytes | Cryptographically random permutation of all 256 byte values. Verified bijection β every input maps to exactly one output. |
| Inverse S-Box | 256 bytes | Pre-computed inverse for decryption. Verified: InvSBox[SBox[x]] == x for all x β [0,255]. |
| Bit Permutation | 8 bytes | Per-build bit-level transpositions applied after substitution. |
| Affine Transform | 2 bytes | enc(x) = (mul Γ x + add) mod 256 where mul is verified coprime to 256 via mul Γ mul_inv β‘ 1 (mod 256). |
| Layer Order | 1 byte | Encodes the permutation index (0-119) of the 5-layer execution order. |
| Rolling XOR | Key-derived | Final mixing layer with rotated key bytes. |
Why it matters: Static analysis tools that fingerprint cipher implementations will see a different algorithm every build. The S-Box alone produces 256! (β 8.5 Γ 10β΅β°βΆ) possible substitution tables.
π§ NEUROMANCER β Machine-Bound Environmental Cipher
Parameter Size: 62 bytes per build
Neuromancer binds the decryption process to the target machine's hardware identity. The cipher derives its working key from a combination of the master key, a per-build salt, and the machine's environmental fingerprint.
| Component | Size | Description |
|---|---|---|
| Environment Hash | 32 bytes | SHA-256 of {MachineGUID || MAC || VolumeSerial || ProcessorID}. Computed at encryption time from target profile. |
| Time-Lock Rounds | 2 bytes | Configurable sequential hash iterations (default 4096). Forces O(n) computation β defeats parallel brute-force. |
| Nonce | 12 bytes | CSPRNG per-build. Ensures identical payloads produce different ciphertext. |
| Salt | 16 bytes | CSPRNG per-build. Mixed into key derivation. |
Why it matters: The payload is cryptographically bound to one specific machine. Copying the binary to a different computer produces the wrong derived key β garbage decryption β silent failure. Sandbox environments (which have different HWIDs) cannot recover the payload even with the master key.
π DARKNET CIPHER β 16-Round Feistel Network with Per-Round S-Boxes
Parameter Size: 4,236 bytes per build
The most parameter-heavy cipher in the system. Darknet implements a full 16-round Feistel network where every round has its own unique S-Box, and the diffusion layer uses a randomized P-Box permutation.
| Component | Size | Description |
|---|---|---|
| Round S-Boxes | 4,096 bytes (16 Γ 256) | Each round uses a unique, independently generated 256-byte bijective substitution table. All 16 verified as valid permutations. |
| P-Box | 32 bytes | Bit-level permutation for inter-round diffusion. Verified: 32 unique values covering [0,31]. |
| Round Keys | 64 bytes (16 Γ 4) | Per-round subkeys derived from the master key via cascaded hashing. |
| Whitening Key | 32 bytes | Applied before Round 1 and after Round 16 (input/output whitening). |
| Nonce | 12 bytes | CSPRNG per-build for CTR mode. |
Why it matters: With 4,236 bytes of unique cryptographic state, no two builds share any structural similarity in their cipher. The 16 independent S-Boxes alone represent (256!)^16 possible configurations β a search space that dwarfs the universe's atomic count.
π³οΈ VOID WALKER β Anti-Timing Authenticated Stream Cipher
Parameter Size: 59 bytes per build
VOID WALKER adds an active anti-analysis dimension to encryption. It uses SipHash-2-4 for authenticated encryption and embeds an RDTSC timing threshold that detects single-stepping, breakpoints, and emulated execution.
| Component | Size | Description |
|---|---|---|
| Nonce | 12 bytes | CSPRNG per-build. Stream cipher initialization. |
| Salt | 16 bytes | CSPRNG per-build. Key derivation input. |
| SipKey | 16 bytes | SipHash-2-4 authentication key. Produces MAC over plaintext. |
| MAC | 4 bytes | Truncated SipHash digest. Verified non-zero and non-trivial. |
| RDTSC Threshold | 4 bytes | CPU cycle count threshold. If decryption takes longer than expected (indicating single-stepping or debugger intervention), the cipher silently produces incorrect output. |
| Timing Mode | 1 byte | Threshold comparison strategy (above/below/windowed). |
Why it matters: Analysts who attach a debugger to step through the decryption will unknowingly trigger the timing check. The cipher doesn't crash or exit β it silently produces wrong output, making the analyst believe the payload is corrupted rather than protected.
Every build passes through all 18 mutations sequentially. The mutations operate on the raw PE structure after the stub is patched β a save-and-restore mechanism protects embedded data integrity through the entire mutation pipeline.
| # | Mutation | What It Does | Why It Matters |
|---|---|---|---|
| 1 | Timestamp Randomization | Replaces PE TimeDateStamp with a random value from the past 5 years |
Defeats compilation date clustering used by threat intel platforms |
| 2 | Rich Header Eradication | Zeros out the MSVC Rich header structure between DOS stub and PE header | Removes toolchain fingerprint (compiler version, linker, object counts) |
| 3 | Section Name Metamorphism | Renames .text/.rdata/.data sections to randomly selected common names |
Breaks YARA rules that match on section names |
| 4 | Polymorphic Junk Code | Fills inter-section padding with valid x86_64 instruction sequences (NOP, XCHG, LEA, MOV) |
Padding no longer looks like null bytes β defeats padding entropy scanners |
| 5 | PE Checksum Repair | Recalculates OptionalHeader.CheckSum after all modifications |
Ensures PE passes integrity validation by loaders and security tools |
| 6 | Entropy Equalization | Normalizes per-section entropy to fall within 4.5-6.5 bits/byte range | Evades high-entropy detection (packed/encrypted section heuristics) |
| 7 | TLS Directory Manipulation | Modifies TLS callback directory entries | Adds execution paths that run before main() β increases complexity for emulators |
| 8 | Debug Directory Erasure | Strips IMAGE_DIRECTORY_ENTRY_DEBUG and any embedded PDB paths |
Removes source file paths, build machine info, and developer fingerprints |
| 9 | Import Table Augmentation | Appends legitimate-looking imports from user32.dll, advapi32.dll, shell32.dll |
Makes the import table resemble a normal GUI application |
| 10 | Resource Mimicry | Injects fake RT_DIALOG, RT_MENU, RT_STRING resource entries |
Mimics a legitimate Windows application with UI resources |
| 11 | Semantic Dead Code | Injects realistic control flow paths (if/else branches, loops) that compute but never affect output | Increases McCabe complexity β makes automated analysis exponentially harder |
| 12 | Exception Handler Forgery | Adds fake RUNTIME_FUNCTION entries in .pdata |
Binary appears to have proper structured exception handling coverage |
| 13 | Metadata Cloning | Copies VS_VERSIONINFO structures mimicking legitimate Microsoft binaries |
File properties dialog shows believable version information |
| 14 | String Table Obfuscation | XOR-encrypts suspicious API name strings (VirtualAlloc, WriteProcessMemory, etc.) |
Defeats string-based static detection rules |
| 15 | Relocation Noise | Inserts junk entries into the .reloc section relocation table |
Increases noise for tools that analyze relocation patterns |
| 16 | Certificate Table Padding | Adds padding to the Authenticode certificate directory | Modifies file hash without breaking the PE loader |
| 17 | Section Alignment Jitter | Varies VirtualAddress alignment within valid ranges |
No two builds share the same memory layout |
| 18 | Ephemeral Code Signing | Signs the final binary with a per-build self-signed X.509 certificate | Binary appears "signed" to quick-glance analysis; cert is unique each time |
The stub executes a hardcoded 5-phase boot sequence. Each layer is individually toggleable from the Builder UI. The sequence is designed so that each phase validates the environment at increasing depth before proceeding.
| Layer | Name | Mechanism | Detail |
|---|---|---|---|
| L21 | MOTW Strip | ADS removal + process relaunch | Strips Zone.Identifier alternate data stream β relaunches self without Mark-of-the-Web. SmartScreen never fires. |
| L22 | Anti-Emulation | Multi-vector emulator detection | Timing deltas via QueryPerformanceCounter, API behavior probing (emulators often stub GetModuleHandle incorrectly), environment artifact scanning. |
| L0 | Anti-Tamper | Compile-time integrity | Verifies hardcoded author string at runtime. Tampered binary β null-pointer dereference β immediate crash. No error message, no catch block. |
| L23 | TLS Callback Verify | Pre-main execution check | TLS callback fires before WinMain(). Stub verifies the callback executed. Emulators that skip TLS callbacks are detected. |
| L1 | ntdll Unhook | Full DLL remap from disk | Opens C:\Windows\System32\ntdll.dll from disk β maps fresh copy β overwrites .text section of loaded ntdll.dll. Every EDR userland hook is removed in one operation. |
| L11 | Direct Syscalls | Runtime SSN resolution | Reads ntdll.dll export table β extracts syscall service numbers β builds syscall instruction stubs in executable memory. Bypasses userland entirely β calls go directly to kernel. |
| Layer | Name | Mechanism | Detail |
|---|---|---|---|
| L3 | AMSI Bypass | In-memory patching | Patches the first bytes of AmsiScanBuffer to return AMSI_RESULT_CLEAN. All subsequent AMSI scans pass silently. |
| L4 | ETW Bypass | Dual-provider disable | Patches EtwEventWrite to ret β kills standard ETW. Then patches ETW Threat Intelligence provider (Microsoft-Windows-Threat-Intelligence) β kills kernel-level telemetry forwarding to EDR. |
| Layer | Name | Mechanism | Detail |
|---|---|---|---|
| L5 | Anti-Debug | 5-vector detection | IsDebuggerPresent(), NtQueryInformationProcess(ProcessDebugPort), GetTickCount64 timing delta, hardware breakpoint register check (DR0-DR3 via GetThreadContext), PEB BeingDebugged flag. |
| L6 | Anti-VM | Hardware fingerprinting | Registry key scan (VBOX/VMWARE artifacts), CPUID hypervisor leaf (0x40000000), MAC OUI prefix matching (first 3 bytes identify VM vendors), disk size heuristic (VMs typically have < 80GB). |
| L7 | Anti-Sandbox | Behavioral analysis | Running process count (sandboxes run < 20 processes), system uptime (GetTickCount64 < 10 minutes = suspicious), user interaction check (mouse cursor movement), screen resolution validation (800Γ600 = sandbox). |
| L8 | Sleep Obfuscation | Encrypted sleep | Payload stays AES-encrypted in memory during the delay period. Memory scanners that read the payload region during sleep see only ciphertext. Decrypts when sleep ends. |
| Layer | Name | Mechanism | Detail |
|---|---|---|---|
| L20 | Entropy Denormalize | Affine cipher decode | Reverses Builder's entropy normalization: dec(y) = (7 Γ y + 85) mod 256. Strips the 0xEE marker byte. One-pass, constant-time. |
| L15 | HWID Key Derivation | Machine-bound keying | Computes HMAC-SHA256(masterKey, MachineGUID || MAC || VolumeSerial) β derived key used for decryption. Wrong machine β wrong key β payload is garbage bytes. Silent failure β no error, no crash. |
| β | Decryption | Standard or Research | Dispatches to the selected cipher (AES/ChaCha20/RC4/XOR or Ghost/Neuro/Darknet/VOID). Research ciphers consume the embedded parameter blob from the XRESRC marker region. |
| L39 | Staged Decryption | Chunked recovery | Decrypts payload in 4KB chunks. At no point is the entire plaintext payload present in memory simultaneously. Each chunk is decrypted, consumed, and zeroed before the next. |
| Layer | Name | Mechanism | Detail |
|---|---|---|---|
| L14 | Guard Page Shield | Memory access trap | Installs PAGE_GUARD protection on the decrypted payload region. If any external process (memory scanner, EDR agent) reads the memory, the guard page exception fires and the payload auto-re-encrypts itself. |
| L16 | Phantom DLL Hollowing | Signed memory execution | Loads a legitimately signed Windows system DLL β allocates RWX memory in its image space β copies payload into the .text section β executes. Process memory analysis sees code "inside" a signed Microsoft DLL. |
| L12 | Thread Pool Execution | OS-native work items | Creates payload via TpAllocWork β TpPostWork β TpReleaseWork. Execution originates from the Windows thread pool β appears as a legitimate OS work item, not a suspicious remote thread. |
| L16b | Callback Diversification | Callback proxy chain | Executes payload through Windows callback mechanisms (EnumWindows, CreateTimerQueueTimer, etc.) β appears as legitimate callback processing to behavioral analysis. |
| L10 | Module Stomping | DLL code overwrite | Maps a benign DLL β overwrites its .text section with payload β transfers execution. Payload occupies legitimate module memory. |
| L9 | RunPE | Process hollowing | NtUnmapViewOfSection β write payload into hollowed process β resume thread. Classic but still effective against legacy EDR. |
| L13 | Fiber Execution | Context switching | ConvertThreadToFiber β CreateFiber with payload β SwitchToFiber. Execution context is a fiber, not a thread β invisible to thread enumeration tools. |
| Layer | Name | Mechanism | Detail |
|---|---|---|---|
| L17 | Persistence | Registry Run key | Writes to HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run β survives reboot. No admin required. |
| L18 | Melt | Self-destruction | Spawns cmd.exe /c ping -n 2 127.0.0.1 > nul & del /q "<self>" β the delay ensures the process has exited before deletion. Binary is gone from disk. |
| L19 | Fake Error | Social engineering | Displays a convincing MSVCP140.dll not found error dialog before execution. User thinks the program failed to launch. Stack-built strings β no suspicious string literals in the binary. |
The Builder includes profiles for 25+ AV/EDR products, each mapped with:
- Detection engines: Static signatures, heuristic analysis, behavioral monitoring, memory scanning, cloud lookup, ML classification, AMSI integration
- Threat level: 1-5 scale based on detection capability and market penetration
- Engine coverage bars: Visual breakdown of which detection layers each product uses
Select your targets β the engine computes the minimum countermeasure stack required to evade all selected products β one-click apply to Builder settings.
Use your brain to modify and build. You can donate if you want me to help.
Copyright (c) 2024-2026 Gary Senderson / Xanthorox. All rights reserved. See LICENSE.
This software is provided for educational and authorized security research purposes only. Unauthorized use of this software to compromise computer systems you do not own or have explicit permission to test is illegal. The author assumes no liability for misuse.
XANTHOROX
"Every build is unique. Every signature is dead on arrival."

