如何运行加密的php代码_运行加密PHP文件方法汇总【汇总】

2次阅读

可通过ionCube Loader、SourceGuardian扩展、phpBolt runtime、VLD分析或手动剥离eval链五种方式运行加密PHP文件,需依加密类型匹配对应工具与配置步骤。

如何运行加密的php代码_运行加密PHP文件方法汇总【汇总】

如果您获取了经过加密的PHP代码文件,但无法直接通过PHP解释器执行,则可能是由于代码被混淆、编译为字节码或使用了第三方扩展加密。以下是运行此类加密PHP文件的具体方法:

一、使用ionCube Loader加载加密文件

ionCube Loader 是广泛用于运行经 ionCube PHP Encoder 加密的PHP文件的扩展模块,需在PHP环境中安装对应版本的Loader并启用。

1、确认当前PHP版本及架构:在命令行执行 php -vphp -i | grep “Architecture”

2、访问 https://www.ioncube.com/loaders.php 下载匹配的Loader二进制文件(如 linux x86_64 对应 ioncube_loader_lin_8.2.so)。

立即学习PHP免费学习笔记(深入)”;

3、将下载的 .so 文件复制到PHP扩展目录(可通过 php -i | grep “extension_dir” 查得)。

4、编辑 php.ini,在末尾添加两行:zend_extension=ioncube_loader_lin_8.2.soioncube.loader.encoded_paths=”/path/to/encrypted”

5、重启Web服务器或PHP-FPM服务,执行 php -m | grep ioncube 验证是否加载成功。

二、使用SourceGuardian扩展解密执行

SourceGuardian 支持对PHP脚本进行加密并生成 .phps 或 .phpx 文件,运行依赖其专属扩展 loader_wizard 工具生成的扩展模块。

1、访问 https://www.sourceguardian.com/loaders.html,选择与PHP版本、线程安全(TS/NTS)、操作系统完全一致的Loader压缩包。

2、解压后找到对应平台的 ixed..lin(Linux)或 ixed..ts.winwindows TS版)文件。

3、将该文件放入PHP扩展目录,并在 php.ini 中添加:extension=ixed.8.2.lin(路径与名称依实际修改)。

4、确保加密文件具有可读权限,且文件扩展名符合SourceGuardian要求(如 .phps),直接通过 php encrypted.phps 执行。

三、通过PHPBolt解密后执行(仅限兼容版本)

PHPBolt 是一种轻量级PHP加密方案,部分版本支持在不安装扩展的情况下,通过其提供的 runtime 解密器运行加密脚本。

1、从原始分发渠道获取配套的 phpbolt_runtime.php 文件(不可用第三方替代)。

2、将加密后的PHP文件(如 index.phpbolt)与 runtime 文件置于同一目录。

3、创建启动脚本 run.php,内容为:

4、在命令行中执行 php run.php,由 runtime 自动完成解密与上下文注入。

四、使用VLD扩展查看OPcode反推逻辑(调试用途)

若加密未禁用OPcache或VLD,可通过分析编译后的中间指令推测原始结构,适用于无扩展依赖的弱混淆场景。

1、安装VLD扩展:pecl install vld,并在 php.ini 中加入 extension=vld.so

2、执行 php -dvld.active=1 -dvld.execute=0 encrypted.php 输出OPcode列表。

3、重点关注 INIT_FCALLSEND_VALDO_FCALL 等调用指令,定位加密主函数入口。

4、结合 php -dopcache.enable=0 -dvld.active=1 encrypted.php 观察无优化下的指令流差异。

五、手动剥离eval类动态执行层(高风险操作)

部分加密采用 base64_decode + gzinflate + eval 的链式调用,可在确保法律合规前提下临时修改代码绕过加密外壳。

1、用文本编辑器打开加密PHP文件,搜索关键词 eval(base64_decodegzinflatestr_rot13

2、定位最外层加密函数调用,例如 eval(gzinflate(base64_decode($x)));

3、将该行替换为 file_put_contents(‘decrypted.php’, gzinflate(base64_decode($x))); exit;

4、执行该修改后文件,生成 decrypted.php,检查其内容是否为可读PHP源码,再独立运行。

text=ZqhQzanResources