Zend Guard使用指南及问题处理


Posted in PHP onJanuary 07, 2015

Zend Guard是目前市面上最成熟的PHP源码加密产品了。

刚好需要对自己的产品进行加密,折腾了一晚上,终于搞定,将碰到的问题及解决方法记录下来,方便日后需要,也可以帮助其他人。
我使用的是Wampserver,其中php的版本是5.3.10。

Zend Guard的安装及破解

点击下载Zend Guard5.5.0,下载完成后,请自行傻瓜化安装

这里需要注意以下几点

1、本KEY的有效时间为2010年7月10号,因此激活时请将自己电脑系统时间调整至这个时间以前

2、本KEY激活的为试用版,加密过的文件只有14天有效时间,因此在加密文件时,请将自己电脑系统时间向后调整N年,比如2099-12-31

3、下载授权文件[zend_guard授权文件.zip],解压得到zend_guard.zl,即为激活用的文件

4、打开Zend Guard 5.5.0,[Help]->[Register]->[Search for a license file on my disk],选择文件激活即可。

如何使用Zend Guard进行加密

1、打开Zend Guard 5.5.0,[File]->[New]->[Zend Guard Project],新建项目

2、在弹窗的窗口,前3项随便填吧,最后一项是加密后文件的保存位置,然后[Next];

3、本步骤是选择要加密的文件,可以为单个文件[Add File]和整个文件夹[Add Folder],然后[Next]

4、接下来是选择PHP版本[与你服务器上PHP的版本相对照],这里很重要,版本不对会出错,[Finish]完成项目的创建

5、在Zend Guard左侧的Guard Explorer中,可以看到你新建的项目了,鼠标选中后,右键[Encode Project],完成

Zend Guard Run-time support missing问题的解决

虽然现在可以成功加密php源码了,但是当执行脚本的时候,会发现不能正常执行,会显示如下信息

Zend Guard Run-time support missing!
One more more files on this web site were encoded by ZendGuard and the required run-time support is not installed orproperly configured.
......

原来,加密后的php代码需要ZendGuardLoader模块才能正常运行。
因为我的php版本是5.3.10的,所以我这里只提供了ZendGuardLoader-php-5.3-Windows,如果是其他版本的php,请自行百度。
点击下载ZendGuardLoader-php-5.3-Windows
下载好后解压压缩包,找到目录下的 ZendLoader.dll 文件,将它放到你的php目录下ext下,再编辑php.ini文件,添加一段代码(如):

[Zend.loader]

zend_loader.enable=1

zend_loader.disable_licensing=1

zend_loader.obfuscation_level_support=3

zend_loader.license_path=

zend_extension="你的PHP安装目录\ext\ZendLoader.dll"

重启wampserver

运气好的话,会发现可以成长执行了,运气不好的话,还是会发现以上错误。

这里我们已经安装了zend guard loader了,为什么还是无法执行zend加密后的php脚本呢?

通过查看输出phpinfo()信息,我发现有这么几行信息:

PHP Extension 20090626

Zend Extension 220090626

Zend Extension Build API220090626,TS,VC9

请注意,其中的TS是thread safety的简写(即线程安全)

一时也找不出原因,索性直接打开zend guard官网进行搜索,然后就解决了。

原来,zend guard loader只支持NTS的版本,意味着如果你的php版本是TS的话,就没法使用zend guard loader了,如果你想查看自己的php是ts还是nts的,只需要输出phpinfo,然后搜索下:Thread Safety,disabled对应nts版本,否则为ts。

因此,终极解决办法就是,下载个php NTS版本进行安装即可。

PHP 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
Discuz!下Memcache缓存实现方法
May 28 PHP
php 获取SWF动画截图示例代码
Feb 10 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
Apr 04 PHP
header与缓冲区之间的深层次分析
Jul 30 PHP
php数据库操作model类(使用__call方法)
Nov 16 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
php微信公众号开发之翻页查询
Oct 20 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 PHP
laravel框架使用阿里云短信发送消息操作示例
Feb 15 PHP
PHP判断是否是json字符串
Apr 01 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
Jan 07 #PHP
php模拟用户自动在qq空间发表文章的方法
Jan 07 #PHP
PHP中使用CURL获取页面title例子
Jan 07 #PHP
PHP中调用SVN命令更新网站方法
Jan 07 #PHP
PHP PDO fetch 模式各种参数的输出结果一览
Jan 07 #PHP
PHP中使用php5-ffmpeg撷取视频图片实例
Jan 07 #PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 #PHP
You might like
杏林同学录(六)
2006/10/09 PHP
实用函数2
2007/11/08 PHP
joomla内置的表单验证功能使用方法
2010/06/11 PHP
PHP中将网页导出为Word文档的代码
2012/05/25 PHP
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
php结合安卓客户端实现查询交互实例
2015/05/05 PHP
PHP进阶学习之类的自动加载机制原理分析
2019/06/18 PHP
javascript 函数速查表
2010/02/07 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
对比分析json及XML
2014/11/28 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
使用cookie绕过验证码登录的实现代码
2017/10/12 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
深入浅析Python的类
2018/06/22 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
网络技术支持面试题
2013/04/22 面试题
工厂门卫岗位职责
2013/11/25 职场文书
创业计划书中要认真思考的问题
2013/12/28 职场文书
医学类个人求职信范文
2014/02/05 职场文书
网络技术专业求职信
2014/07/13 职场文书
2014年营销工作总结
2014/11/22 职场文书
捐助倡议书
2015/01/19 职场文书
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python