Python Obfuscator version history

Changelog for the obfuscation engine, desktop clients, and hosted API.

Engine history

v1.0.0 - 17.09.2026

  • Initial release — first public Python obfuscation engine
  • VM virtualization — hide logic in micro opcode interpreters that are hard to follow
  • State machine — run linear blocks through a dual-state automaton instead of straight-line code
  • Control-flow flattening — fold the program into a while/if dispatcher
  • Self-defending — integrity probe that poisons keys if the script is patched
  • Encrypt strings — polymorphic decrypt helpers so literals never sit in plaintext
  • Protection linker — decoy calls, honeypot resolvers, and stack tripwires tied to helpers
  • Rename variables — random, scope-safe names for locals and globals
  • Rename parameters — rename parameters and their in-body bindings
  • Rename functions — rename definitions and retarget every call site
  • Rename function calls — route calls through an indirect name table
  • Shuffle functions — randomize top-level function order
  • Resolve constants — inline named constants and drop unused declarations
  • Encrypt integers — replace integer literals with equivalent arithmetic
  • MBA binary ops — rewrite operators as mixed boolean-arithmetic identities
  • Integers to arrays — hide integers in indexed lookup arrays
  • Affine integer mask — wrap integers in reversible xor/affine masks
  • Integers to floating — express integers via math floating-point forms
  • Encrypt floating — replace float literals with equivalent math expressions
  • Floats to arrays — hide floats in indexed lookup arrays
  • Split strings — break literals into concatenated substrings
  • Modify strings — rebuild strings from runtime character transforms
  • String char-array vault — store strings as char-code arrays rebuilt at runtime
  • Array int/char/double/string crypt — encrypt list contents and decode on use
  • Insert random value bucket — module-level decoy pools that waste analysis time
  • Insert ternary operators — collapse simple branches into opaque conditionals
  • Insert dead code — inject inert statements that never change output
  • Complexify booleans — rewrite true/false checks into equivalent complex forms
  • Opaque branches — insert always-false predicates between real statements
  • Opaque mixer chain — chained mixers and unreachable guards
  • Decoy functions — unused but plausible extra functions
  • Lambda decoys — inert unused lambda bindings at the top
  • Literal padding — unused string constant to shift size and line numbers
  • Fake import markers — commented fake dependency/import lines
  • Dynamic getattr calls — build targets via getattr() and indirect invocation
  • Callback registration stubs — dead handler/callback registrations
  • Try/finally noise — wrap regions in inert try/finally blocks
  • Detect debugger — exit when a debugger or tracer is attached
  • Anti-VM / anti-sandbox / anti-emulator — exit under virtualized analysis
  • Remove comments — strip # comments from the output

Client history

v1.0.0 - 17.09.2026

  • Initial release — first public clients and SDKs
  • Windows GUI — desktop app to pick files, set strategies, and obfuscate
  • CLI for Windows and Linux — scriptable batch runs in CI and shells
  • Online obfuscator and Web API — run the engine from the browser or HTTP
  • Visual Studio Code and AI editors (like Cursor etc.) extension to simplify the obfuscation
  • Official SDKs — PHP, Python, JavaScript, Rust, and C# packages on the API page