Skip to content

Expand replacements-family matchers and add CFF / js-confuser detectors - #5

Merged
ctrl-escp merged 10 commits into
mainfrom
dev
Aug 30, 2026
Merged

ctrl-escp merged 10 commits into
mainfrom
dev

Conversation

@ctrl-escp

@ctrl-escp ctrl-escp commented Aug 30, 2026 •

Copy link
Copy Markdown
Owner
  • Widen replacements-family detection: memoized string-array factories, checksum and literal-hop rotate IIFEs, and proxy-wrapper clusters (proxied_array_function_replacements, richer augmented_proxied_*).
  • Add product labels for javascript-obfuscator CFF extras (cff_storage_object, sequenced_index_switch) and js-confuser shapes (js_confuser_string_bank, js_confuser_state_machine).
  • Extend obfuscator_io reduced-mode suppressions so it can remain the primary label when it fires alongside replacements-family / CFF hits; document algorithms and refresh the detector catalog.
  • Also bumps ESLint and related lint tooling.

ctrl-escp and others added 9 commits August 30, 2026 16:35
…ock.json

- Updated ESLint from version 10.1.0 to 10.9.1.
- Upgraded @eslint/config-array to version 0.23.5.
- Upgraded @eslint/config-helpers to version 0.7.0.
- Upgraded @eslint/core to version 1.2.1.
- Upgraded @eslint/object-schema to version 3.0.5.
- Upgraded @eslint/plugin-kit to version 0.7.2.
- Updated minimatch from version 10.2.4 to 10.2.6.
- Adjusted linting scripts in package.json for improved command usage.
Add reusable AST checks for checksum/literal-hop augmentation, memoized
string-array factories, proxy-wrapper clusters, and CFF/sequence shapes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Recognize memoized self-reassign string-array factories and treat both
literal-hop and parseInt checksum IIFEs as the augmented_ modifier.

Co-authored-by: Cursor <cursoragent@cursor.com>
Match decoder tables reached through single-return argument-remapping
wrappers without requiring a rotate IIFE.

Co-authored-by: Cursor <cursoragent@cursor.com>
Detect javascript-obfuscator control-flow extras: 5-letter-key storage
objects and pipe-split or numeric sequenced switch dispatchers.

Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce product labels for short-string banks with non-trivial indexers
and sum(states)-style loops with switch or if dispatch.

Co-authored-by: Cursor <cursoragent@cursor.com>
Wire the new labels into the detector registry and hide replacements-family
plus CFF extras under obfuscator_io in reduced mode.

Co-authored-by: Cursor <cursoragent@cursor.com>
Update detector expectations and add true-negative cases for ordinary
helpers, passthrough wrappers, and non-augmenting rotates.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add module-level algorithm notes and examples across detectors, and refresh
the README detector catalog.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ctrl-escp ctrl-escp self-assigned this Aug 30, 2026
@ctrl-escp ctrl-escp changed the title Dev Expand replacements-family matchers and add CFF / js-confuser detectors Aug 30, 2026
@ctrl-escp
ctrl-escp merged commit d565441 into main Aug 30, 2026
3 checks passed
@ctrl-escp
ctrl-escp deleted the dev branch August 30, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant