obfuskator/crates
loki5512344 59637e50dc
verify: add adversary module - generic constant-folding script
noxis-verify::adversary::fold_constants walks maximal straight-line
Const(Int/Long)+Binary{Int,Long} runs, modeling the baseline attack
any deobfuscator runs first (and the one raised on the forum: two
adjacent literals and one op, foldable in your head). Each stack slot
carries its own provenance span, so several split constants placed
back to back without a separator are reported as separate findings
instead of merging into one run.

Two uses: an honest §7 measurement (answer: every Constants scheme,
mba included, folds under a generic evaluator - only pattern matchers
hardcoded to one opcode are defeated, documented already in
constants/forms.rs) and a correctness oracle (every scheme must fold
back to the exact source value, now pinned by a regression test).

Tests: bare_literals_are_not_folded,
every_constants_scheme_folds_back_to_the_source_value.
2026-10-14 01:35:21 +02:00
..
noxis verify,cli: jadx decompile-quality metric with analyze --decompile 2026-10-10 13:32:23 +02:00
noxis-analysis analysis: lock mixin classes and plugin again (revert mixin rename) 2026-10-13 13:18:13 +02:00
noxis-classfile classfile,passes: model RuntimeVisibleTypeAnnotations and AnnotationDefault 2026-10-13 10:17:10 +02:00
noxis-core passes: add mba scheme to Constants (and+or+add identity) 2026-10-14 01:30:10 +02:00
noxis-jar jar: pass module-info.class through as a raw resource 2026-10-13 10:23:19 +02:00
noxis-passes passes: add mba scheme to Constants (and+or+add identity) 2026-10-14 01:30:10 +02:00
noxis-runtime frames,jar,passes: verifier-driven hardening from real jars 2026-10-09 13:47:27 +02:00
noxis-structure-check frames,jar,passes: verifier-driven hardening from real jars 2026-10-09 13:47:27 +02:00
noxis-verify verify: add adversary module - generic constant-folding script 2026-10-14 01:35:21 +02:00