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+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
PHP中使用memcache存储session的三种配置方法
Apr 05 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
php5.3不能连接mssql数据库的解决方法
Dec 27 PHP
PHP获取一年有几周以及每周开始日期和结束日期
Aug 06 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
Laravel框架中集成MongoDB和使用详解
Oct 17 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP程序员必须知道的两种日志实例分析
May 14 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
基于php-fpm的配置详解
2013/06/03 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
php测试kafka项目示例
2020/02/06 PHP
extjs grid设置某列背景颜色和字体颜色的实现方法
2010/09/06 Javascript
js返回上一页并刷新代码整理
2012/12/21 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
Vue实现购物车详情页面的方法
2019/08/20 Javascript
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
python回调函数用法实例分析
2015/05/09 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
就业自荐信
2013/12/04 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
新生儿未入户证明
2015/06/23 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang