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 相关文章推荐
php注入实例
Oct 09 PHP
教你如何把一篇文章按要求分段
Oct 09 PHP
PHP处理excel cvs表格的方法实例介绍
May 13 PHP
深入PHP获取随机数字和字母的方法详解
Jun 06 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
ucenter通信原理分析
Jan 09 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
yii通过小物件生成view的方法
Oct 08 PHP
Yii2 如何在modules中添加验证码的方法
Jun 19 PHP
详解Laravel5.6 Passport实现Api接口认证
Jul 27 PHP
详解json在php中的应用
Sep 30 PHP
TP5框架页面跳转样式操作示例
Apr 05 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
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
Sony CFR 320 修复改造
2020/03/14 无线电
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
php函数之子字符串替换 str_replace
2011/03/23 PHP
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
2015/03/18 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
详解python中的json的基本使用方法
2016/12/21 Python
详解python eval函数的妙用
2017/11/16 Python
python开发前景如何
2020/06/11 Python
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
What is view? why do we have view?
2012/06/22 面试题
Java基础类库面试题
2013/09/04 面试题
外贸采购员岗位职责
2014/03/08 职场文书
求职信怎么写
2014/05/23 职场文书
社会实践的活动方案
2014/08/22 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
导游词之江西赣州
2019/10/15 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书