发现文件被PHP加密后,可通过分析代码中的加密函数特征定位解密方法:首先查找base64_decode、gzinflate、openssl_decrypt等函数判断加密类型;若为多层Base64编码,可编写脚本逐层解码直至还原源码;对于eval(gzinflate(base64_decode()))结构,提取字符串并执行解压解码即可恢复原始代码;若存在XOR异或混淆,通过遍历密钥或自动化测试找出能输出“
3、运行脚本,查看输出结果是否为新的PHP代码或另一层Base64字符串。
4、如果输出仍是Base64格式,将结果替换原字符串并重复执行解码过程,直到获得可读的PHP源码为止。
三、还原使用eval+gzinflate组合加密的内容
这种加密方式常见于PHP木马或受保护的商业插件中,利用压缩后编码的方式隐藏真实代码,可通过执行解压流程还原。
1、在加密文件中寻找类似
eval(gzinflate(base64_decode(
的结构,确认后提取其中的Base64字符串。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
2、创建一个新的PHP文件,将提取的字符串赋值给变量,并去除eval函数包裹,改为直接输出解码结果。
3、执行以下代码:
