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 CURL用法的深入分析
Jun 09 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
May 10 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
Nov 17 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
Jul 04 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
PHP环境中Memcache的安装和使用
Nov 05 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
PHP 接入支付宝即时到账功能
Sep 18 PHP
Ajax实现对静态页面的文章访问统计功能示例
Oct 10 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 PHP
php中的依赖注入实例详解
Aug 14 PHP
Laravel 验证码认证学习记录小结
Dec 20 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
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
用Move.js配合创建CSS3动画的入门指引
2015/07/22 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
python发送arp欺骗攻击代码分析
2014/01/16 Python
python实现给数组按片赋值的方法
2015/07/28 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
Python 监测文件是否更新的方法
2019/06/10 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
会议接待欢迎词
2014/01/12 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
四下基层实施方案
2014/03/28 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
学习经验交流会策划书
2015/11/02 职场文书
Redis实现分布式锁的五种方法详解
2022/06/14 Redis
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL