准备(可选):每个加密的文件头部都一个很明显的字符串PM9SCREW, 这样很容易被人猜到是用screw加密的.故在编译之前, 可以更改这个字符串(php_screw.h中), 例如,更改为PeterHu, 相应的下面的长度就不再是10了, 而是\tPeterHu\t,一共9个了
- 下载 php_screw-1.5.tar.gz 到代码所在服务器
- 解压 tar -xzf php_screw-1.5.tar.gz
- cd php_screw-1.5
- 执行 phpize (它在 php5-dev 扩展模块中 只要安装 php5-dev 模块就行了)
- 在编译之前,修改php_screw.c文件夹中的把CG(extended_info) = 1;修改为:CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;共2处
- 在当前目录下执行 ./configure
- 执行make
- make install
- 将modules/目录下的php_screw.so拷贝到 php的扩展目录,比如/usr/lib/php5/20090626+lfs(这里需要依赖实际环境的地址)
1
cp modules/php_screw.so /usr/lib/php5/20090626+lfs
- 在php.ini文件中加入如下代码:extension=php_screw.so(Php.ini路径/etc/php5/apache2/)
- 重启apache /etc/init.d/apache2 restart
- 编译用来加密文件的可执行文件:
1
cd tools make
tools目录下新生成的screw就是了
- 将生成的screw复制到/usr/bin目录下,这样screw可以再任何目录下执行
- 对php文件加密screw /var/www/IndexAction.php
加密后的a.php执行正常,同时screw还会把原来没有加密的文件改名为.screw文件作为备份
补充:
- 当前目录下批量加密:find ./ -name “*.php” -print -exec screw {} \;
- 批量删除当前目录下的备份文件find ./ -name “*.screw” -print -exec rm {} \;
- php_screw 下载地址:http://sourceforge.net/projects/php-screw/