PHPはソースが平文です。
シェアウェアのMovableTypeや、はてまた糞高いSitePublisですら、ソースさえ手に入れてしまえばどうとでもできてしまいます。
ということでソースを暗号化してしまいましょう。
BlencというBLowfishライブラリを見つけましたが、日本語情報がマニュアルのコピペサイト以外一切ありません。
どうなってんだ。
PECLなのでLinuxであれば適当にpecl installとかしてください。
Windowsはdllが用意されているので拾ってきてphp.iniにextensionを書けばOKです。
デフォルトは'/usr/local/etc/blenckeys'になっているので、Windowsでは変更必須です。
ini_set()で変更してもいいです。
中を見てみると、全く読むことができない状態になっているのがわかります。
そしてこのhoge.encrypt.php、直接PHPファイルとして取り扱い可能です。
Fatal error: blenc_compile: Module php_blenc was expired. Please buy a new license key or disable the module. in Unknown on line 0
おうふ。
expiredってなんだよ。
Blencのソースを見てみる。
http://svn.php.net/viewvc/pecl/blenc/trunk/blenc.c?view=markup
ということでソースからコンパイルできる人続きを頼んだ。
シェアウェアのMovableTypeや、はてまた糞高いSitePublisですら、ソースさえ手に入れてしまえばどうとでもできてしまいます。
ということでソースを暗号化してしまいましょう。
BlencというBLowfishライブラリを見つけましたが、日本語情報がマニュアルのコピペサイト以外一切ありません。
どうなってんだ。
PECLなのでLinuxであれば適当にpecl installとかしてください。
Windowsはdllが用意されているので拾ってきてphp.iniにextensionを書けばOKです。
extension=php_blenc.dll blenc.key_file = C:\xampp\blenc.key_fileblenc.key_fileは暗号化キーを保存する場所の設定です。
デフォルトは'/usr/local/etc/blenckeys'になっているので、Windowsでは変更必須です。
ini_set()で変更してもいいです。
<?php
// 暗号化するソース
$source = file_get_contents('path/to/hoge.php');
// 暗号化して書き込み。返り値は暗号化キー
$key = blenc_encrypt($source, 'path/to/hoge.encrypt.php');
// 暗号化キーも保存
file_put_contents($ini_get('blenc.key_file'), $key, FILE_APPEND);
hoge.phpをBlowfishで暗号化した結果がhoge.encrypt.phpとして保存されました。中を見てみると、全く読むことができない状態になっているのがわかります。
そしてこのhoge.encrypt.php、直接PHPファイルとして取り扱い可能です。
Fatal error: blenc_compile: Module php_blenc was expired. Please buy a new license key or disable the module. in Unknown on line 0
おうふ。
expiredってなんだよ。
Blencのソースを見てみる。
http://svn.php.net/viewvc/pecl/blenc/trunk/blenc.c?view=markup
// エラーはここで発生
if(BL_G(expired)) {
zend_error(E_ERROR, "blenc_compile: Module php_blenc was expired. Please buy a new license key or disable the module.");
return NULL;
}
// BL_Gはexpire_charと比較してる
BL_G(expire_date) = pemalloc(sizeof(expire_char), TRUE);
// expire_charはBLENC_PROTECT_EXPIRE
char expire_char[] = BLENC_PROTECT_EXPIRE;
http://svn.php.net/viewvc/pecl/blenc/trunk/blenc_protect.h?view=markup// BLENC_PROTECT_EXPIREは2013年4月30日 #define BLENC_PROTECT_EXPIRE "30-04-2013"なんだこれ。
ということでソースからコンパイルできる人続きを頼んだ。
PR