php源码加密相关备忘
😉 记录一下CentOs7下使用Screw对PHP项目源码进行保护 😏
1. 安装配置php-screw
- 1.1. 下载php-screw
wget https://versaweb.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz
- 1.2. 解压文件
依据个人习惯,我这里习惯性把文件目录做分类,所以将下载下来的文件解压到了我自定义的目录下,仅供参考,可以依据个人习惯将项目进行解压,当然也可以直接使用
tar zxvf
直接解压到当前目录下
mkdir /app/php_encode/
tar zxvf php_screw-1.5.tar.gz -C /app/php_encode/
- 1.3. 进入目录
依据个人习惯进入解压后的目录中,准备修改配置
cd /app/php_encode/php_screw-1.5
- 1.4. 修改
php_screw.h
文件
主要是将前两行修改为任意字符串,如果不改这个文件,加密的文件内容开头就会有
PM9SCREW
,这么做是为了隐藏加密算法。
vim php_screw.h
修改前
修改后
- 1.5. 修改
my_screw.h
修改加密密钥,越长加密越可靠,建议不要大于5位数
vim my_screw.h
修改前
修改后
- 1.6. 生成扩展所需文件
这里需要在 解压后的目录下执行
phpize
,这一步是使用绝对路径执行的phpize 文件, 如果你的php安装在别的目录,需要先搞清楚自己的绝对路径。
/www/server/php/56/bin/phpize
执行效果图
- 1.7. 配置扩展
使用命令
./configure --with-php-config=[php config path]
进行扩展配置,这一步配置的[php config path]
是你的php-config
的绝对路径
./configure --with-php-config=/www/server/php/56/bin/php-config
执行make生成扩展 modules/php_screw_plus.so
make clean
make
make install
如果编译报错就修改php_screw.c
文件,然后重新进行make
把 CG(extended_info) = 1;修改为 CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;
修改前
修改后
- 1.8. 生成screw工具
进入
tools
目录下,执行make
命令生成screw工具,拷贝至/usr/bin
目录下(全局使用的命令 ,不然 会提示找不到该命令)
cd tools
make
cp screw /usr/bin/screw
- 1.9. 添加扩展路径
找到
php.ini
文件,将之前生成的扩展全路径配置上去,然后重启PHP , 之后就可以在phpinfo
中看到php-screw
开启了,php -m
可以看到已经扩展的文件
2. 使用php-screw
- 2.1. 项目加密
执行
./screw [目录或文件]
,后面带上你要加密的目录或文件即可自动开始加密
- 2.2. 项目解密
执行./screw [project_app] 是加密 后面加-d参数则是解密,例如:
./screw [project_app] -d
- 2.3. 批量加密
进入项目目录执行
find ./ -name "*.php" -print|xargs -n1 screw
或者直接执行find [项目路径] -name "加密文件名称" -print|xargs -n1 screw
例如:find /app/server/test/ -name "*.php" -print|xargs -n1 screw
find ./ -name "*.php" -print|xargs -n1 screw
- 2.4. 删除所有.php源文件的备份文件
find ./ -name "*.screw" -print|xargs -n1 rm