Truncation is detected
A cut file no longer matches its GCM tag. The loader fails with a decode error instead of executing a partial program.
SECURITY ARCHITECTURE
Altered binaries fail to decode. Downgraded builds are rejected by monotonic counters. OnionZero is designed so that the easiest response to an attack is a clean refusal — never corrupted execution.
Every protected file is sealed with AES-256-GCM — an authenticated encryption mode. The authentication tag is a cryptographic proof that the payload is exactly the bytes the vendor sealed.
A cut file no longer matches its GCM tag. The loader fails with a decode error instead of executing a partial program.
Flipping a single byte invalidates authentication. Patched or injected payloads are rejected before any code runs.
Swapping a file from another package — or an older release — fails the same check. Each artifact authenticates as itself, and only as itself.
Attackers do not only break current builds — they downgrade to old, weaker ones. OnionZero counters this with monotonic version state that only moves forward.
License and runtime state carry a monotonic revision. Once the system has seen a newer revision, older ones stop being acceptable.
Restoring an old license file, snapshot or backup from before an update is detected as a rollback attempt and rejected.
Minimum-version and forced-update policies let the vendor declare old releases dead. A patched vulnerable build stays patched in the field.
The native extension adds baseline anti-debugging and tamper-detection layers around the compile step — the moment where plaintext briefly exists in memory.
BEYOND PHP
OnionZero PE/Binary and Android protection seal ready-made .exe/.dll binaries and Android APKs under the same security architecture:
Ask us how anti-tamper and anti-rollback policies apply to your release model.