V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
batilo
V2EX  ›  PHP

有菊苣能帮忙 decode 一下加密内容嘛?

  •  
  •   batilo · 2016-01-28 10:40:41 +08:00 · 4275 次点击
    这是一个创建于 2983 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 条回复    2016-01-30 08:16:23 +08:00
    zhangchunfei
        1
    zhangchunfei  
       2016-01-28 11:50:31 +08:00
    啥叫菊苣?
    xuboying
        2
    xuboying  
       2016-01-28 12:16:45 +08:00
    cooltechbs
        3
    cooltechbs  
       2016-01-28 12:33:58 +08:00
    菊苣就是巨巨,大大的升级版
    moro
        4
    moro  
       2016-01-28 12:35:10 +08:00
    php 的一段,解出来是这样的
    $global2['content']=substr(file_get_contents(__FILE__), 4415, 6148);
    $global2['content']=base64_decode($global2['content']);
    $global2['content']=gzuncompress($global2['content']);
    return(eval($global2['content']));

    substr 后面两个是写死的,更换文件路径后 gzuncompress 报错,应该是 substr 两个值不对。
    moro
        5
    moro  
       2016-01-28 12:36:28 +08:00
    猜测至少还有别的程序处理这个文件。
    necomancer
        6
    necomancer  
       2016-01-28 12:47:15 +08:00 via Android
    感觉像 base64 ,你 base64 -d 一下试试
    batilo
        7
    batilo  
    OP
       2016-01-28 16:35:30 +08:00
    @moro 好的, 感谢。 我们再看看
    shuimugan
        8
    shuimugan  
       2016-01-28 18:15:44 +08:00
    一个混淆过的 php 版 webshell,目测站点已被 getshell...
    Sunyanzi
        9
    Sunyanzi  
       2016-01-29 00:26:16 +08:00   ❤️ 1
    @shuimugan 这还真不是个 webshell ... 看似一个跟 wordpress 有关的授权文件 ...
    vibbow
        10
    vibbow  
       2016-01-29 01:26:57 +08:00
    为什么我运行后直接提示语法错误...
    vibbow
        11
    vibbow  
       2016-01-29 01:52:26 +08:00
    我知道了,源代码是有 unicode 的, LZ 是不是已经解密一遍了?
    vibbow
        12
    vibbow  
       2016-01-29 02:34:54 +08:00
    看到了一个 register_sidebar
    感觉真的是 wordpress 插件相关文件。
    vibbow
        13
    vibbow  
       2016-01-29 02:37:05 +08:00
    目测 LZ 是想破解这个网站的主题了:
    https://www.suxing.me/
    vibbow
        14
    vibbow  
       2016-01-29 02:44:55 +08:00
    核心混淆算法就是这么一句话:
    function dec($a, $b = '')
    {
    if (empty($a)) return '';
    $a = base64_decode($a);

    if ($b == '') return ~$a;
    //if ($b = ='-1') // Do something weird

    $length = strlen($a);
    $b = str_pad($b, $length, $b);

    return $b ^ $a;
    }

    文件最开始把代码里使用到的关键字,全部使用这个算法解密开。(包括函数名,变量值,常量值)
    然后程序就可以正常运行了。

    PHP 是可以使用 unicode 变量的,不过绝大多数 IDE 应该都不支持 unicode 的。
    网上绝大多数 PHP 解混淆工具应该也不支持 unicode 的,所以就无法解开这个文件了。
    文件实际混淆强度不大。
    Roycom
        15
    Roycom  
       2016-01-30 08:16:23 +08:00 via iPhone
    mark 一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2821 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:38 · PVG 22:38 · LAX 07:38 · JFK 10:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.