前言
点击此处即可获取282G网络安全学习资源
php是一种解释型脚本语言.与编译型语言不同,php源代码不是直接翻译成机器语言.而是翻译成中间代码(OPCODE) ,再由解释器(ZEND引擎)对中间代码进行解释运行 .
在php源代码的保护在原理可以分为3大类.
- 源代码混淆(编码)
- OPCODE混淆(编码)
- 修改解释引擎(虚拟机)
在部署上可以分为2大类.
- 无扩展
- 有扩展
下面分析下各种加密方案的实现方法
PHP 加密方案分析
无扩展方案
源代码混淆
无扩展的加密在一些小开发者比较常见。这种源代码保护方式侵入性小,无需对服务器做额外的配置,兼容性较强。
这种情况混淆后的源代码还原非常简单,可完全还原出源代码。 有时连注释都会保留 (x 我觉得这种混淆都不能称之为加密基本流程 压缩代码->混淆变量函数类名->使用简单函数和方法进行编码加密 例:base64 异或
手工解密
看到这种的php不要慌 这种处理后的文件 解密流程的变量和函数名使用了大量的非打印字符 按照正常的流程就可以ctrl+alt+l 快捷键 格式化代码 (这里使用的PhpStorm 其他IDE 格式化遇到特殊符号可能出问题 这里提前调整好了文件编码)
这里有一个php的特性 php中的base64遇到非b