zoukankan      html  css  js  c++  java
  • php_screw安装,使用

    安装步骤:
    1. 下载源码:
    wget http://nchc.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz

    2. 解压缩:
    tar zxvf php_screw-1.5.tar.gz

    3. 通过README.en文件可以看到该版本软件包要求PHP5.x 环境,并要求zlib支持(通过执行脚本来检查)。如果你使用的是PHP4.X版本,请下载php_screw_1.3版本

    4. 进入源码目录
    #cd php_screw_1.5
    root@Server:~/php_screw-1.5# vim php_screw.h
    #define PM9SCREW “ PM9SCREW ”
    #define PM9SCREW_LEN 10
    #define PM9SCREW “ LAURENCE ”
    #define PM9SCREW_LEN 9

    每个加密的文件头部都一个很明显的字符串PM9SCREW, 这样很容易被人猜到是用screw加密的.

       这个问题的解决需要在安装的第一步就开始. 该标识串在源码的php_screw.h中. 在编译之前, 可以更改这个字符串, 例如,更改为PeterHu, 相应的下面的长度就不再是10了, 而是 PeterHu ,一共7个了.

    #define PM9SCREW        "	PM9SCREW	"
    #define PM9SCREW_LEN 10

    5. php_screw.h文件,如果不改这个文件,你加密的文件内容开头就会有 PM9SCREW ,你复制到google搜索下就知道是用screw模块加密的,虽然目前网上没发现解密算法,但以后就不一定,这么做就是为了隐藏加密算法,可以让别人不 知道你是用的什么算法加的密。改成COOL后10也要改成6.因为LAURENCE后字符长度是9发字符,如果你不对应加密后解密解析不了。
    my_screw.h
    root@Server:~/php_screw-1.5# vim my_screw.h
    short pm9screw_mycryptkey[] = {
    11152, 368, 192, 1281, 62
    };
    short pm9screw_mycryptkey[] = {
    12852, 968, 192, 1281, 62, 269
    };
    自定义加密种子文件,这个可能是该程序的亮点,用你喜欢的文本编辑器打开源码目录下的my_screw.h,修改文件里面的数组文件,可以用数字添 加该数组的长度。数组越长,加密越可靠。而且该数组的长度不会影响加密以及你的PHP程序执行的速度.测试发现不要大于5位数,大了就会解密解析有问题。

    6. phpize
    #phpize
    Configuring for:
    PHP Api Version: 20041225
    Zend Module Api No: 20060613
    Zend Extension Api No: 220060519

    如果你的系统提示没有该命令就需要安装apt-get install php5-dev Centos 估计是yum -y install php5-devel ,如果还是提示上述命令不存在,可能是由于你的php没有安装在标准目录下,请到php安装目录的bin文件夹下寻找,确定是否有该文件。然后回到 php_scre_1.5目录下,执行
    #/full/path/to/phpize
    要成功执行phpize,需要有autoconf 和M4软件包。成功执行后,源码文件夹下出现configure文件
    如果没有装错误如下:phpize command not found
    解决:centOS: yum -y install php-devel
    :RHEL :up2date -i php-devel

    7. 配置
    ./configure
    如果php安装在非标准目录,需要查看在phpize目录下是否有php-config文件,然后执行该目录如下
    ./configure –with-php-config=/full/path/to/php-config

    8. 安装
    make
    make install

    这个时候有时会出现一个问题:
    ‘zend_compiler_globals’ 没有名为 ‘extended_info’ 的成员make: *** [php_screw.lo] 错误 1
    解决方法:
    需要修改php_screw.c (有两个地方需要调整)
    把CG(extended_info) = 1;
    修改为:
    CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

    9. php配置
    在php.ini文件里面添加扩展
    vim /usr/local/php/etc/php.ini
    extension=php_screw.so
    重启apache,查看phpinfo()里面应该有php_screw的相关信息

     
    10、编译加密工具
        cd tools
        make
    11、 将 tools 目录下加密用的工具 screw 拷贝到适当目录
         cp screw /usr/bin/
     
    在根目录下创建hello.php 
    <?echo 'hello';?>
    php hello.php
    输出:hello
    screw hello.php
    输出:Success Crypting(hello.php),说明加密成功,目录下会多出一个文件hello.php.screw,现在的hello.php已经是加密过的了,而多出的则是源文件的备份.
    cat hello.php显示乱码.
    php hello.php 输出hello.脚本方式解析加密文件成功了.

    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;

    php_screw如何对当前目录下,对目录下包含的文件,以及包含目录下的文件进行整体加密

    find ./ -name "*.php" -print|xargs -n1 screw //加密所有的.php文件

    find ./ -name "*.screw" -print|xargs -n1 rm //删除所有的.php源文件的备份文件

    命令都实验过成功的.........应该没什么再补充的咯.....

    转自:https://blog.csdn.net/songtianyang01/article/details/36184375  

    本人实操成功

  • 相关阅读:
    陶瓷电容的结构、工艺、失效模式
    Vue.js最佳实践
    Vue 超快速学习
    CSS 小技巧
    HTML5 Canvas
    webkit下面的CSS设置滚动条
    Some untracked working tree files would be overwritten by checkout. Please move or remove them before you can checkout. View them
    JSCS: Please specify path to 'JSCS' package
    React中ref的使用方法
    React 60S倒计时
  • 原文地址:https://www.cnblogs.com/tyjsjl/p/10098083.html
Copyright © 2011-2022 走看看