下面就简单说说如何利用 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.