@@ -4,6 +4,11 @@ Python source obfuscator. Give it a `.py` file, get back a single self-contained
44
55Each build is unique by default. Pass ` --seed N ` if you want a reproducible one.
66
7+ Version 0.6 adds optional Abyss VM protection for selected functions. Protected
8+ function bodies are lowered into encrypted VM assets before CPython compilation,
9+ then executed by a generated per-build runtime instead of being restored as
10+ ordinary Python code objects.
11+
712Version 0.5 adds a shared encoded literal pool, randomized decode paths, more
813integer rewrite forms, and a reserved-import regression fix for reproducible
914stress-tested builds.
@@ -17,6 +22,19 @@ keep-name files, dry runs, stats JSON, HTML reports, manifest verification,
1722output budget gates, a version flag, and CI metadata that matches the supported
1823Python versions.
1924
25+ ## 0.6 Improvements
26+
27+ - ` --abyss ` and ` --abyss-functions ` add an opt-in virtualized protection tier
28+ for supported pure-ish functions.
29+ - Abyss-protected functions are replaced with wrappers before ` compile(...) ` ;
30+ their real bodies are stored as encrypted data for a generated stack VM, not
31+ as marshaled CPython function code objects.
32+ - The generated VM uses per-build randomized opcode values, shuffled dispatch
33+ block order, encrypted constant/code assets, and preservation of referenced
34+ globals so targeted functions still run under identifier renaming.
35+ - Unsupported syntax is refused for explicitly named Abyss functions and skipped
36+ during broad ` --abyss ` auto-protection, keeping the default profile stable.
37+
2038## 0.5 Improvements
2139
2240- String and bytes literals are now stored in a shared encoded pool and decoded
@@ -139,6 +157,8 @@ python -m patchwork INPUT [-o OUTPUT] [options]
139157 --no-junk turn off junk dead-branch injection
140158 --no-lazy turn off lazy per-function encryption
141159 --no-anti-debug turn off runtime anti-debug probes
160+ --abyss virtualize eligible functions into encrypted VM assets
161+ --abyss-functions NAMES virtualize only these functions, comma-separated or repeatable
142162 --audit-only analyze the input and exit without writing output
143163 --audit-json PATH write static audit metadata as JSON
144164 --manifest PATH write build manifest with hashes/options/audit data
@@ -214,6 +234,8 @@ obf = Obfuscator(
214234 junk_branches = True ,
215235 lazy_funcs = True ,
216236 anti_debug = True ,
237+ abyss = False ,
238+ abyss_functions = [],
217239 layers = 3 ,
218240 stage2_layers = 3 ,
219241 keep = {' public_api_name' },
0 commit comments