PHP代码加密之Zend Guard使用笔记

Zend Guard介绍

Zend Guard是一个对PHP代码进行加密的工具。 是市面上比较成熟可靠的PHP源码加密产品,由Zend公司开发,使用Zend Guard可混淆和保护PHP代码,防止逆向工程和未经授权的使用。使用Zend Guard试用版加密的代码会在14天后过期,所以想要长期使用则需要购买Zend Guard正式许可。

我所在的公司有做一些商业项目,交付项目时不提供PHP源码,只提供加密后的代码,所以买了许可证。(貌似是5000RMB),当时老大给了一个zend_guard.zl的授权文件。看了一下文件内容有包含公司名称信息。

Zend Guard缺点(待补充)

  • 目前最新版本是Zend Guard7,对php版本的支持最高是php5.6,不支持php7,如果项目使用php7版本的就无法加密了
  • 仅支持对PHP、inc等文件的加密

安装Zend Guard

以下我们来安装一下Zend Guard

1.Zend Guard下载地址

Zend Guard下载地址

看下图,我们选择Zend Guard Windows 64位系统的 7版本 的安装包进行下载。下载完成后双击进行下一步下一步傻瓜式安装。

Zend Guard选择版本

2.注册许可证信息

下载完成后,我们打开软件是 trial version 也就是试用版的,上面我们提到了,试用版加密的代码是有有效期的,所以我们需要对软件进行许可证注册。

选择[Help]->[Register]->[finish],如下图:

①.使用许可证文件zend_guard.zl或者填写许可证内容进行注册

②.点击Finish完成

Zend Guard注册许可证信息

点击完成成功之后我们的Zend Guard软件的 trial version 试用版字样消失,到这里我们的Zend Guard就安装并激活完成。

Zend Guard激活成功

Zend Guard加密PHP源码

安装完成后的下一步我们来介绍一下如何使用Zend Guard加密PHP源码文件。

1.编写测试文件代码

①.我们创建一个源代码目录 source_code ,然后在目录下创建一个PHP代码测试文件 test.php,如下图:

②.然后再创建一个加密后的PHP文件存放目录 encrypt_code

PHP测试代码

2.新建一个项目

选择[File]->[New]->[Zend Guard Project],然后按照下图操作

New Project
Add File And Folder

3.配置产品许可证信息

①.选择加密项目,点击安全配置

②.设置加密过期时间

③.选择证书支持

操作如下图

Security

④.生成产品证书

Create Product License

4.加密PHP源代码

点击运行加密文件,查看控制台输出信息

Encrypt

我们去加密后的PHP文件存放目录 encrypt_code 查看一下加密后文件的样子,PHP原来的明文代码已经加密成二进制文件了

Encrypt File

5.运行加密文件

将加密后的PHP文件部署至服务器然后运行,我们可以看到输出 报错了 ,原因是我们没有安装一个叫 Zend Guard Loader 的扩展。

Error

6.安装Zend Guard Loader扩展

下载Zend Guard Loader安装包

Zend Guard Loader下载地址

解压文件

1
2
3
4
# 解压文件
tar zxvf zend-loader-php5.6-linux-x86_64.tar.gz
# 进入目录查看有什么内容
cd zend-loader-php5.6-linux-x86_64

目录内容如下

opcache.so opcache扩展

README.txt README文件

ZendGuardLoader.so Zend Guard Loader扩展

Dir Content

然后我们把刚刚生成的 encrypt-test.zl 文件上传至服务器

7.配置php.ini

接下来修改php.ini文件,修改配置内容如下

PHP CONFIG

1
2
3
4
5
6
7
8
9
10
# Zend Guard Loader扩展文件路径
zend_extension="/usr/local/php5/lib/modules/ZendGuardLoader.so"
# 启用 Zend Guard Loader
zend_loader.enable=1
# 禁用许可证检查
zend_loader.disable_licensing=0
# 配置混淆水平
zend_loader.obfuscation_level_support=3
# 配置授权许可证文件路径
zend_loader.license_path=/usr/local/src/encrypt-test.zl

配置完成后,需要重启php-fpm,重启完成之后再查看 phpinfo

Zend Engine
php.ini

最后一步,我们继续访问刚才加密后的 test.php文件就可以访问成功啦。

Success