Skip to content

Add support for XerinFuscator v3.0.0.29 (ReferenceProxy fixes) #11

@splashhr

Description

@splashhr

Hi team — thanks for the great project!

I’d like to request support for XerinFuscator v3.0.0.29 (a ConfuserEx-style obfuscator/fork) — it uses Confuser-like ReferenceProxy protections and DynCipher-based expression encodings. de4dotEx/de4dot-cex already handles many ConfuserEx variants, but this Xerin version leaves many proxy calls unresolved.

What I observed:

  • The obfuscated assemblies contain assembly attribute: XerinAtrribute("XerinFuscator v3.0.0.29")
  • ReferenceProxy is implemented using NormalEncoding and ExpressionEncoding (Confuser.DynCipher AST → IL).
  • Many resolver methods use switch/jump-table or static tables initialized inside a helper .cctor call chain.

What I propose / what would help:

  1. Add a detection rule matching the XerinAtrribute("XerinFuscator v3.0.0.29") (or other reliable signature) to enable Xerin-specific fix pipeline.
  2. Extend ProxyCallFixer to:
    • attempt static extraction of mappings from switch and static arrays (.cctor initializers),
    • fallback to DynCipher AST evaluation if possible,
    • provide optional runtime extraction mode for cases where expressions are generated dynamically.
  3. Add a small test-case or minimal repro (I can provide a sanitized, minimal assembly that reproduces the proxy pattern).

I can prepare a PR that:

  • implements detection,
  • adds a XerinReferenceProxyFixer (or extends existing ProxyCallFixer),
  • includes a small test harness and instructions how to reproduce.

Notes / security:

  • I prefer not to attach full installer binaries publicly; I can prepare a tiny minimal-repro assembly or provide a way to privately share a sample (if maintainers prefer).

If helpful, I can open a PR with implementation + tests. Please advise preferred branch/target and whether you can accept a small repro or prefer me to attach only the test assembly.

Thanks!

xerin.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions