使用php_screw对php文件进行加密

准备(可选):每个加密的文件头部都一个很明显的字符串PM9SCREW, 这样很容易被人猜到是用screw加密的.故在编译之前, 可以更改这个字符串(php_screw.h中), 例如,更改为PeterHu, 相应的下面的长度就不再是10了, 而是\tPeterHu\t,一共9个了

准备

  1. 下载 php_screw-1.5.tar.gz 到代码所在服务器
  2. 解压 tar -xzf php_screw-1.5.tar.gz
  3. cd php_screw-1.5
  4. 执行 phpize (它在 php5-dev 扩展模块中 只要安装 php5-dev 模块就行了)
    安装 php5-dev 模块
  5. 在编译之前,修改php_screw.c文件夹中的把CG(extended_info) = 1;修改为:CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;共2处
    修改php_screw.c文件
  6. 在当前目录下执行 ./configure
  7. 执行make
  8. make install
    安装
  9. 将modules/目录下的php_screw.so拷贝到 php的扩展目录,比如/usr/lib/php5/20090626+lfs(这里需要依赖实际环境的地址)
    1
    cp modules/php_screw.so /usr/lib/php5/20090626+lfs

目录下的php_screw

  1. 在php.ini文件中加入如下代码:extension=php_screw.so(Php.ini路径/etc/php5/apache2/)
  2. 重启apache /etc/init.d/apache2 restart
  3. 编译用来加密文件的可执行文件:
    1
    cd tools
    make

tools目录下新生成的screw就是了
tools目录下新生成的screw就是了

  1. 将生成的screw复制到/usr/bin目录下,这样screw可以再任何目录下执行
  2. 对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/