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.