PHP 8.x · Rust-Loader · Web + CLI · Linux / Unix
BinaryPHP verschlüsselt Ihren kommerziellen PHP-Code mit AES-256-GCM, mit einem unabhängigen Schlüssel pro Datei, und bindet ihn an Domain oder MAC mit Ablaufdatum — die Entschlüsselung erledigt ein extrem schlanker Rust-Loader transparent. Schlüssel werden quartalsweise aktualisiert, mit dauerhafter Abwärtskompatibilität, und die Cracking-Kosten übersteigen die Lizenzgebühren bei weitem.
# Auf binaryphp.com/encode/ Datei hochladen, Lizenzdaten eingeben:
Domain: acmestore.com, *.acmestore.com
Ablauf: 2027-12-31
Name: acme-pro
# Eingabe → plugin.php (Ihr Quellcode, ~40 KB)
# Ausgabe → plugin.php (verschlüsselt, ~41 KB Binärinhalt)
# Dateiname und Endung bleiben gleich — Sie können die Originaldatei direkt überschreiben.
# Aufrufende Stellen müssen nichts ändern. Der Loader erkennt Dateien am 5-Byte
# "BPHP2"-Magic-Header, unabhängig von der Endung.
# Der Master-Schlüssel bleibt auf unserem Server, Sie erhalten nur das
# verschlüsselte Endprodukt.
In dem Moment, in dem der Kunde Ihre .zip herunterlädt, kann jede Zeile PHP, die Sie geschrieben haben, kopiert, geändert und weiterverkauft werden.
Wenn der Quellcode offen daliegt, kann die Lizenzprüfung in wenigen Minuten herausgenommen werden. Ohne Schutz auf Code-Ebene ist eine Lizenz nur ein Schalter, keine Mauer.
Sobald der Kunde herunterlädt, ist Ihr geistiges Eigentum verstreut auf Shared-Hosting, VPS, CI-Maschinen — Sie sehen es nicht, kontrollieren es nicht, und ein tar -xzf reicht, um alles zu extrahieren.
Ziehen Sie eine .php-Datei oder ein komplettes Plugin-.zip in unseren Online-Encoder, stellen Sie Domain, MAC und Ablaufdatum ein. Fertig. Der Master-Schlüssel bleibt auf unserer Seite — Sie müssen sich nicht um die Aufbewahrung kümmern.
Verschlüsselte Datei herunterladen. Jede Datei erhält einen unabhängigen 16-Byte-Salt und einen mit HKDF-SHA256 abgeleiteten Schlüssel. Wird auch nur ein Byte verändert, schlägt die GCM-Verifizierung fehl und die Ausführung wird verweigert.
Der Kunde fügt eine Zeile extension=binaryphp.so in die php.ini ein. Der Loader klinkt sich in den PHP-Kompilierungsprozess ein, entschlüsselt im Speicher, prüft die Lizenz (Domain via SERVER_NAME / HTTP_HOST oder MAC bei CLI), und übergibt den Klartext direkt an die Zend Engine.
Authentifizierte Verschlüsselung nach NIST-Standard. Wird ein Byte verändert, schlägt der GCM-Tag fehl und die Ausführung wird verweigert.
Jede verschlüsselte Datei erhält einen unabhängigen 16-Byte-Salt, dann wird mit HKDF-SHA256 ein dateispezifischer Schlüssel abgeleitet. Jede Datei ist eigenständig versiegelt, ohne sich gegenseitig zu beeinflussen.
Funktionen mit #[binaryphp\Protected] werden in unseren eigenen Bytecode kompiliert — kein PHP, kein Zend-Opcode. Zur Laufzeit interpretiert der Loader sie direkt; Algorithmen liegen nie im Quellcode auf der Kundenfestplatte.
Eine Lizenz kann mehrere Hostnamen oder Wildcards (*.example.com) auflisten. Trifft eine zu, wird durchgelassen.
Für CLI-Tools, Cron-Jobs und Nicht-HTTP-Umgebungen: Lizenz direkt an die MAC-Adresse der Kundenmaschine binden (gelesen aus /sys/class/net).
Versionen mit Gültigkeitsdauer ausgeben (Trial, Subscription, Release-Zyklen). Der Loader vergleicht die Systemuhr mit dem in der Datei eingebetteten Timestamp.
In php.ini per extension= laden. PHP-FPM, mod_php, CLI, FrankenPHP — alles wird unterstützt.
Eine einzige ~2.0 MB stripped .so (inkl. Bytecode-VM und cranelift JIT). Entschlüsselung pro Datei in unter 1 ms.
Normale .php-Dateien werden ganz normal kompiliert — der Loader fängt nur Dateien mit BinaryPHP-Magic-Header ab, alles andere bleibt unberührt.
Der Loader hängt sich in zend_compile_file ein, jeder PHP-Prozess
entschlüsselt jede Datei nur einmal. Nach der Kompilierung zu Zend-Opcode
ist die Ausführungsgeschwindigkeit identisch mit normalem PHP.
Mit OPcache wird sogar diese eine Entschlüsselung über den Cache amortisiert.
for + % + Akkumulator) · kürzer = schneller · Baseline ist natives PHP
| Workload | Natives PHP | binaryphp-rs (.bphp · Volldatei) |
binaryphp-vm (#[Protected] · Bytecode-VM) |
|---|---|---|---|
1 Mio. Hot-Loop-Iterationen in einer Funktion (for + % + Akkumulator) |
88.61 ms ± 0.95 |
89.48 ms ± 3.08 |
~115 ms (JIT) · interpretiert 197.56 ms |
| Kaltstart — kleine Datei (~220 B) | 56.05 ms ± 1.62 |
56.46 ms ± 1.34 |
~bphp (nur Stub, Funktion noch nicht aufgerufen, VM nicht aktiv) |
| Kaltstart — 10-KB-Datei (200 Funktionen) | 57.14 ms ± 1.33 |
57.09 ms ± 1.57 |
~bphp (VM-Kosten beim Aufruf, nicht beim Laden) |
| OPcache-Steady-State | identisch mit nativ |
identisch mit nativ |
zusätzliche Kosten pro Aufruf |
| Nativ ≈ binaryphp-rs (Differenz innerhalb der Fehlertoleranz). binaryphp-vm Hot-Loop etwa 1,3× langsamer (cranelift JIT optimiert Integer-Hot-Path) — dafür Schutz auf Bytecode-Ebene: selbst wenn der Master-Schlüssel leakt, bleibt der Funktionsinhalt unsichtbar. | |||
Gemessen am 2026-05-05 mit hyperfine, jede Datenreihe 30 Läufe.
Umgebung: Debian 12 (Kernel 6.5) + PHP 8.2.30 + Rust 1.95.0,
Intel Xeon E5-2680 v4 @ 2.40 GHz (binaryphp.so 548 KB,
Release + LTO Build). Entschlüsselungskosten pro include entsprechen
etwa Dateigröße / 1 GB/s (AES-NI-Hardware-Beschleunigung)
plus ~50 µs für HKDF und Lizenzprüfung. VM-Ausführungskosten skalieren
mit der Anzahl der Bytecode-Instruktionen. Compiler-Peephole-Optimierungen
($x++, $x += k, $x = $x + e,
Slot-vs-Slot-Integer-Vergleich, $x * imm, x % imm)
haben die Hot-Loop-Kosten von ~5× auf ~2,5× gedrückt, indem
LoadVar / StoreVar-Stack-Operationen zu einer einzigen Op zusammengefasst wurden.
VM-Sprachabdeckung:
OOP (Klassen, extends, abstract,
interface, trait + use,
static, Klassenkonstanten, $this,
parent::, self::, magische Methoden
__construct / __get /
__set / __call);
Closures function () use (…) und
Arrow-Functions fn () => expr;
try / catch / finally / throw;
match, === / !==, ??,
?:, <=>, instanceof;
Lazy-/Coroutine-Generatoren (yield mit Frame-Snapshot & Resume —
unendliche Generatoren möglich, nur tatsächlich konsumierte Werte werden berechnet);
vollständiges for / while / foreach / switch / break / continue;
Spread ...$args;
Referenzen &$x (Funktionsargumente und Built-ins wie
array_push / sort unterstützt);
global; heredoc / nowdoc;
ca. 50 Built-in-Funktionen (strlen,
count, trim, explode,
implode, sprintf, md5,
sha1, base64_encode/decode,
array_* usw.);
#[Protected] auch für Klassenmethoden, $this->prop
Lese-/Schreibzugriffe werden zwischen PHP und VM automatisch synchronisiert;
cranelift AOT JIT optimiert Integer-Hot-Loops.
.bphp (binaryphp-rs) —
der Geschwindigkeitsunterschied zu nativem PHP ist nicht mehr messbar. #[Protected] (binaryphp-vm)
bleibt für die sensibelsten Funktionen — Lizenzvalidierung, Schlüsselableitung, Anti-Tamper-Logik —
zu etwa 2,5× Ausführungskosten erhalten Sie „selbst bei Leak des Master-Schlüssels bleibt die Kernlogik unsichtbar".
Mit OPcache sind nicht geschützte Pfade genauso schnell wie natives PHP.
Über Stripe monatlich oder jährlich, jährlich automatisch 20% Rabatt.
.php oder .zip.zip bis 100 MBFree und Bezahlversionen verwenden dieselbe Encoding-Engine! Dasselbe AES-256-GCM, dieselbe Bytecode-VM, identische Schutzstärke. Der Unterschied liegt nur in den Nutzungslimits (Dateigröße, API-Berechtigungen, Batch-Rate).
Kostenlos, frei verteilbar. Jeder Host, der ein BinaryPHP-verschlüsseltes Plugin laufen lassen will, muss diesen Loader zuerst installieren.
# 1. .so ins PHP-Extension-Verzeichnis kopieren
$ sudo cp binaryphp.so /usr/lib/php/20220829/
# 2. Extension aktivieren
$ echo 'extension=binaryphp.so' | sudo tee /etc/php/8.2/mods-available/binaryphp.ini
$ sudo phpenmod binaryphp
# 3. PHP-FPM (oder Ihr SAPI) neu starten
$ sudo systemctl restart php8.2-fpm
Loader-Aktivierung prüfen:
$ php -r 'echo binaryphp_version();'
0.9.2
$ php -r 'echo binaryphp_hostname();'
your-domain-or-hostname
$ php -r 'print_r(binaryphp_macs());'
Array ( [0] => aa:bb:cc:dd:ee:ff )
Oder im Browser eine beliebige phpinfo()-Seite öffnen — dort erscheint ein eigener BinaryPHP-Block mit Loader-Version, Master-Generation, unterstützten Formaten und Bytecode-VM-Status. Besonders praktisch für Umgebungen ohne CLI (cPanel, Plesk, Shared Hosting):
BinaryPHP support → enabled
Loader version → 0.9.2
Master gen → 2 (rotated 2026-05-06)
File formats → BPHP2/3/4 · HBPH1/2/3 · BVMC1/2/3
Bytecode VM → v3 obfuscation + cranelift JIT
Wählen Sie die zu Ihrer PHP-Minor-Version passende Version (jede .so ist für ein bestimmtes ABI gebaut, nicht austauschbar):
Auf Ihrem Server php -v ausführen, um die tatsächliche Version zu sehen. macOS / aarch64 / FreeBSD derzeit nicht unterstützt.
Keine CLI-Installation, keine Master-Schlüssel-Verwahrung. Encoder öffnen, hochladen, Lizenz festlegen, verschlüsselte Datei herunterladen. Fertig.
.php → .php)Free akzeptiert .php oder .zip bis 1 MB. Pro bis 100 MB; Ultra via Multipart bis 300 MB.
Ehrlich gesagt: Kein offline ausführbares DRM kann „niemals knackbar" garantieren. Auch ionCube, Zend Guard und SourceGuardian wurden bereits untersucht und geknackt.
Das Ziel von BinaryPHP ist daher nicht mythische „absolute Sicherheit", sondern:
Die Kosten des Crackings weit über die Lizenzkosten zu treiben.
BinaryPHP zu knacken bedeutet nicht nur „Datei entschlüsseln". Angreifer müssen typischerweise zusätzlich:
Selbst bei Erfolg ist das Ergebnis meist kein Quellcode, sondern:
Und BinaryPHP wird laufend aktualisiert:
Alte Cracking-Tools werden so schnell unbrauchbar.
Das ist die Kernphilosophie von BinaryPHP:
Cracking nicht „unmöglich" machen, sondern „unrentabel".
Für Programme auf Webservern: Domain-Bindung. Der Loader prüft zuerst $_SERVER['SERVER_NAME'] (von nginx / Apache gesetzt, vom Client nicht fälschbar), bei Fehlen Fallback auf HTTP_HOST. CLI-Tools mit MAC-Adresse binden. Beide gleichzeitig möglich; Treffer eines Eintrags genügt.
Nein. Die Entschlüsselung läuft nur in der Kompilierungsphase, einmal pro Datei. Nach der Kompilierung ist die Ausführungsgeschwindigkeit identisch mit nativem PHP. Mit OPcache wird sogar diese eine Entschlüsselung über alle nachfolgenden Requests amortisiert.
Bei Verwendung des SaaS-Encoders: Nein. Der Master-Schlüssel bleibt immer bei uns und gelangt nie in Ihre Umgebung.
BinaryPHP ist eine 2026 von Grund auf neu entwickelte Version, die moderne Kryptografie (AES-256-GCM, HKDF-SHA256) als Basis nutzt und die Kernlogik mit unserer eigenen Bytecode-VM ummantelt. Toolchain als SaaS, Master-Schlüssel auf unserem Server, Dateiformat mit öffentlicher Spezifikation.
Der Host muss zuerst den BinaryPHP-Loader installieren. Der Loader ist kostenlos und frei verteilbar — Kunden können ihn selbst installieren (eine Zeile in php.ini) oder den Hoster um Vorinstallation bitten.
Der Loader bringt drei unabhängige Verteidigungsschichten mit:
#[binaryphp\Protected]. Diese Funktionen werden in unseren eigenen Bytecode kompiliert (kein PHP, kein Zend-Opcode), zur Laufzeit vom Loader direkt interpretiert. Auf der Kundenfestplatte erscheint nie Klartext-PHP.Die sensibelsten Algorithmen sollten auf Ihrer eigenen Server-API laufen; den Rest schützt BinaryPHP mit gestaffelten Verteidigungen, ohne dass Sie das ganze Programm umschreiben müssen.
Ja. BinaryPHP klinkt sich in den PHP-Kompilierungsprozess ein, daher funktionieren include / require wie gewohnt — Composer Autoload, Framework-Router, Plugin-Systeme alle problemlos.
Ja. OPcache übernimmt das Caching der Kompilierungsergebnisse erst nach unserer Entschlüsselung und Kompilierung; pro Invalidierungszyklus wird nur einmal entschlüsselt.
Öffentliche und stabile Spezifikation: 52-Byte-Header ("BPHP2" Magic + Version + 16-Byte-Salt + 12-Byte-IV + 16-Byte-GCM-Tag), gefolgt vom Chiffrat.
Abrechnung läuft komplett über Stripe, zur Wahl:
Abos mit 30-Tage-Geld-zurück-Garantie. Stripe akzeptiert alle gängigen Kreditkarten und viele regionale Zahlungsmethoden.
Architektonisch nein. Wir führen Ihr hochgeladenes PHP nicht aus, sondern tokenisieren (Syntax aufteilen) und verschlüsseln es nur. Der Encoder ruft token_get_all() (PHPs Lexer, kein Executor) auf der Datei auf, trennt HTML- und PHP-Blöcke, verschlüsselt jeden PHP-Block mit AES und schreibt die Datei. Im gesamten Prozess wird kein eval, include oder Shell-Aufruf verwendet.
ZIP-Uploads haben vier zusätzliche Schutzlinien (vor dem Entpacken):
../, absolute Pfade, Laufwerksbuchstaben)Jede Encoding-Aufgabe läuft in einem separaten temporären Verzeichnis und wird nach dem Senden der Antwort sofort gelöscht. Sie können Malware hochladen, was Sie wollen — wir verschlüsseln sie und geben sie zurück.
Für ISVs / SaaS-Anbieter, die verschlüsselte PHP-Plugins weiterverkaufen. Nachdem ein Kunde bei Ihnen bestellt:
POSTet an unsere REST-API mit Kunden-Domain / MAC, Encoding-Parametern, Webhook-URL.POSTen den Download-Link an den von Ihnen konfigurierten Webhook.Encoding-Ergebnisse bleiben 72 Stunden in R2, dann automatisch gelöscht; hochgeladener Quellcode wird innerhalb von 24 Stunden gelöscht.
10-Minuten-Mail-Service
„Wir haben BinaryPHP zunächst mit der kostenlosen Version getestet, der Eindruck war gut. Jetzt nutzen wir Pro und kompilieren die ganze Website inklusive PHPMailer damit. Das ist wirklich beeindruckend! Eine Verlangsamung haben wir überhaupt nicht gespürt."
Mit Google anmelden und loslegen — Free-Version sofort nutzbar, keine Kreditkarte nötig.