百思不得其解,为什么php加密文件轻易就被解密了

狄默默斯基 2017-12-23 04:58:05
解密地址: http://www.zhaoyuanma.com/phpjm.html

包括一些很主流的加密平台,在这里完全现形,我看了一下,他非常精准的能够找到eval,
请问这是怎么做到的?
如何防止被这个网站破解混淆加密呢?
...全文
172 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-12-23
  • 打赏
  • 举报
回复
还原基于 eval 函数的低档混淆代码,只需一个类似这样的函数
function unscrambler($code) {
  $_file = '';
  if(! is_array($code)) {
    $_file = $code;
    $code = str_replace('__FILE__', "'$code'", str_replace('eval', '$code=', file_get_contents($code)));
    eval('?>' . $code);
  }else {
    extract($code);
    $code = str_replace("eval", '$code=', $code);
    $code = str_replace('__FILE__', "'$_file'", $code);
    eval($code);
  }
  if(strstr($code, 'eval')) return unscrambler(get_defined_vars());
  else return $code;
}
xuzuning 2017-12-23
  • 打赏
  • 举报
回复
因为是 混淆 而不是 加密 混淆 并没有改变任何东西,只是将可读性降到最低而已 加密 就应该有密钥,对于没有密钥的加密。和混淆没有多少区别 此类 混淆加密 都必须还原成 原始的 php 代码,方能被 php 引擎解释运行 很多人都说 zend 是加密,其实 zend 是预编译,编译后的代码需要在特定的虚拟机器中才能运行,而运行时也没有还原成 php 代码的过程

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧