资讯专栏INFORMATION COLUMN

PHP:使用Zend对源码加密、Zend Guard安装以及Zend Guard Run-time

PascalXie / 3758人阅读

摘要:是目前市面上最成熟的源码加密产品了。刚好需要对自己的产品进行加密,折腾了一晚上,终于搞定,将碰到的问题及解决方法记录下来,方便日后需要,也可以帮助其他人。因此,终极解决办法就是,下载个版本进行安装即可。

  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安装目录extendLoader.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版本进行安装即可。

参考资料

ZendGuard 5.5.0 破解方法+注册文件KEY下载
Windows下PHP(Thread Safe与Non Thread Safe)版本说明


作者:曾是土木人(http://www.cnblogs.com/hongfei)
原文地址:http://www.cnblogs.com/hongfei/p/3587399.html

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31847.html

相关文章

  • 起步-学习php扩展开发的背景

    摘要:开发扩展是用语言实现的,流行的很大一个原因也是因为有大量开发者通过扩展实现大量通用的功能供广大社区开发者使用。扩展化的优势产品安全性和私密性好系统性能高扩展化的劣势开发效率低的优势之一就是开发效率高,需要选择系统合适的模块进行扩展化。 php是解释性语言,不需要编译。对于用php写的产品,如果需要直接源码安装到客户的运行环境中,则存在很大的安全隐患。客户甚至可以把你的产品直接做二次部署...

    joyqi 评论0 收藏0
  • PHP 源码 — implode 函数源码分析

    摘要:本文首发于作者基于中的在中,的作用是将一个一维数组的值转化为字符串。为了能通过修改代码来看效果,将函数复制到扩展文件中,并将其命名为源码内容省略在扩展中新增一个扩展函数因为扩展的编译以及引入前面的已经提及。 本文首发于 https://github.com/suhanyujie...* 作者:suhanyujie 基于 PHP 7.3.3 PHP 中的 implode 在 PH...

    琛h。 评论0 收藏0
  • PHP源码学习】2019-03-12 PHP基本变量笔记

    摘要:中以表示所有的变量,它是一个结构体。类型是一个联合体,共占用。字段表示字符串的哈希值,在数组的中有用,方便快速定位。字段表示字符串长度这里就是一个柔性数组,在等源码中也被大量使用。 baiyan 全部视频:https://segmentfault.com/a/11... 源视频地址:http://replay.xesv5.com/ll/24... 引入及基本概念 变量本质上就是给一段...

    Fundebug 评论0 收藏0
  • php7内核阅读(1)--数据容器zval和zend_value

    摘要:本文主要是针对,的话可以移步到庆哥的博客看,还有就是小菜我读的是内核剖析这本书。接下来我会使用到来调试源码本文有参照博客中的部分内容以及代码。 前言 工作+实习快一年了,搞php后端开发,一直很迷茫怎么提高自己,就先从php源码开始吧,本人比较菜,本文章写的比较赶时间,所以有什么错误或者漏掉的地方,望各位大神指正,多交流才能成长嘛,嘿嘿。本文主要是针对php7,php5的话可以移步到庆...

    canger 评论0 收藏0
  • PHP7源码分析】如何理解PHP虚拟机(一)

    摘要:操作数本身并无数据类型,它的数据类型由操作码确定任何架构的计算机都会对外提供指令集合运算器通过执行指令直接发出控制信号控制计算机各项操作。 顺风车运营研发团队 李乐 1.从物理机说起 虚拟机也是计算机,设计思想和物理机有很多相似之处; 1.1冯诺依曼体系结构 冯·诺依曼是当之无愧的数字计算机之父,当前计算机都采用的是冯诺依曼体系结构;设计思想主要包含以下几个方面: 指令和数据不加区别...

    tunny 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<