PHP-Beast代码保护扩展:Windows与Linux安装使用指南及常见解密问题处理
php-beast 是一个非常易于使用且高效的 PHP 代码保护扩展。介绍了Windows和Linux上的安装和使用问题,以及常见解密问题的处理方法。

1)Windows版本加密处理
windows下可以直接在这里下载dll
根据你的PHP版本以及是否线程安全选择下载对应的。
放到对应的扩展目录下
在配置文件php.ini中添加扩展配置
扩展名=php_beast_x86_nts.dll
但如果秘钥相同的话,编译往往会失败或者会出现lib版本不匹配的问题。
老版本我用VS编译dll,处理版本限制很麻烦。
官方提供的版本非常稳定。直接用二进制修改对应的秘钥部分即可。
【1】部分处理aes
ida分析出对应位置发生了变化
静态 uint8_t key[] = {
0x2b、0x7e、0x15、0x16、0x28、0xae、0xd2、0xa6、
0xab、0xf7、0x15、0x88、0x09、0xcf、0x4f、0x3c、
};
使用ue二进制编辑根据文件偏移找到对应位置,修改,保存。
【2】加工des部分
ida逆向分析秘钥变量所在位置及源码
静态字符键[8] = {
0x01、0x1f、0x01、0x1f、
0x01、0x0e、0x01、0x0e、
};
正好对应
使用ue二进制进行编辑、修改和保存
如果测试通过其他加密方式,则不予处理。
[3] encrypt_file_header_sign修改
加密文件头标志修改
ida分析头部信息位置
此数据应位于加密文件的开头,以指示文件是否已加密。
尝试尽可能特别
我的版本在位置76760的长度是8
2)Linux版本加密处理
编译前需要修改秘钥。新版本加密方式更多,需要修改的地方也更多。
旧版本在key.c中修改,新版本在header.c中修改
aes_algo_lib.c
des_algo_handler.c
头文件.c
编译步骤如下
120wget
第121章 解压master.zip
122 cd php-beast-master/
124phpize
125 ./configure --with-php-config=/apps/php/bin/php-config
错误:找不到 php-config
找到你的配置在哪里
130 查找/-名称“php-config”
确定配置文件位置
131./configure --with-php-config=/usr/local/php/bin/php-config
第132章
133 sudo 进行测试
134php-m
如果您发现它不起作用,请重试。
135./configure --with-php-config=/usr/local/php/bin/php-config
第136章 136
稍后您还需要添加 sudo root 权限。
第137章
138php-m
140 sudo 进行测试
成功
添加到php配置文件
第141章 141
142 gedit /usr/local/php/etc/php.ini
添加扩展名=“beast.so”
146 php -i|grep 扩展
153 服务 php-fpm 重新启动
重启php开始加密测试
154 光盘工具/
161 php 编码文件.php --加密 DES --旧文件 1.php --新文件 22.php
162php 22.php
163 猫 22
1.php加密后生成。 2.php加密后正常运行。
3)php-beast解密
[1] 修改后的密钥难以解密
未知的密钥只能通过暴力破解。分析加密文件头以确定其加密类型。三种加密类型中的大多数是 AES des 和 base64。没有人应该使用它。
分析加密类型并破解文件主体。
-----------------------分析说明B------------------------ -----
#define INT_SIZE (sizeof(int)) 在 x64 上为 4 字节
php_stream_write(output_stream,加密文件头标志,加密文件头长度);
php_stream_write(output_stream, (const char *)&dumplen, INT_SIZE);长度
php_stream_write(output_stream, (const char *)&expireval, INT_SIZE);到期时间
php_stream_write(output_stream, (const char *)&dumptype, INT_SIZE);加密类型 des=1
BEAST_ENCRYPT_TYPE_DES = 1,dumptype默认des值为1
BEAST_ENCRYPT_TYPE_AES,
BEAST_ENCRYPT_TYPE_BASE64,
使用beast_encode_file()函数对文件进行加密。函数原型如下:
east_encode_file(字符串$input_file,字符串$output_file,int expire_timestamp,int encrypt_type)。
$input_file:要加密的文件
$output_file:输出加密文件路径
$expire_timestamp: 文件过期时间戳
$encrypt_type:用于加密的算法(支持:BEAST_ENCRYPT_TYPE_DES、BEAST_ENCRYPT_TYPE_AES)
-----------------------分析说明E------------------------ - ----
【2】默认密钥加密,
大多数保护代码的未经修改的第三方都会使用默认的密钥加密方法,以便于安装。否则,在一台服务器上部署多个版本的php-beast会增加难度,降低易用性。
默认键如下。自己解密主题即可。
des_key =“11”
aes_key=2b,
懒人也可以使用免费工具来解密php-beast默认加密的文件。点击传送门phpbeast-beast解密decode-online工具。
—————————————————
版权声明:本文为CSDN博主“哈尔王”原创文章,遵循CC 4.0 BY-SA版权协议。转载时请附上原文出处链接及本声明。
原文链接: