欢迎来到州讯互联官网,本网已累计服务38461家企业! 2023-06-09 星期五
登录   |    注册   |    全国服务热线:0534-2109986  
php源代码保护——PHP加密方案分析&解密还原
2022-08-27 17:56:38  |  源自:州讯互联  |  访问:552人次  |  转载请标明来自于州讯
分享到:
php是一种解释型脚本语言.与编译型语言不同,php源代码不是直接翻译成机器语言.而是翻译成中间代码(OPCODE),再由解释器(ZEND引擎)对中间代码进行解释运行.在php源代码的保护在原理可以分为3大类.源代码混淆(编码)OPCODE混淆(编码)修改解释引擎(虚拟机)在部署上可以分为2大类.无扩展有扩展下面分析下各种加密方案的实现方法PHP加密方案分析无扩展方案源代码混淆无扩展的加密在一些小...

php是一种解释型脚本语言.
与编译型语言不同,php源代码不是直接翻译成机器语言.而是翻译成中间代码(OPCODE) ,再由解释器(ZEND引擎)对中间代码进行解释运行 .


在php源代码的保护在原理可以分为3大类.

  • 源代码混淆(编码)

  • OPCODE混淆(编码)

  • 修改解释引擎(虚拟机)


在部署上可以分为2大类.

  • 无扩展

  • 有扩展



下面分析下各种加密方案的实现方法


PHP 加密方案分析


无扩展方案


源代码混淆


无扩展的加密在一些小开发者比较常见。
这种源代码保护方式侵入性小,无需对服务器做额外的配置,兼容性较强。


这种情况混淆后的源代码还原非常简单,可完全还原出源代码。 有时连注释都会保留 (x 我觉得这种混淆都不能称之为加密
基本流程 压缩代码->混淆变量函数类名->使用简单函数和方法进行编码加密 例:base64 异或


【点击查看资料】或私信回复“资料”获取



手工解密



看到这种的php不要慌 这种处理后的文件 解密流程的变量和函数名使用了大量的非打印字符 按照正常的流程就可以
ctrl+alt+l 快捷键 格式化代码 (这里使用的PhpStorm 其他IDE 格式化遇到特殊符号可能出问题 这里提前调整好了文件编码)



这里有一个php的特性 php中的base64遇到非base64表中字符会直接忽略 不会影响解码
注: PHP7 遇到空字符可能会抛出error 可以使用php5.6执行 (这里有一个兼容性问题 )
遇到这种加密最简单的方法就是找文件中最后一步执行的函数 直接把内容打印出来
这种编码方法最后一步肯定要使用eval执行还原后的php代码 所以打印最后一个函数基本上php代码就会全部出来 (x 前面操作一大顿毫无卵用
注: 有保护方案也使用了call_user_func或call_user_func_array间接调用eval



成功还原源代码 <?php phpinfo();?>




分享到:

在线
客服

在线客服服务时间:9:00-24:00

客服
热线

0534-2109986
7*24小时客服服务热线

13969241212
投诉热线

提交
工单

提交工单电话无法接通可提交工单,把您的问题与需求发给我们

  • 您的姓名:
    *
    您的问题:
    * 剩余200字符
    验 证 码:
    *

公司
地址

联系我们
德州经济技术开发区中元科技园

关注
微信

关注官方微信
顶部