ibLind PHPソースコード難読化
PHPはソースがそのまま実行されるので、顧客のサーバーなどで運用する場合ソースが丸見えになってしまいます。そこでソースコードを人間が読めないように書き換えてしまう為のツールを作っちゃいました。
Ver.2.2 リリースしました。
変数,関数,クラス,定数の名前を、意味の無い名前に変換
変数,関数,クラス,定数名を意味の無い名前に変換します。やっている事はただこれだけです。しかしたったこれだけの事でソースが極端に読み難くなり、解読してやろうという気が失せてしまいます。完全な暗号化までは必要ないが、『こんなものを解読するくらいなら自分で一から同じ仕様のものを作った方が早い』と思わせる程度に難読化できれば良しというコンセプトの元に開発しました。
このようなソースが・・・
$key = array();
$key2 = array();
$key3 = array();
foreach($this->shops as $index => $item) {
$key[$index] = $item["block"];
$key2[$index] = $item["group"];
$key3[$index] = $item["shop"];
}
array_multisort($key, $key2, $key3, $this->shops);
$key = array();
foreach($this->items as $index => $item) {
$key[$index] = $item["seq"];
}
array_multisort($key, $this->items);
$key = array();
foreach($this->jiganeBuyers as $index => $item) {
$key[$index] = $item["code"];
}
array_multisort($key, $this->jiganeBuyers);
$key = array();
foreach($this->suppliers as $index => $item) {
$key[$index] = $item["code"];
}
array_multisort($key, $this->suppliers);
$key = array();
foreach($this->questions as $index => $item) {
$key[$index] = $item["code"];
}
$key2 = array();
$key3 = array();
foreach($this->shops as $index => $item) {
$key[$index] = $item["block"];
$key2[$index] = $item["group"];
$key3[$index] = $item["shop"];
}
array_multisort($key, $key2, $key3, $this->shops);
$key = array();
foreach($this->items as $index => $item) {
$key[$index] = $item["seq"];
}
array_multisort($key, $this->items);
$key = array();
foreach($this->jiganeBuyers as $index => $item) {
$key[$index] = $item["code"];
}
array_multisort($key, $this->jiganeBuyers);
$key = array();
foreach($this->suppliers as $index => $item) {
$key[$index] = $item["code"];
}
array_multisort($key, $this->suppliers);
$key = array();
foreach($this->questions as $index => $item) {
$key[$index] = $item["code"];
}
・・・こんな風になります
trim($_20["name"])); } foreach($this->_4 as $_417) { foreach($_3 as $_419) { if($_417["code"]
== $_419["code"]) { $this->_4[$_417["code"]]["name"] = $_419["name"]; break; } } }
if(!$_11->query("SELECT code, name FROM mst_code WHERE kubun='04'")) { $_16 = $_11->error();
$_11->close(); throw new Exception($_16); } $_3 = array(); while($_20 = $_11->next())
{ $_3[] = array("code" => trim($_20["code"]), "name" => trim($_20["name"])); } foreach($this->_5
as $_417) { foreach($_3 as $_419) { if($_417["code"] == $_419["code"]) { $this->_5[$_417["code"]]["name"]
= $_419["name"]; break; } } } if(!$_11->query("SELECT code, name FROM mst_code WHERE kubun='07'"))
{ $_16 = $_11->error(); $_11->close(); throw new Exception($_16); } $_3 = array();
while($_20 = $_11->next()) { $_3[] = array("code" => trim($_20["code"]), "name" =>
trim($_20["name"])); } foreach($this->_6 as $_417) { foreach($_3 as $_419) { if($_417["code"]
== $_419["code"]) { $this->_6[$_417["code"]]["name"] = $_419["name"]; break; } } }
$_11->close(); $_479 = array(); $_480 = array(); $_481 = array(); foreach($this->_2
as $_482 => $_419) { $_479[$_482] = $_419["block"]; $_480[$_482] = $_419["group"];
$_481[$_482] = $_419["shop"]; } array_multisort($_479, $_480, $_481, $this->_2);
$_479 = array(); foreach($this->_3 as $_482 => $_419) { $_479[$_482] = $_419["seq"];
} array_multisort($_479, $this->_3); $_479 = array(); foreach($this->_4 as $_482
=> $_419) { $_479[$_482] = $_419["code"]; } array_multisort($_479, $this->_4); $_479
= array(); foreach($this->_5 as $_482 => $_419) { $_479[$_482] = $_419["code"]; }
array_multisort($_479, $this->_5); $_479 = array(); foreach($this->_6 as $_482 =>
$_419) { $_479[$_482] = $_419["code"]; } array_multisort($_479, $this->_6); } } ?>
設置が簡単
変換ツール自体はWindows上のアプリケーションです。このツールを使ってPHPのソースファイルを変換したら、あとは変換後のファイルを、元のファイルと同じようにサーバーに置くだけで実行されます。サーバーに特別な仕掛けは一切必要ないので、サーバーの設定に自由に手が出せないレンタルサーバーのような環境でも大丈夫です。
詳しい使い方はこちらのヘルプページを参照して下さい。
ライセンスキーの取得はこちらのページよりお手続きください。