php-beast对php源码进行加密

日志 / 273人浏览 / 0人评论

php-beast是一个开源的php加密扩展,大概的方式是对代码进行加密,解密的php扩展是用C语言写的,相比一般的混淆代码更难破解

GitHub地址为 https://github.com/liexusong/php-beast

Windows版本的下载地址 https://github.com/imaben/php-beast-binaries

以下内容主要是针对linux环境下的

php环境是宝塔下的php7.1版本,php的目录是在/www/server/php/71/

    安装如下:

$ wget https://github.com/liexusong/php-beast/archive/master.zip

$ unzip master.zip

$ cd php-beast-master


    修改自定义文件头header.c

    $ vim header.c

    修改aes_algo_handler.c

    $ vim aes_algo_handler.c

    static uint8_t key[] = {        0x1b, 0x1e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,        0xab, 0xa7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c,     }; 

    可以绑定网卡,执行ifconfig获取当前mac,并修改网卡选项配置

    image.png

    $ vim networkcards.c

    image.png

    注意的是绑定网卡后,默认的网卡名字是eth0,如果不是的话,需要在php.ini里添加上beast.networkcard = “ens33”

    输入mac的时候不要用单引号括起来,要用双引号 ,而且最后那个逗号还要保留,要不然会出错

     编译:

$ /www/server/php/71/bin/phpize

$ ./configure --with-php-config=/www/server/php/71/bin/php-config 
   加上 --enable-execute-normal-script=off可以禁止执行未加密的php脚本
$ sudo make && make install   编译好之后修改php.ini配置文件, 加入配置项: extension=beast.so,(可能还需加入网卡名) 重启php-fpm

    image.png


    扩展安装完成了,接下来是扩展加密:

    打开tools

    [[email protected] php-beast-master]# cd tools

    encode_files.php文件可以加密一个文件夹里的php文件,但实现先要配置好configure.ini,

    [[email protected] tools]# vim configure.ini

    image.png

    expire 是php文件过期时间(格式是  YYYY-mm-dd HH:ii:ss),

    encrypt_type 的加密方式有 DES、AES、BASE64

    直接执行 php encode_files.php就可以进行加密

    [[email protected] tools]# php encode_files.php

    

   

    还有第二种加密方法:

    

    使用beast_encode_file()函数加密文件,函数原型如下:
beast_encode_file(string $input_file, string $output_file, int expire_timestamp, int encrypt_type)

    这样的话可以更方便自定义需要加密的文件路径

1. $input_file: 要加密的文件
2. $output_file: 输出的加密文件路径
3. $expire_timestamp: 文件过期时间戳
4. $encrypt_type: 加密使用的算法(支持:BEAST_ENCRYPT_TYPE_DES、BEAST_ENCRYPT_TYPE_AES)

    

 php-beast扩展函数:

    1. beast_encode_file(): 用于加密一个文件

    2. beast_avail_cache(): 获取可以缓存大小

    3. beast_support_filesize(): 获取beast支持的最大可加密文件大小

    4. beast_file_expire(): 获取一个文件的过期时间

    5. beast_clean_cache(): 清空beast的所有缓存(如果有文件更新, 可以使用此函数清空缓存)

   


感谢博主,喝杯咖啡~

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我