位置:首页 > 行业软件 > PHP文件被加密后的解密方法与技巧汇总

PHP文件被加密后的解密方法与技巧汇总

时间:2026-06-10  |  作者:318050  |  阅读:0

PHP文件突然打不开、读不了源代码了?别急,先判断一下是哪种“加密”在搞鬼——可能是恶意软件、勒索脚本,也可能是某些第三方混淆工具留下的“烂摊子”。下面针对不同情况,拆解几种靠谱的恢复方法。

一、识别加密类型:先看它是不是“假加密”

很多所谓的“加密”,其实只是用 base64gzinflatestr_rot13 这类函数做了层编码或混淆。这类操作通常是可逆的。

重点检查文件里有没有常见的解码调用链,比如 eval(base64_decode(...))eval(gzinflate(...)) 这种套娃写法。

具体操作:

  • 用文本编辑器打开文件,扫一眼开头有没有 eval(base64_decode(gzuncompress( 这类函数。
  • 看看文件里是不是有大量不可读字符、超长的 base64 片段(特征:字母数字+/=),或者反复出现的十六进制转义序列(比如 被转义)。
  • 如果发现 eval( 包裹的动态执行逻辑,千万别在生产环境直接跑这个文件——一定要在隔离环境里分析。

二、base64/gzinflate 解码:自己动手解包

确认只是 base64 + gzinflate 这层包装的话,写个简单的 PHP 脚本就能逐层还原。这种方法对付常见的 WebShell 或盗版程序的多层混淆特别管用。

步骤:

  1. 新建一个临时文件 decode.php,内容如下(核心逻辑就是匹配 eval 里的编码串并解码):
  1. 把被加密的文件重命名为 encrypted.php,和 decode.php 放同一目录。
  2. 命令行执行 php decode.php > decoded.php,结果保存为新文件。
  3. 检查 decoded.php:如果里面还有嵌套的 eval,那就重复执行上面的步骤,直到没有 eval 包裹的编码段为止

三、开源工具 php-deobfuscator:自动去混淆

如果手动拆包太麻烦,可以用专门的去混淆工具。php-deobfuscator 是个命令行工具,专门处理多层函数嵌套、变量重命名、控制流扁平化这类操作(ionCube 和 Zend Guard 除外)。

用法:

  1. 通过 Composer 安装:composer global require jaybizzle/php-deobfuscator
  2. 进入加密文件所在目录,执行 php-deobfuscator encrypted.php --output decoded.php
  3. 如果提示“Unsupported encoding detected”,试试加参数 --force-base64--force-gzip 强制解码。
  4. 生成的 decoded.php 可能还有变量名混乱的情况,这时候人工核对关键函数名(比如 mysql_queryfile_put_contents)是否恢复可读

四、备份恢复:最稳妥的路径

如果加密是勒索脚本搞的,而且你平时没有做实时备份?那本地或远程的备份文件就是唯一的救命稻草了。这个方法不依赖任何解密算法,直接绕过解密失败的风险。

需要检查几个地方:

  • 看网站根目录同级有没有 backup__old.bak.swp 这类后缀的文件。
  • 登录服务器控制面板(比如 cPanel、宝塔),进“文件管理器”翻翻“回收站”或“历史版本”功能。
  • 如果项目在用 Git,执行 git statusgit log --oneline -n 20,找到最后一次未加密的提交哈希,然后 git checkout -- path/to/file.php把干净的版本直接覆盖加密文件

五、简单混淆(XOR/ROT13)的快速还原

部分轻量级恶意脚本会用固定密钥 XOR 或 ROT13 对敏感字符串(比如数据库密码、URL)做混淆。整体语法结构没变,只是关键字符串不可读。这种反而好处理。

举个例子:看到类似 $a="Khoor#Zruog"; 的字符串,ROT13 特征明显(字母位移13位)。可以用一句 shell 命令解:echo "Khoor#Zruog" | tr 'A-Za-z' 'N-ZA-Mn-za-m',输出来就是 Hello#World

如果是 XOR 混淆,且已知密钥(比如 $k=15;),写个 PHP 循环逐字节异或就行。还原后的明文字符串手动替换回原文件对应位置,替换前务必对原文件做 md5sum 校验并保存哈希值,以免手误。

来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

精选合集

更多

大家都在玩