Documentation

Documentation/Protection

Protection architecture

Several layers change different parts of the reconstruction problem.

Analysis before transformation#

Complexer models control flow, data dependencies, exceptions and relationships between calls. These analyses inform transformations instead of treating a class as a collection of interchangeable instructions. Growth budgets constrain method expansion, and the pipeline tracks the state affected by changes.

Layers with different responsibilities#

  • Encrypted constants change how values are stored and recovered.
  • Call indirection changes how references to methods and constructors are represented.
  • Control-flow and data-flow transformations complicate the recovery of straightforward source structure.
  • Method virtualization or native compilation changes how selected method bodies execute. These are deliberate alternatives, not a claim that every method passes through both.

Deliberate selection beats indiscriminate intensity#

The standard pipeline and the optional execution-level modes serve different needs. Virtualization and native compilation are explicit choices. Performance-sensitive methods and compatibility constraints deserve their own policy.

Protection raises the work required to understand and modify an application. It does not make client-resident code mathematically impossible to analyse, and it does not replace server-side authorization or careful secret management.

Contact the team