使用php_screw对代码进行加密
以下流程是在网上找的一些资料整合而来。感谢分享
php_screw 下载地址:http://sourceforge.net/projects/php-screw/
1、下载 php_screw-1.5.tar.gz 到代码所在服务器
2、解压 tar xzf php_screw-1.5.tar.gz
3、cd php_screw-1.5
4、执行 phpize 关于 phpize , 它在 php5-dev 扩展模块中 只要安装 php5-dev 模块就行了。
5、 ./configure
6、 make
7、将modules/目录下的php_screw.so拷贝到 php的扩展目录,如: /usr/lib/php5/extension(这里需要依赖实际环境的地址)
cp modules/php_screw.so /usr/lib/php5/extension/
8、在php.ini文件中加入如下代码:
extension=php_screw.so
9、重启PHP
10、编译加密工具
cd tools
make
11、 将 tools 目录下加密用的工具 screw 拷贝到适当目录
cp screw /usr/bin/
现在php_screw就可以使用了
例如: 在/var/www下建立一个phpinfo.php的文件,执行 screw phpinfo.php 即可加密。加密后该目录下会生成一个phpinfo.php.screw的未加密备份文件
php_screw如何对当前目录下,对目录下包含的文件,以及包含目录下的文件进行整体加密
find ./ -name "*.php" -print|xargs -n1 screw //加密所有的.php文件
find ./ -name "*.screw" -print|xargs -n1 rm //删除所有的.php源文件的备份文件
PS:编译过程中碰见的几个问题如下(解决方法)
1、 /root/php_screw-1.5/php_screw.c: In function ‘pm9screw_compile_file’:
解决方法:
需要修改php_screw.c
把第78,84,93行的org_compile_file(file_handle, type); 修改为:
org_compile_file(file_handle, type TSRMLS_CC);
然后再make就成功了。
2. /opt/soft/php_screw-1.5/php_screw.c: In function ‘zm_startup_php_screw’:/opt/soft/php_screw-1.5/php_screw.c:124: 错误:‘zend_compiler_globals’ 没有名为 ‘extended_info’ 的成员/opt/soft/php_screw-1.5/php_screw.c: In function ‘zm_shutdown_php_screw’:/opt/soft/php_screw-1.5/php_screw.c:133: 错误:‘zend_compiler_globals’ 没有名为 ‘extended_info’ 的成员make: *** [php_screw.lo] 错误 1
解决方法:
需要修改php_screw.c
把CG(extended_info) = 1;
修改为:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;
补充:综合编程 , 安全编程 ,