• 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  

    本人实操成功

  • 相关阅读:
    核心编程笔记8——用户模式下的线程同步
    核心编程随笔7——线程调度和优先级
    深入浅出mfc随笔——MFc程序的生死因果
    opengl
    核心编程6——线程
    深入浅出mfc学习笔记——六大关键技术之仿真_运行时和动态创建
    深入浅出mfc学习笔记——六大关键技术仿真_Persistence(永久保存)
    Gdi+编程
    深入浅出mfc学习笔记1
    file open等待事件
  • 原文地址:https://www.cnblogs.com/tyjsjl/p/10098083.html
Copyright © 2020-2023  润新知