PHP教學 - 利用 php 混淆器將程式碼進行編譯
因為工作的關係研究了一下 PHP 程式碼加密,假如不使用付費版的加密程式是否有替代的方式?發現到 php obfuscator 有些現成的套件可以使用,測試一下大陸寫的 php 代碼混淆器2.0版是可以進行簡單的 php 程式碼編譯,下載網址為 http://download.csdn.net/source/2805147
使用的方式如下:
將套件包下載後放置 www 目錄( xampp 為 htdocs/),開啟 indexok.php 更改來源資料夾和目的資料夾如下
//要混淆的文件位置
$mwww='C:\xampp\htdocs\test';
//混淆后的文件存放位置
$mdir='C:\xampp\htdocs\output';
開起網頁執行
測試結果,是可以編譯加密,但這僅僅只是處理簡單的 php 程式,如果寫到物件導向、mvc 的架構,該套件處理函式及物件導向恐怕會有問題。
於是又找到另一個套件 YAK Pro https://www.php-obfuscator.com/?demo
該套件處理較完整,支援的函式也多,目前也有專門在維護,但稍為複雜點,說明如下
先從網站 github 下載套件並放置在 www (xampp htdocs/)
開啟 cmd (windows 要做環境設定增加 php.exe)
執行會發生錯誤
C:\xampp\htdocs\yakpro-po-master>php yakpro-po.php
Error: PHP-Parser is not correctly installed!
You can try to use the following command:
# git clone --branch=1.x https://github.com/nikic/PHP-Parser.git
因為沒有安裝 PHP-Parser 套件,再次下命令安裝
C:\xampp\htdocs\yakpro-po-master>git clone --branch=1.x https://github.com/nikic/PHP-Parser.git
Cloning into 'PHP-Parser'...
remote: Counting objects: 7100, done.
remote: Total 7100 (delta 0), reused 0 (delta 0), pack-reused 7100
Receiving objects: 100% (7100/7100), 2.63 MiB | 462.00 KiB/s, done.
Resolving deltas: 100% (3706/3706), done.
Checking connectivity... done.
好了後再次測命令又發生錯誤
C:\xampp\htdocs\yakpro-po-master>php yakpro-po.php
Info: Using [C:\xampp\htdocs\yakpro-po-master\yakpro-po.cnf] Config File...
Error: source_directory and target_directory not specified!
neither within command line parameter,
nor in config file!
因為沒設定來源資料及目的資料,從 yakpro-po 中可以發現到操作方式
yakpro-po source_filename -o target_filename Obfuscates code to target_filename
yakpro-po source_directory -o target_directory Recursivly obfuscates code to target_directory/yakpro-po (creates it if it does not already exist
再次下命令
C:\xampp\htdocs\yakpro-po-master>php yakpro-po.php C:\xampp\htdocs\test -o C:\xampp\htdocs\output
Info: Using [C:\xampp\htdocs\yakpro-po-master\yakpro-po.cnf] Config File...
Info: Process Mode = directory
Info: source_directory = [C:\xampp\htdocs\test]
Info: target_directory = [C:\xampp\htdocs\output]
Obfuscating C:\xampp\htdocs\test/hello.php
Obfuscating C:\xampp\htdocs\test/test.php
Info: [variable ] scrambled : 2
Info: [function ] scrambled : 0
Info: [method ] scrambled : 0
Info: [property ] scrambled : 0
Info: [class ] scrambled : 0
Info: [class_constant] scrambled : 0
Info: [constant ] scrambled : 0
Info: [label ] scrambled : 27
編譯成功!
使用的方式如下:
將套件包下載後放置 www 目錄( xampp 為 htdocs/),開啟 indexok.php 更改來源資料夾和目的資料夾如下
//要混淆的文件位置
$mwww='C:\xampp\htdocs\test';
//混淆后的文件存放位置
$mdir='C:\xampp\htdocs\output';
開起網頁執行
測試結果,是可以編譯加密,但這僅僅只是處理簡單的 php 程式,如果寫到物件導向、mvc 的架構,該套件處理函式及物件導向恐怕會有問題。
於是又找到另一個套件 YAK Pro https://www.php-obfuscator.com/?demo
該套件處理較完整,支援的函式也多,目前也有專門在維護,但稍為複雜點,說明如下
先從網站 github 下載套件並放置在 www (xampp htdocs/)
開啟 cmd (windows 要做環境設定增加 php.exe)
執行會發生錯誤
C:\xampp\htdocs\yakpro-po-master>php yakpro-po.php
Error: PHP-Parser is not correctly installed!
You can try to use the following command:
# git clone --branch=1.x https://github.com/nikic/PHP-Parser.git
因為沒有安裝 PHP-Parser 套件,再次下命令安裝
C:\xampp\htdocs\yakpro-po-master>git clone --branch=1.x https://github.com/nikic/PHP-Parser.git
Cloning into 'PHP-Parser'...
remote: Counting objects: 7100, done.
remote: Total 7100 (delta 0), reused 0 (delta 0), pack-reused 7100
Receiving objects: 100% (7100/7100), 2.63 MiB | 462.00 KiB/s, done.
Resolving deltas: 100% (3706/3706), done.
Checking connectivity... done.
好了後再次測命令又發生錯誤
C:\xampp\htdocs\yakpro-po-master>php yakpro-po.php
Info: Using [C:\xampp\htdocs\yakpro-po-master\yakpro-po.cnf] Config File...
Error: source_directory and target_directory not specified!
neither within command line parameter,
nor in config file!
因為沒設定來源資料及目的資料,從 yakpro-po 中可以發現到操作方式
yakpro-po source_filename -o target_filename Obfuscates code to target_filename
yakpro-po source_directory -o target_directory Recursivly obfuscates code to target_directory/yakpro-po (creates it if it does not already exist
再次下命令
C:\xampp\htdocs\yakpro-po-master>php yakpro-po.php C:\xampp\htdocs\test -o C:\xampp\htdocs\output
Info: Using [C:\xampp\htdocs\yakpro-po-master\yakpro-po.cnf] Config File...
Info: Process Mode = directory
Info: source_directory = [C:\xampp\htdocs\test]
Info: target_directory = [C:\xampp\htdocs\output]
Obfuscating C:\xampp\htdocs\test/hello.php
Obfuscating C:\xampp\htdocs\test/test.php
Info: [variable ] scrambled : 2
Info: [function ] scrambled : 0
Info: [method ] scrambled : 0
Info: [property ] scrambled : 0
Info: [class ] scrambled : 0
Info: [class_constant] scrambled : 0
Info: [constant ] scrambled : 0
Info: [label ] scrambled : 27
編譯成功!
留言
張貼留言