PHP 8.x · Rust loader · Web + CLI · Linux / Unix
BinaryPHP เข้ารหัสโค้ด PHP เชิงพาณิชย์ของคุณด้วย AES-256-GCM โดยให้กุญแจอิสระต่อแต่ละไฟล์ และผูกกับ โดเมนหรือ MAC พร้อมวันหมดอายุ — ทุกขั้นตอนของการถอดรหัส จัดการโดย Rust loader น้ำหนักเบาแบบโปร่งใส กุญแจอัปเดตทุกไตรมาส รองรับเวอร์ชันเก่าตลอดไป ต้นทุนการแฮ็กสูงกว่าค่าลิขสิทธิ์ของแท้มาก
# ไปที่ binaryphp.com/encode/ อัปโหลดไฟล์และกรอกข้อมูลลิขสิทธิ์:
โดเมน: acmestore.com, *.acmestore.com
หมดอายุ: 2027-12-31
ชื่อ: acme-pro
# นำเข้า → plugin.php (ซอร์สที่คุณเขียน, ~40 KB)
# ส่งออก → plugin.php (หลังเข้ารหัส, ~41 KB binary)
# ชื่อไฟล์และนามสกุลไม่เปลี่ยน — เขียนทับไฟล์เดิมได้เลย โค้ดที่เรียกใช้ไม่ต้องแก้
# loader ตรวจไฟล์จาก magic header "BPHP2" 5 byte ไม่เกี่ยวกับนามสกุลไฟล์
# กุญแจหลักอยู่ที่เซิร์ฟเวอร์เราตลอด คุณได้แค่ไฟล์ที่เข้ารหัสแล้ว
วินาทีที่ลูกค้าโหลด .zip ของคุณไป ทุกบรรทัด PHP ที่คุณเขียนสามารถถูกคัดลอก แก้ไข หรือขายต่อได้ทันที
ซอร์สโค้ดวางอยู่ตรงนั้น แค่ไม่กี่นาทีก็ลบส่วนตรวจ license ออกได้หมด ถ้าไม่มีการป้องกันระดับโค้ด license ก็เป็นแค่สวิตช์ ไม่ใช่กำแพง
พอลูกค้าโหลดเสร็จ ทรัพย์สินทางปัญญาของคุณก็กระจายอยู่บน shared host, VPS, CI machine ต่าง ๆ — คุณมองไม่เห็น คุมไม่ได้ tar -xzf บรรทัดเดียวก็ดึงออกหมด
ลากไฟล์ .php หรือ plugin .zip ไปที่ encoder ออนไลน์ ตั้งค่าโดเมน MAC วันหมดอายุก็เสร็จ กุญแจหลักอยู่ที่ฝั่งเรา — คุณไม่ต้องเก็บรักษาเอง
ดาวน์โหลดไฟล์ที่เข้ารหัสแล้ว แต่ละไฟล์มี salt 16 byte อิสระและกุญแจที่ HKDF-SHA256 derive มา หากถูกแก้ไขแม้ byte เดียว GCM verification จะล้มเหลวและปฏิเสธการรัน
ลูกค้าเพิ่ม extension=binaryphp.so ใน php.ini หนึ่งบรรทัด loader จะแทรกเข้าไปในขั้น compile ของ PHP ถอดรหัสในหน่วยความจำ ตรวจ license (โดเมน SERVER_NAME / HTTP_HOST หรือ MAC ของ CLI) แล้วส่ง plain code ตรงเข้า Zend Engine
การเข้ารหัสแบบ authenticated มาตรฐาน NIST แก้ไฟล์แค่ byte เดียว GCM tag ก็ตรวจไม่ผ่าน ปฏิเสธการรันทันที
ไฟล์เข้ารหัสแต่ละไฟล์มี salt 16 byte อิสระ แล้วใช้ HKDF-SHA256 derive กุญแจเฉพาะของไฟล์นั้น แต่ละไฟล์ปิดผนึกแยกจากกัน ไม่กระทบกัน
ฟังก์ชันที่ติด #[binaryphp\Protected] จะถูก compile เป็น bytecode ของเราเอง — ไม่ใช่ PHP ไม่ใช่ Zend opcode รันโดย loader ตีความตรง ๆ algorithm ไม่ได้ตกอยู่บน harddisk ลูกค้าในรูปซอร์ส
license ใบเดียวสามารถระบุหลาย hostname หรือ wildcard (*.example.com) ตรงอันใดอันหนึ่งก็ผ่าน
เครื่องมือ CLI, cron job และ environment ที่ไม่มี HTTP: ผูก license กับ MAC ของเครื่องลูกค้าโดยตรง (อ่านจาก /sys/class/net)
ออกเวอร์ชันมีอายุได้ (trial, subscription, release cycle) loader จะเทียบ system clock กับ timestamp ที่ฝังในไฟล์
โหลดด้วย extension= ใน php.ini รองรับ PHP-FPM, mod_php, CLI, FrankenPHP ทั้งหมด
.so ขนาด ~2.0 MB ที่ strip แล้ว (รวม bytecode VM และ cranelift JIT) ถอดรหัสต่อไฟล์ใช้เวลาน้อยกว่า 1 ms
ไฟล์ .php ทั่วไป compile ตามปกติ — loader จับเฉพาะไฟล์ที่มี BinaryPHP magic header ส่วนอื่นไม่แตะ
loader hook ที่ zend_compile_file แต่ละ PHP process แต่ละไฟล์ถอดรหัสครั้งเดียว
หลัง compile เป็น Zend opcode ความเร็วการรัน ไม่ต่างจาก PHP ปกติ
เปิด OPcache ก็ยิ่งกระจายต้นทุนการถอดรหัสครั้งเดียวนั้นออกไป
for + % + accumulate) · แท่งสั้นกว่า = เร็วกว่า · baseline คือ native PHP
| workload | Native PHP | binaryphp-rs (.bphp · เข้ารหัสทั้งไฟล์) |
binaryphp-vm (#[Protected] · bytecode VM) |
|---|---|---|---|
hot loop 1 ล้านรอบในฟังก์ชัน (for + % + accumulate) |
88.61 ms ± 0.95 |
89.48 ms ± 3.08 |
~115 ms (JIT) · interpret 197.56 ms |
| cold start — ไฟล์เล็ก (~220 B) | 56.05 ms ± 1.62 |
56.46 ms ± 1.34 |
~bphp (stub เท่านั้น ฟังก์ชันยังไม่ถูกเรียก VM ไม่เริ่ม) |
| cold start — ไฟล์ 10 KB (200 ฟังก์ชัน) | 57.14 ms ± 1.33 |
57.09 ms ± 1.57 |
~bphp (VM cost คิดตอนเรียก ไม่ใช่ตอนโหลด) |
| OPcache steady state | เท่ากับ native |
เท่ากับ native |
มีค่าใช้จ่ายเพิ่มต่อการเรียก |
| Native ≈ binaryphp-rs (ความต่างอยู่ในช่วง error) binaryphp-vm hot loop ช้ากว่าประมาณ 1.3 เท่า (cranelift JIT optimize integer hot path แล้ว) — แลกกับการป้องกันระดับ bytecode: ต่อให้กุญแจหลักรั่ว เนื้อในฟังก์ชันก็ยังไม่เห็น | |||
วัดเมื่อ 2026-05-05 ใช้ hyperfine แต่ละชุดข้อมูลรัน 30 ครั้ง
environment: 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 build แบบ release + LTO)
ต้นทุนการถอดรหัสต่อ include ประมาณเท่ากับ
ขนาดไฟล์ / 1 GB/s (AES-NI hardware acceleration) บวก ~50 µs สำหรับ HKDF และตรวจ license
VM execution cost แปรผันกับจำนวน bytecode instruction
compiler peephole optimization ($x++, $x += k,
$x = $x + e, slot-vs-slot integer compare, $x * imm,
x % imm) บีบ hot loop cost จาก ~5× เหลือ ~2.5× โดยรวม
stack op ของ LoadVar / StoreVar เป็น op เดียว
VM language coverage:
OOP (class, extends, abstract,
interface, trait + use,
static, class constant, $this,
parent::, self::, magic
__construct / __get /
__set / __call);
closure function () use (…) และ
arrow function fn () => expr;
try / catch / finally / throw;
match, === / !==, ??,
?:, <=>, instanceof;
lazy / coroutine generator (yield ใช้ frame snapshot & resume —
infinite generator ใช้ได้ คำนวณเฉพาะค่าที่ถูก consume จริง);
for / while / foreach / switch / break / continue ครบ;
spread ...$args;
reference &$x (ทั้งใน function parameter และ built-in อย่าง
array_push / sort);
global; heredoc / nowdoc;
~50 built-in function (strlen,
count, trim, explode,
implode, sprintf, md5,
sha1, base64_encode/decode,
array_* ฯลฯ);
#[Protected] ใช้กับ method ของ class ได้ $this->prop
read/write sync ระหว่าง PHP กับ VM อัตโนมัติ; cranelift AOT JIT optimize integer hot loop
.bphp (binaryphp-rs) ก็พอ —
ความต่างจาก native PHP วัดไม่ออกแล้ว #[Protected] (binaryphp-vm)
ใช้กับฟังก์ชันที่สำคัญที่สุด — license validation, key derivation, anti-tamper —
ยอมเสีย execution cost ประมาณ 2.5 เท่า แลกกับ "ต่อให้กุญแจหลักรั่ว core logic ก็ยังไม่เห็น"
เปิด OPcache เส้นทางที่ไม่ป้องกันก็ เร็วเท่ากับ native PHP
ผ่าน Stripe จ่ายรายเดือนหรือรายปี รายปีลด 20% ทันที
.php หรือ .zip.zip สูงสุด 100 MBฟรีและเสียเงินใช้ engine เข้ารหัสตัวเดียวกัน! AES-256-GCM ตัวเดียวกัน, bytecode VM ตัวเดียวกัน, ระดับการป้องกันเหมือนกันเป๊ะ ต่างกันแค่โควตาการใช้งาน (ขนาดไฟล์, สิทธิ์ API, อัตรา batch)
ฟรี เผยแพร่ต่อได้อิสระ host ใดก็ตามที่จะรัน plugin ที่เข้ารหัสด้วย BinaryPHP ต้องติดตั้งตัวนี้ก่อน
# 1. คัดลอก .so ไปยัง directory ของ PHP extension
$ sudo cp binaryphp.so /usr/lib/php/20220829/
# 2. เปิดใช้ extension
$ echo 'extension=binaryphp.so' | sudo tee /etc/php/8.2/mods-available/binaryphp.ini
$ sudo phpenmod binaryphp
# 3. restart PHP-FPM (หรือ SAPI ที่คุณใช้)
$ sudo systemctl restart php8.2-fpm
ตรวจสอบว่า loader เปิดใช้งานหรือยัง:
$ 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 )
หรือเปิดหน้า phpinfo() ใด ๆ ในเบราว์เซอร์ — จะเห็นบล็อก BinaryPHP เฉพาะ แสดงเวอร์ชัน loader, master generation, ฟอร์แมตที่รองรับ, สถานะ bytecode VM สะดวกมากสำหรับ environment ที่ไม่มี CLI (cPanel, Plesk, shared host):
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
เลือก minor version PHP ของคุณให้ตรง (.so แต่ละไฟล์ build สำหรับ ABI นั้น ๆ สลับกันไม่ได้):
รัน php -v บน server เพื่อดู version จริง macOS / aarch64 / FreeBSD ยังไม่รองรับ
ไม่ต้องติดตั้ง CLI ไม่ต้องเก็บ master key เปิด encoder อัปโหลด ตั้งค่า license ดาวน์โหลดไฟล์ที่เข้ารหัสแล้ว แค่นั้น
.php → .php)ฟรีรับ .php หรือ .zip สูงสุด 1 MB Pro สูงสุด 100 MB Ultra ผ่าน multipart สูงสุด 300 MB
พูดตรง ๆ: ไม่มี DRM ที่รันแบบ offline ตัวไหนรับประกันได้ว่า "แฮ็กไม่ออกตลอดกาล" รวมถึง ionCube, Zend Guard, SourceGuardian ก็เคยถูกศึกษาและถูกแฮ็กมาแล้ว
เป้าหมายของ BinaryPHP จึงไม่ใช่ "ปลอดภัยสมบูรณ์" แบบในตำนาน แต่คือ:
ทำให้ต้นทุนการแฮ็กสูงกว่าค่าลิขสิทธิ์ของแท้มาก
การแฮ็ก BinaryPHP ไม่ใช่แค่ "ถอดรหัสไฟล์" เท่านั้น attacker ปกติยังต้อง:
ต่อให้สำเร็จ สิ่งที่ได้มักไม่ใช่ซอร์สโค้ด แต่คือ:
และ BinaryPHP จะอัปเดตอย่างต่อเนื่อง:
ทำให้เครื่องมือแฮ็กรุ่นเก่าใช้ไม่ได้อย่างรวดเร็ว
นี่คือปรัชญาแกนกลางของ BinaryPHP:
ไม่ได้ทำให้แฮ็ก "เป็นไปไม่ได้" แต่ทำให้แฮ็ก "ไม่คุ้ม"
โปรแกรมที่รันบน web server ใช้โดเมนผูก loader ตรวจ $_SERVER['SERVER_NAME'] ก่อน (ค่านี้ตั้งโดย nginx / Apache client ปลอมไม่ได้) ถ้าไม่มีค่อย fallback ไปดู HTTP_HOST เครื่องมือ CLI ใช้ MAC address ผูก กรอกทั้งสองก็ได้ ตรงอันใดอันหนึ่งก็ผ่าน
ไม่ ถอดรหัสแค่ขั้น compile ครั้งเดียว ไฟล์ละครั้งเดียว หลัง compile ความเร็วการรันไม่ต่างจาก native PHP เปิด OPcache แล้ว ต้นทุนการถอดรหัสครั้งเดียวนั้นก็กระจายไปยัง request ถัดไปทั้งหมด
ใช้ SaaS encoder: ไม่ master key อยู่ที่ฝั่งเราตลอด ไม่หลุดไปยัง environment ของคุณ
BinaryPHP เป็นเวอร์ชันใหม่ปี 2026 สร้างขึ้นใหม่หมด ใช้ cryptography สมัยใหม่ (AES-256-GCM, HKDF-SHA256) เป็นพื้นฐาน แล้วครอบ core logic ด้วย bytecode VM ของเราเองอีกชั้น tool chain ให้บริการแบบ SaaS master key อยู่บน server เรา และ file format มี public spec
host ต้องติดตั้ง BinaryPHP loader ก่อน loader ฟรีและเผยแพร่ต่อได้ — ให้ลูกค้าติดตั้งเอง (เพิ่ม 1 บรรทัดใน php.ini) หรือขอให้ host provider ติดตั้งให้ก็ได้
loader มีการป้องกันสามชั้นในตัว:
#[binaryphp\Protected] ฟังก์ชันเหล่านี้จะถูก compile เป็น bytecode ของเราเอง (ไม่ใช่ PHP, ไม่ใช่ Zend opcode) รันโดย loader interpret โดยตรง บน harddisk ลูกค้าจะไม่เคยมี plain PHP เลยalgorithm ที่อ่อนไหวที่สุดแนะนำให้รันบน server API ของคุณเอง ส่วนอื่น BinaryPHP ป้องกันหลายชั้นช่วย ไม่ต้องเขียนโปรแกรมใหม่ทั้งหมด
รองรับ BinaryPHP ดักที่ขั้น compile ของ PHP ดังนั้น include / require ทำงานปกติ — Composer autoload, framework router, plugin system ทั้งหมดไม่มีปัญหา
เข้ากันได้ OPcache รับช่วงต่อ cache compile result หลังจากเราถอดรหัสและ compile เสร็จ แต่ละ invalidation cycle ถอดรหัสครั้งเดียว
มี public และ stable spec: header 52 byte ("BPHP2" magic + version + 16-byte salt + 12-byte IV + 16-byte GCM tag) ตามด้วย ciphertext
การชำระเงินทั้งหมดผ่าน Stripe เลือกได้:
subscription มี 30 วัน refund guarantee Stripe รับบัตรเครดิตหลักทั้งหมดและช่องทางจ่ายเงินตามภูมิภาคอีกหลายแบบ
ในแง่ architecture เป็นไปไม่ได้ เราไม่รัน PHP ที่คุณอัปโหลด แค่ tokenize (ตัด syntax) และเข้ารหัสเท่านั้น encoder รัน token_get_all() (lexical analyzer ของ PHP ไม่ใช่ executor) ตัด HTML กับ PHP block ออกจากกัน เข้ารหัสแต่ละ PHP block ด้วย AES และเขียนไฟล์ออกมา ตลอด process ไม่ใช้ eval, include, หรือเรียก shell command ใด ๆ
การอัปโหลด zip มี 4 ชั้นป้องกันเพิ่ม (ตรวจก่อน extract):
../, absolute path, drive letter)งานเข้ารหัสแต่ละงานรันใน temp directory แยก เคลียร์ทันทีหลังส่ง response คุณจะอัปโหลด malware แบบไหนก็ได้ — เราจะเข้ารหัสให้แล้วคืนกลับ
สำหรับ ISV / SaaS ที่ขายต่อ plugin PHP เข้ารหัส หลังลูกค้าสั่งซื้อ:
POST มาที่ REST API ของเรา พร้อมโดเมน / MAC ของลูกค้า, parameter เข้ารหัส, webhook URLPOST download link ไปที่ webhook ที่คุณตั้งไว้ผลลัพธ์การเข้ารหัสเก็บใน R2 72 ชั่วโมงแล้วลบอัตโนมัติ ซอร์สที่คุณอัปโหลดถูกลบภายใน 24 ชั่วโมง
บริการเมล 10 นาที
「ตอนแรกเราลอง BinaryPHP กับเวอร์ชันฟรี ความรู้สึกค่อนข้างดี ตอนนี้ใช้ Pro คอมไพล์เว็บไซต์ทั้งหมดเข้าไป รวมถึง PHPMailer ด้วย ทรงพลังมากจริง ๆ! ความเร็วก็ไม่รู้สึกว่าช้าลงเลย」
ลงชื่อด้วย Google เริ่มได้เลย — เวอร์ชันฟรีใช้ได้ทันที ไม่ต้องใช้บัตรเครดิต