前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php混淆加密解密实战

php混淆加密解密实战

作者头像
仙士可
发布2020-03-30 11:38:23
5.8K1
发布2020-03-30 11:38:23
举报
文章被收录于专栏:仙士可博客仙士可博客

在查看别人的php源码的时候,我们经常会看到加密后的php代码.那么php加密原理是什么呢?怎么解密呢?

混淆加密

我们从百度随便搜索一个加密网站,例如:http://dezend.qiling.org/encrypt/

加密代码:

代码语言:javascript
复制
<?php
/**
 * Created by PhpStorm.
 * User: tioncico
 * Date: 20-3-28
 * Time: 上午9:59
 */
class Tioncico{
    function testEcho(){
        echo "仙士可\n";
    }
}
$tioncico = new Tioncico();
$tioncico->testEcho();

加密成功后:

仙士可博客
仙士可博客

成功执行:

仙士可博客
仙士可博客

那么,这串代码的加密原理是什么呢?能解密吗?

在这串代码中,我们发现了最后有段代码为:eval();(如果你通过打印eval的第一个变量,可以发现这个变量为base64_decode)

很明显,该代码最后通过这串代码执行,通过echo把eval需要执行的代码输出:

仙士可博客
仙士可博客

可以发现,它又是一个eval包裹,继续输出:

仙士可博客
仙士可博客

同理,找到最后的eval,输出:

仙士可博客
仙士可博客

继续:

仙士可博客
仙士可博客
仙士可博客
仙士可博客

则得到了加密前的代码.   

混淆加密的原理

混淆加密通过不断重复的base64,然后混淆base64_encode,decode函数,最后通过eval 解密执行完成.  只要稍微了解了一点原理,就能解密成功了.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 混淆加密
    • 混淆加密的原理
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档