Fighting Game · Guides & deep dives

V2 Executable Packing and Encryption

The launch coverage is Win64-Shipping, Linux-Shipping, and Mac-Shipping.

3sections2 minread

On this page

V2 shipping binaries are distributed through a protected executable envelope after the Shipping build is produced and before storefront wrapping. The packing layer is intentionally scoped to release packaging: it encrypts the shipping payload, records exactly what was packed, and leaves gameplay determinism, accessibility fallbacks, and crash reporting paths outside the protected envelope.

Profiles#

The launch coverage is Win64-Shipping, Linux-Shipping, and Mac-Shipping. Each profile defines the input binary, protected binary, encrypted chunk manifest, signed packing manifest, symbol input, storefront coverage, and excluded modules in V2/ue/Build/DRM/v2-executable-packing.json.

Every profile uses AES-256-GCM for payload encryption, zstd compression, an Ed25519 signed packing manifest, and release KMS envelope key wrapping. The packing manifest is release evidence and must be archived beside the protected binary so support, build engineering, and security review can trace the exact inputs used for a store submission.

The binary signing handoff is explicit: sign binary after packing, never before the protected executable envelope is produced.

Safety Boundaries#

This layer does not implement anti-debugging, runtime memory inspection, license verification, or code virtualization. Those are separate Phase 72 tasks with their own tests and review requirements. Keeping this boundary explicit avoids mixing packaging protection with gameplay runtime behavior.

The packer must preserve crash unwind information, leave CrashReportClient outside the envelope, and retain platform symbol inputs. Symbolication and crash triage are release blockers, so protected builds must remain supportable.

Rollback and accessibility modules are also excluded from the protected payload. The deterministic simulation code path must behave the same in protected and unprotected builds, and the accessibility safe mode bypass must remain available for support-approved recovery scenarios.

CI Gates#

V2/ue/Tools/plan-v2-executable-packing.py emits the deterministic packing plan used by BuildGraph and release review. V2/ue/Tools/check-v2-executable-packing.py validates the manifest, planner output, Horde wiring, CI workflow wiring, and this runbook.

Required release gates:

  • drm-executable-packing-plan-generated
  • drm-executable-packing-profile-coverage
  • drm-executable-packing-encryption-enabled
  • drm-executable-packing-manifest-signed
  • drm-executable-packing-crash-unwind-preserved

The gates ensure that every shipping desktop profile has encrypted payloads, a signed packing manifest, crash unwind preservation, and explicit isolation from deterministic simulation and accessibility fallback paths.