Skip to content
AtlasDocs
Sign inGet started
Updated Oct 16, 2026

Options and levels

Every protection the Obfuscator offers, grouped by what it defends against. Most have a level from Light to Maximum; the rest are on or off.

Open it now:Obfuscator, Protect

How to read the list

In Protect the options are listed by section. A slider option runs from Off through Light, Balanced and Heavy to Maximum, and each level includes everything the lower one does, then more. Under the slider, the line for the chosen level says what it adds. A toggle is on or off. A field takes text or an icon.

Anti-debug

Refuse debugger attach. Detect it. Punish it.

OptionWhat it doesTake care
Attach brick wallDebuggers cannot latch on in the first place.
Sabotage on attachIf something does manage to attach, sabotage its state.
Scattered debugger checksHundreds of small debugger checks woven throughout your code - every one has to be found and removed to bypass.
Behavioural detectionDetect debuggers by the subtle traces they leave - timing anomalies, page faults, memory access patterns.
Trap the debugger's exceptionsPoison access-violation, single-step and guard-page hits so debuggers stall.
Starve hardware breakpointsOccupy the 4 hardware breakpoint slots with junk so the debugger cannot set its own.
Break debugger UIsThrow exceptions inside x64dbg and ScyllaHide that they can't recover from.
Thread hidingDetection threads run hidden from the debugger.

Anti-inject

Hostile modules cannot load. Injected code gets spotted.

OptionWhat it doesTake care
Anti-inject baselineReject foreign DLLs and manual maps.
Mitigation policy stackForce Windows' own security features so the operating system itself refuses foreign modules and code.Higher levels can break plugin systems and injected overlays. Verify with your target Windows versions.
Manual-map detectionSpot modules loaded outside the normal loader path.
Loader hijack defenseRefuse module loads and remote threads from anywhere but Windows' own System32 folder.
Detect inline hooksHash critical API bodies. Detect anyone patching in.
Hardware shadow stackModern Intel and AMD CPUs keep a protected copy of return addresses. Injected shellcode can't redirect them.Requires a modern CPU with shadow stack support (Intel Tiger Lake / AMD Zen 3 or newer). Does nothing on older hardware.
Asynchronous injection defenseReject queued procedure calls that don't come from our own threads. Blocks one of the sneakiest injection tricks.

Anti-analysis

IDA, Ghidra, x64dbg and other static tools fail before they start.

OptionWhat it doesTake care
Disassembler denialOverlapping and mis-encoded instructions cause reversing tools to miscount and produce wrong disassembly.
IDA Pro annihilationIDA and Hex-Rays crash, hang or produce garbage on your binary.
Symbolic-execution denialPoison paths that Angr and Triton would explore - solvers time out.
API protection brick wallZero imports, direct syscalls, indirect gadgets - reversers can't trace API calls.
Keep CRT imports visibleLeave the C-runtime imports alone - improves crash-report symbol quality.
Aggressive techniques (may trip EDR)Loader-list poisoning, decoy memory regions, dumper-tool fingerprinting, timing channels. Bulletproof, but some EDRs flag them.These are opt-in. Test with your target EDR / AV before shipping - some may flag as suspicious.
Tool-specific responsesDetect which reversing tool is attached and respond differently - IDA, x64dbg, Cheat Engine, sandboxes.

Anti-sandbox

Detect Cuckoo, AnyRun, VMware, Hyper-V - refuse to run under analysis.

OptionWhat it doesTake care
Anti-VMDetect running inside VMware, VirtualBox, Hyper-V, TTD.
Anti-sandbox fingerprintingRecognise Cuckoo, AnyRun, Joe, HybridAnalysis, VMRay by their fingerprints.

Memory

What lives in memory looks nothing like what shipped on disk. Dumps come back useless.

OptionWhat it doesTake care
Anti-dump baselineRefuse memory dumps. Kill on process suspend.
Wipe PE headers in memoryOnce you're running, the DOS + PE headers vanish from memory. Dumps come back unusable.
Encrypt code at restYour .text section is encrypted on disk. It decrypts one page at a time as you run.
Encrypt data at restSensitive heap and thread-local data is re-encrypted between reads.
Guard-page tripwiresRead a canary page and the process kills itself before you get the dump.
Stack spoofingCall stacks look like clean Windows internals, not your code.

Code transform

The bytes reversers see are not the bytes you shipped.

OptionWhat it doesTake care
Instruction mutationEvery build produces different bytes for the same source. Boundary-aware disassembly makes every level safe.
Control-flow flatteningTurn every function into a state machine. Reversers can't follow the graph.
Pre-entry TLS fortressDetection runs BEFORE main. Fail = the program never starts.
String encryptionStrings are materialised at their call site, then scrubbed. `strings` returns nothing useful.
Import table obfuscationAPIs are resolved by hash at runtime - the import table looks empty.

Virtualization

Critical functions run on a per-build custom CPU. Nobody has your VM specification.

OptionWhat it doesTake care
Virtualization coverageLift x64 code to a per-build custom VM. Nobody has your VM specification.
Per-function VM permutationEvery lifted function gets a different opcode encoding and register layout.
VM handler hardeningEncrypt the VM handlers, sign the bytecode, scatter the dispatcher. Reverse-engineering it takes weeks.
VM end-gameCascading, encrypted handlers with control-flow integrity. The last word.
Inter-VM dispatch chainingVM handlers call other VM handlers. No return to native between them.
VM instruction-set coverageWhich x64 extensions the VM knows how to lift. More extensions = more code can be virtualised.
Destroy the original functionAfter lifting, the original code region is overwritten with decoy bytes.

Integrity

A single patched byte trips a fatal check within milliseconds.

OptionWhat it doesTake care
Kernel tamper detectionDetect kernel-mode attackers - kernel-mode debuggers, rootkits, hypervisor-based tools. When the OS itself is compromised, we know.A few of these channels can false-positive inside Windows sandbox / isolated-Chromium environments.
Code hash chainA chained hash of your .text section. A single patched byte is caught within milliseconds.Auto-disables the VM garbage collector to preserve trampoline integrity - expected.
Binary fingerprint bindingRuntime state depends on the exact bytes of your binary. Re-signing or repacking invalidates the whole chain.
Sentinel-load probeLoad a decoy module. If someone answers, the process is being manipulated.
Verified system callsEvery Windows API call is triple-checked against a signed table. Fake syscalls get spotted immediately.
Scattered tamper flagsTamper checks are spread across the memory. There is no single "cheat detected" flag to patch out.
Hardware-bound encryptionEncryption keys derive from the actual CPU features of the running machine. Copies to a different machine don't decrypt.Binds the build to specific hardware traits. If your users run wildly different hardware, use Balanced or lower.
Brutal Pack mitigationsShip the full Brutal Pack 1 mitigation stack - thread-hide, PE binding, sentinel probe, mitigation policy stack.Sets a stronger baseline. If VM lift is also on, ProhibitDynamicCode is auto-excluded so the VM runtime keeps working (unless VM encrypted-handlers are on, which have their own opt-out).
Chained execution proofEvery function call updates a rolling signature. Skip any check and the signature breaks - the binary knows.

Tamper response

When something trips, choose exactly what happens - silent, loud, or catastrophic.

OptionWhat it doesTake care
Kill on detectionWhen something trips, terminate the process. This is the safe default.
Stolen-API responseInstead of killing, degrade - APIs return silent failures. Attackers waste hours.
NanomitesCritical instructions become debug traps. A debugger unpacks them but a real run doesn't.Some antivirus vendors flag nanomite techniques. Verify with your target AV.
Kill messageWhat Windows shows the user when tamper is detected.
Decoy work in response pathsHow much filler code goes in the tamper-response path. Higher = harder to isolate the real response.
How to kill on tamperWhat Windows does the moment tamper is detected. Silent-corrupt is default and hardest to notice.
Redundant kill methodsHow many independent kill mechanisms fire in parallel. Debuggers cannot single-step around all of them.
Custom response per attack typeDifferent behaviour for debug vs dump vs hook vs sandbox - instead of one global response.Fills in per-attack messages below to override the global kill message.
Per-attack messagesA separate message for each kind of detection: debugger, attach attempt, memory dump, injection, inline hook, integrity failure, sandbox, virtual machine. They replace the global kill message.

Packaging

Product name, icon, version. Compression. What Windows shows the user.

OptionWhat it doesTake care
Static packerCompress the binary. Smaller distribution, extra hop for unpackers.Adds a decompressor stub. Some antivirus vendors flag packers generically - verify with your target AV.
PE header cleanupStrip symbols, rename sections, wipe reloc and rich headers.
Symbol poison pathFake PDB path embedded in the binary. Sends reversers to a rabbit hole.
Replace application iconUpload an .ico to replace the icon Windows Explorer shows.
Message box iconWhich system icon shows on tamper message boxes.
Made-with-Atlas tagEmbed a small "Protected by Atlas" tag in a non-visible section. Helps us track adoption.
Deterministic build seedReuse the same seed to reproduce a byte-identical build. Off = fresh random seed each run.
Embed build manifestAppend a signed manifest of which protections were applied. Useful for audit trails.
Product name, Company name, File description, Product version, Original filename, Legal copyright, Embedded watermark, Message box titleText fields written into the program's version information: what Windows shows in file properties and the process list.