PHP 魔方加密二代 解密

× 文章目录
  1. 1. 0x00 前言
  2. 2. 0x01 常用的加密类型及特征
  3. 3. 0x02 解密
    1. 3.1. 下载PHP mfenc反编译器代码
    2. 3.2. 删除composer.lock
    3. 3.3. 使用composer安装依赖的库文件
    4. 3.4. 通过rebuild对member.php进行解密
    5. 3.5. 解密结果
  4. 4. Centos7 安装PHP 7
  5. 5. 安装compoeser

0x00 前言

洪哥给我一个加密的PHP代码,问我有没有办法搞出来,没有接触过PHP混淆加密,百度了一下加密特征,使用的是魔方二代加密方法。

从52破解上找了一个魔方二代加密反编译代码对加密的PHP代码进行解密,记录一下过程

[调试逆向] PHP解密:魔方加密2代 全自动反编译器

汇编这块看不懂,直接拉到最下面,大佬给出了反编译代码

PHP mfenc Decompiler

0x01 常用的加密类型及特征

加密类型 加密特征
Zend/PHP5.3/5.4
Zend/PHP5.5/5.6
文件头部 <?php @Zend或Zend
PHP 5.3 2004072201 65540
PHP 5.4 2004072201 65541
PHP 5.5 2004072201 65542
PHP 5.6 2004072201 65543
微擎加密 主要使用goto语法打乱代码顺序
魔方一代加密 function 开头包含很多function
魔方二代加密 if(isset($乱码){array_push$乱码... 开头
ionCube 文件头部 <?php //00xxx(16进制数字) 或 HR+c
php-screw 文件头部 PM9SCREW等一般是定制版本, 文件特征各不相同
php-beast 文件头部 二进制数据 “\xe8\x16\xa4\x0c”一般是定制版本, 文件特征各不相同
ZoeeyGuard 调用函数 zoeey_run等一般是定制版本, 文件特征各不相同

0x02 解密

对比一下加密特征,符合魔方二代加密

下载PHP mfenc反编译器代码

1
# git clone https://github.com/ganlvtech/php-mfenc-decompiler.git

删除composer.lock

使用composer安装依赖的库文件

1
# composer install

注意PHP版本 > 7.0

通过rebuild对member.php进行解密

1
# php bin/rebuild.php member.php

会在当前目录下生成member.rebuilt.php文件

解密结果

Centos7 安装PHP 7

我的PHP版本是PHP 5.4,在使用composer安装依赖报错提示需要 PHP > 7.0

通过yum安装报错,只能通过源码编译安装,速度比较慢

可以使用remi源

https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/

安装compoeser

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
下载安装脚本 - composer-setup.php - 到当前目录。
# php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"

执行安装过程
# php composer-setup.php

删除安装脚本
# php -r "unlink('composer-setup.php');"

全局安装
# mv composer.phar /usr/local/bin/composer

切换为国内镜像
# composer config -g repo.packagist composer https://packagist.phpcomposer.com

更新 composer
# composer selfupdate

安装依赖
# composer install

更多请参考Composer 安装与使用