obfuskator/crates
loki5512344 2172206e83
passes: implement control-flow pass (4 schemes + rotation)
FlowPass rebuilds one method per scheme picked from FlowConfig:
state-spread (dense tableswitch dispatcher), computed-switch
(sparse lookupswitch over a counter local), butterfly (branch
inversion), exception-goto (dispatcher under try with a dead
catch-all), plus opaque goto-splices inside every method and
StackMapTable recomputation afterwards. Now in standard_pipeline
(between constants and noise); --no-flow is an honest off-flag.

Acceptance is real JVM, not shapes: per-scheme verify, rotation
spread, calc-prints-45 execution, paranoid smoke on lorep-1.1.0
(131 methods rebuilt, no new failures over standard).

Two verifier rules learned the hard way are now construction
invariants: no inserted mark shares a bytecode offset with a
foreign one (nop pads), and no frameless gap follows a terminal
(dead blocks are opaque-entered and throw).

Also fixes a latent frame-emitter bug the pass exposed: wide
stack values were written as slot pairs ([Double, Top]) while
javac writes one entry ([Double]); HotSpot rejects the pair.
Stacks now collapse like locals (emit::stack_vars), with a
regression test in classfile/tests/frames.rs.
2026-10-09 11:11:55 +02:00
..
noxis passes: implement control-flow pass (4 schemes + rotation) 2026-10-09 11:11:55 +02:00
noxis-analysis Fix formatting and example lint after shroud->noxis rename 2026-10-08 22:04:02 +02:00
noxis-classfile passes: implement control-flow pass (4 schemes + rotation) 2026-10-09 11:11:55 +02:00
noxis-core structure-check: gate counts code lines, docs and comments in English 2026-10-09 10:31:02 +02:00
noxis-jar Initial commit: noxis JVM bytecode obfuscator 2026-10-08 22:01:03 +02:00
noxis-passes passes: implement control-flow pass (4 schemes + rotation) 2026-10-09 11:11:55 +02:00
noxis-runtime Initial commit: noxis JVM bytecode obfuscator 2026-10-08 22:01:03 +02:00
noxis-structure-check structure-check: gate counts code lines, docs and comments in English 2026-10-09 10:31:02 +02:00
noxis-verify Fix formatting and example lint after shroud->noxis rename 2026-10-08 22:04:02 +02:00