下面就簡單說說如何利用 zend guard進行加密我們的php原始碼。
目前zend guard最新的版本是 6.0,下載地址:http://www.zend.com/en/products/guard/downloads
詳細的英文文檔說明在這裡:http://files.zend.com/help/Zend-Guard/zend-guard.htm#install.htm
【注意】:使用zend guard加密後的代碼在執行php指令碼的時候需要載入解碼器:Zend Guard Loader,注意版本的一致。
設定 Zend Guard Loader 的方法請見本文最後部分。
目前,zend guard 6.0 支援 php5.3和php5.4兩個版本。
開啟 zend guard 6.0 介面如下:
如果你沒有註冊,顯示的是 Trial Version 試用版。mac系統下是沒有破解版的,不過win下是有的,怎麼去找,你懂的。
試用版在加密的時候,會提示:
** WARNING **
Working in trial mode - Cannot find the license file: zend_guard.zl (path was: /Applications/Zend Guard 6.app/Contents/Resources/plugins/com.zend.guard.core.resources.macosx_6.0.0.201305051344/resources).
that will expire after 14 days !
** WARNING **
試用版:
1、加密的代碼不會最佳化;
2、加密的檔案14天后到期;
3、如果使用license授權,license 3天后到期。
license 介面:
當啟用了license,我們需要先產生一個 license key,然後再產生 license。
產生的license授權檔案尾碼是 .zl,比如 test1.zl,裡面的內容大致如下:
Product-Name = test1
Registered-To = test1.com
Hardware-Locked = No
Com = www.Piaoyi.org
Expires = 28-Jan-2015
Produced-By = Zend Encoder trial
Verification-Code = wG5ff2uhlyRRrgS8JeqQLEbEpL+rAhQTMVHXZq+9PYFkxV0BfDxID3Cl6Q==
當啟用了license授權後,在php.ini就需要配置 zend_loader.license_path= 的值了。比如:
zend_loader.license_path=/Users/CCMAC/Zend/test1/test1.zl
如果不配置 license路徑,就是提示php警告:
PHP Warning: No license for this product (test1) - make sure zend_loader.license_path is properly configured in your ini file! in /Users/CCMAC/php/zend/1.php on line 0
PHP Warning: License check failed! in /Users/CCMAC/php/zend/1.php on line 0
混淆設定如下:
更多待補充。。。。。
如何為 php 伺服器安裝 zend guard loader 的說明:
MAC下的安裝步驟(參考):
1、下載 Zend Guard Loader 6.0.0 (for PHP 5.3 or 5.4) ,網址: http://www.zend.com/en/products/guard/downloads
檔案是:Zend Guard Loader (Runtime for PHP 5.4) 6.0.0,類型:DMG。
Mac下載地址:http://downloads.zend.com/guard/6.0.0/ZendGuardLoader-70429-PHP-5.4-darwin10.7-x86_64.tar.gz
2、從壓縮包裡提取 ZendGuardLoader.so (Linux) or ZendLoader.dll (Windows) ;
mac下的ZendGuardLoader.so,只有3.3版本的。
3、編輯php設定檔 'php.ini' :
zend_extension = /usr/local/lib/php/ZendGuardLoader.so ##路徑根據實際情況而定
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
4、如果你同時使用 Zend debugger,請確保在 Zend Guard Loader 載入之後載入.
5、如果你使用 ioncube loader,請確保在 Zend Guard Loader 載入之前載入.
6、重啟 Web server.
安裝完畢後,用 phpinfo() 函數查看,有這類描述:“ with Zend Guard Loader v3.3”,出現下圖即為成功:
注意:MAC os x目前已經沒有了32位的版本,新出的都是64位。因此,在MAC下安裝了php5.3之後,再到zend官網去找 ZendGuardLoader.so,你會發現zend根本就沒有出 64位版本的 ZendGuardLoader.so,只有32位的,這個時候,如果你強行引用32位的 ZendGuardLoader.so for mac php5.3,就會出現下列錯誤:
Failed loading /usr/local/lib/php/php53/ZendGuardLoader.so: dlopen(/usr/local/lib/php/php53/ZendGuardLoader.so, 9): no suitable image found. Did find:
/usr/local/lib/php/php53/ZendGuardLoader.so: mach-o, but wrong architecture
這個錯誤,官方回複說無解,此路不通。
At present we only support 32 bit on the Mac for backward compatibility. In the next major version we will probably move to 64 bit only. . You're simplest solution might be to download Zend Server CE for the Mac and get a complete 32 bit stack.