PHP 8.x · Rust-Loader · Web + CLI · Linux / Unix

Verkaufen Sie Ihr PHP-Programm.
Ohne den Quellcode mitzuliefern.

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.

1. Online encodieren 2. Kunde installiert 3. Verschlüsselt ausführen
# 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.

PHP wird nicht kompiliert.
Für Software-Verkäufer ein großes Problem.

Ihr Kunde ist Ihr Konkurrent

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.

Lizenzschlüssel halten nichts auf

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.

Ihre Arbeit liegt auf fremden Festplatten

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.

Funktionsweise

1

Hochladen

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.

2

Ausliefern

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.

3

Laden

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.

Eingebaute Features

🔐 AES-256-GCM

Authentifizierte Verschlüsselung nach NIST-Standard. Wird ein Byte verändert, schlägt der GCM-Tag fehl und die Ausführung wird verweigert.

🧂 Schlüssel pro Datei

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.

🛡️ Kernfunktionen in eigener VM

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.

🌐 Multi-Domain-Lizenz

Eine Lizenz kann mehrere Hostnamen oder Wildcards (*.example.com) auflisten. Trifft eine zu, wird durchgelassen.

🔌 MAC-Adresse binden

Für CLI-Tools, Cron-Jobs und Nicht-HTTP-Umgebungen: Lizenz direkt an die MAC-Adresse der Kundenmaschine binden (gelesen aus /sys/class/net).

⏳ Ablaufdatum

Versionen mit Gültigkeitsdauer ausgeben (Trial, Subscription, Release-Zyklen). Der Loader vergleicht die Systemuhr mit dem in der Datei eingebetteten Timestamp.

⚙️ Standard-PHP-Extension

In php.ini per extension= laden. PHP-FPM, mod_php, CLI, FrankenPHP — alles wird unterstützt.

🪶 Schlanker Loader

Eine einzige ~2.0 MB stripped .so (inkl. Bytecode-VM und cranelift JIT). Entschlüsselung pro Datei in unter 1 ms.

🔁 Unverschlüsselte Dateien unbeeinflusst

Normale .php-Dateien werden ganz normal kompiliert — der Loader fängt nur Dateien mit BinaryPHP-Magic-Header ab, alles andere bleibt unberührt.

Performance: Verschlüsselung kostet praktisch nichts

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.

1 Million Hot-Loop-Iterationen (for + % + Akkumulator) · kürzer = schneller · Baseline ist natives PHP
Natives PHP
88.6 ms
1.0×
binaryphp-rs
89.5 ms
1.0×
binaryphp-vm + JIT
~115 ms
1.3×
binaryphp-vm interpretiert
197.6 ms
2.2×
nativ / .bphp Volldatei-Verschlüsselung #[Protected] · cranelift JIT #[Protected] · reine Interpretation
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.

Auswahlhilfe: Für die Auslieferung kompletter Pakete reicht .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.

Pläne und Preise

Über Stripe monatlich oder jährlich, jährlich automatisch 20% Rabatt.

Free

$0für immer kostenlos
  • Mit Google anmelden, sofort nutzbar
  • Pro Datei 1 MB.php oder .zip
  • 1 exakte Domain (keine Wildcards) + 1 MAC
  • Verschlüsselungsstärke identisch mit Bezahlversionen
  • Sendelimit aktiv
Anmelden und loslegen
Für ISVs

Ultra

$10/ Monat · $96 / Jahr (20% sparen)
  • Enthält alle Pro-Features
  • Pro Datei 300 MB (Multipart-Upload für große Dateien)
  • REST API + Webhook, integrierbar in Ihren Vertriebsworkflow
  • Kunde bestellt → Sie rufen unsere API auf → wir senden Download-Link per Webhook → Sie senden ihn an den Kunden
  • Pro Encoding individuell Domain / MAC / Ablaufdatum festlegbar
  • Priorisierter Support
Über Stripe abonnieren

Free 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).

Loader installieren

Kostenlos, frei verteilbar. Jeder Host, der ein BinaryPHP-verschlüsseltes Plugin laufen lassen will, muss diesen Loader zuerst installieren.

Kundenseite

Standard-Installation (Debian/Ubuntu, PHP 8.2)

# 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.

Plugin-Entwickler

SaaS-Encoder verwenden

Keine CLI-Installation, keine Master-Schlüssel-Verwahrung. Encoder öffnen, hochladen, Lizenz festlegen, verschlüsselte Datei herunterladen. Fertig.

  • Pro Datei unabhängiger Random-Salt + AES-256-GCM
  • Lizenzdaten (Domain · MAC · Ablauf) im Chiffrat eingebettet, nicht manipulierbar
  • Dateiname unverändert (.php.php)
  • Loader erkennt am Magic-Header, unabhängig von der Endung
Encoder öffnen

Free akzeptiert .php oder .zip bis 1 MB. Pro bis 100 MB; Ultra via Multipart bis 300 MB.

Häufig gestellte Fragen

Ist BinaryPHP wirklich nicht zu knacken?

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:

  • Den Loader reverse-engineeren
  • Laufzeitlogik analysieren
  • VM-Bytecode rekonstruieren
  • Verschleierten Programmfluss wiederherstellen

Selbst bei Erfolg ist das Ergebnis meist kein Quellcode, sondern:

  • Verlorene Variablennamen
  • Keine Kommentare
  • Verworrener Kontrollfluss
  • Schwer wartbare Zwischendarstellung

Und BinaryPHP wird laufend aktualisiert:

  • Loader
  • VM-Instruktionssatz
  • Verschleierungsschicht
  • Anti-Debug / Anti-Tamper

Alte Cracking-Tools werden so schnell unbrauchbar.

Das ist die Kernphilosophie von BinaryPHP:

Cracking nicht „unmöglich" machen, sondern „unrentabel".

Web oder CLI — welche Lizenzart soll ich nehmen?

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.

Wird die Performance gedrosselt?

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.

Liegt der Master-Schlüssel auf meinem Server?

Bei Verwendung des SaaS-Encoders: Nein. Der Master-Schlüssel bleibt immer bei uns und gelangt nie in Ihre Umgebung.

Was ist anders als bei anderen Encoding-Lösungen?

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.

Funktioniert es auf Shared Hosting?

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.

Welche Schutzschichten bietet BinaryPHP?

Der Loader bringt drei unabhängige Verteidigungsschichten mit:

  • AES-256-GCM authentifizierte Verschlüsselung + HKDF-SHA256 Schlüsselableitung pro Datei. Jede Datei mit eigenem Salt und Schlüssel — wird eine geknackt, sind andere Dateien nicht betroffen.
  • Eigene Bytecode-VM, speziell für Funktionen 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.
  • Lizenzdaten im Chiffrat eingebettet: Domain / MAC / Ablauf. Wird auch nur eine Stelle verändert, schlägt der GCM-Tag fehl und die Ausführung wird verweigert.

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.

Kompatibel mit meinem Framework / Autoloader?

Ja. BinaryPHP klinkt sich in den PHP-Kompilierungsprozess ein, daher funktionieren include / require wie gewohnt — Composer Autoload, Framework-Router, Plugin-Systeme alle problemlos.

OPcache-kompatibel?

Ja. OPcache übernimmt das Caching der Kompilierungsergebnisse erst nach unserer Entschlüsselung und Kompilierung; pro Invalidierungszyklus wird nur einmal entschlüsselt.

Wie sieht das Dateiformat aus?

Öffentliche und stabile Spezifikation: 52-Byte-Header ("BPHP2" Magic + Version + 16-Byte-Salt + 12-Byte-IV + 16-Byte-GCM-Tag), gefolgt vom Chiffrat.

Welche Zahlungsmethoden werden unterstützt?

Abrechnung läuft komplett über Stripe, zur Wahl:

  • Monatliches Abo — Pro $5/Monat, Ultra $10/Monat, jederzeit kündbar.
  • Jährliches Abo — gleiche Pläne als Jahresabo, automatisch 20% Rabatt (Pro $48/Jahr, Ultra $96/Jahr).

Abos mit 30-Tage-Geld-zurück-Garantie. Stripe akzeptiert alle gängigen Kreditkarten und viele regionale Zahlungsmethoden.

Kann jemand mit bösartigem PHP Ihr System lahmlegen?

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):

  • Pfad-Traversal blocken (../, absolute Pfade, Laufwerksbuchstaben)
  • ZIP-Bomben blocken (kumuliert entpackt > 200 MB oder Kompressionsrate > 100×)
  • Zu viele Einträge blocken (> 2.000 Dateien oder > 1.000 .php-Dateien)
  • Zu tiefe Verzeichnisse blocken (> 16 Ebenen)

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.

Wie funktioniert der API-Plan?

Für ISVs / SaaS-Anbieter, die verschlüsselte PHP-Plugins weiterverkaufen. Nachdem ein Kunde bei Ihnen bestellt:

  1. Ihr Server POSTet an unsere REST-API mit Kunden-Domain / MAC, Encoding-Parametern, Webhook-URL.
  2. Wir holen den Quellcode von einer von Ihnen angegebenen URL (oder akzeptieren ihn inline), encodieren ihn und laden in R2 hoch.
  3. Wir POSTen den Download-Link an den von Ihnen konfigurierten Webhook.
  4. Sie leiten den Link an den Kunden weiter (E-Mail, Dashboard — wie auch immer).

Encoding-Ergebnisse bleiben 72 Stunden in R2, dann automatisch gelöscht; hochgeladener Quellcode wird innerhalb von 24 Stunden gelöscht.

Kunden, die mit BinaryPHP ausliefern

Liefern Sie nicht länger Ihren Quellcode mit aus.

Mit Google anmelden und loslegen — Free-Version sofort nutzbar, keine Kreditkarte nötig.