zoukankan      html  css  js  c++  java
  • php简单混淆类加密文件如何解密?/ php混淆加密文件 并解密

    最近在整理单位购买的源码时,发现源码里好多文件都混淆加密了。虽然不解密也不影响使用,但是心里总觉得有些别扭,便试着将加密的文件解密。

          首先,百度了一下,看网上是否有现成的混淆类解密工具,搜到了一个http://www.zhaoyuanma.com/。尝试了一下,这个还真是好用,免费的,解密速度挺快。但是当解到一个比较大的文件时,发现文件上传不上去了,网站提示:文件无法上传。开始以为是不是解密次数多了,网站限制了。隔了一天试了一下,还是不行,后来打开了文件一下打算仔细的看看,觉得文件打开的比较迟钝,硬盘也吱吱的响,这才注意到这个文件的体积还挺大的,都4M多,我说怎么上传不上去。

          无法通过工具解密了,就只有自己想办法,试着自己解密试试,结果踩到了一个坑。

          先发一个混淆类加密的样式:

    复制代码
    $O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");
    $O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};
    $O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};
    $OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};
    
    eval($O00O0O("JE8wTzAwMD0iZENvVnp1dGtJSnllUVd4VXJxQVNOb*************));
    复制代码

     首先 在第一行后插入 echo $O00OO0; die(); 便可输出 urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6****"); 到底是什么字符串了,通过输出发现这一串字符是:

      n1zb/ma5vt0i28-pxuqy*6lrkdg9_ehcswo4+f37j

    接着再继续输出  $O00O0O、$OO0O00、 $OO0000 三个变量所表示的字符串了,还是在每一行后面添加 echo $O00OO0; die(); 继续用输出。便可以知道这三个变量表示的是什么含义了。这儿要小心,一不小心,就容易掉到坑里了。

    那就是 将第一行要将 $O00OO0=urldecode("%6E1%7A%62%2F%6D%"),这一句变成 $O00OO0=‘n1zb/ma5vt0i28-pxuqy*6lrkdg9_ehcswo4+f37j’; 而不是

     $O00OO0="n1zb/ma5vt0i28-pxuqy*6lrkdg9_ehcswo4+f37j"; ,要不然就整体都错了一位,调试出的变量所代表的函数就都似乎成了未知函数。(后来想想,$O00OO0=urldecode("%6E1%7A%62%2F%6D%")这行代码可以保持原样不动,就不会踩坑了)

    错位后的变量所代表的字符变成了

    $O00O0O='bawh';
    $O0OO00='w0k0k';
    $OO0O00='wqbw0k';
    $OO0000='58';
    $O00O0O.='bawhl+eghs4gh'

    通过正确的输出,便发现加密的函数为:

    $O00O0O='base';
    $O0OO00='strstr';
    $OO0O00='substr';
    $OO0000='52';
    $O00O0O.='base64_decode'

     接下来首先对  eval($O00O0O("JE8wTzAwMD0iZENvVnp1dGtJSnllUVd4VXJxQVNOb*************")); 解密,将 换成 echo ( base64_decode("JE8wTzAwMD0iZENvVnp1dGtJSnllUVd4VXJxQVNOb*************"));便会得到

    $O0O000="dCoVzutkIJyeQWxUrqASNlMvwpFPhLRsXTcnbBZaKgHfEODGijYmWHhSVxLTIveKzZCPFpEgQOoUmqunkltfyDNJBjwbXRadAirGscMYnr9mbaEXlehpHsEpIuQLMyv0KgjmBaSJbZ4XIHhXIHhRzajkM2Lkw2PRP21kNJt5HsEpIAjVWZvmMZQFMZWOIujfWZWqBJQGWZ5cWGOUBRhRXs8XHs8pXRhRXsjDBZueWaTRK2k0BZCdWGusBGS9IGw1BYQ0bZ9xIajfWZWqBRhRXRhRXsjPKyjOisERIHERwJSxM3tqB248MJI+HsEpIA5kBZP6IHERIHjhWG1fy3tkMYCOnGvenRhRXsjAMytOisERIHERtYSsIrA3lHEeorEVnGvenRhRXsjzWyvmB3QOisERBZuFwgjkBsjhWG1fIatkMYCOIGweB20RMZ4RMyveMyTRB2MRwGu0MDCsNc4XIHhRPGueMZ1ViRhRXsE8NavOnRhRXsELIGCUB3ERIHERIHERlgjkNJvkKgj0BejfB29mIathNY91w2RXIHhRlgjcB2CVIHERIHERIH0RBJSLMYSeIG9YIGQUBaSLBJofIGQUBZ1kIaQONGueMytOwHjfbyQ0IG9YIGQUBaSLBsjxMZ1ONmhRXsERIHERIHERIHERIHERIHjUNsjkNJvkKgjUwsjcB2C1BZ4RBYuLwyoXIHhRlgjeB3WVIHERIHERIH0RBJSLMYSeIG9YIavUW3oXIHhRlgj0MZvfwS9kWateIH0RWGusBGPRMyt0NYOsWytONmhRXsELIathy2u0WaIRIHERlgj0MZvfwgjhwZuTbZ5JIGu0WavqMJS0wyoRXGueNYu5NejkNYPRM3OcBGSTXzhRXsELIatey2u0WaIRIHERlgj0MZvfwgjeB3NRMyt0NYOsWytONeEhMyveMyOVIGuewgjcKZQfwZzqHsEpIH0RWGtdMyt0NsERIHELIatkMYCOIGQOBGmRMyt0N*******RisEJvVfXdzhXnV4=";eval('?>'.$O00O0O($O0OO00($OO0O00($O0O000,$OO0000*2),$OO0O00($O0O000,$OO0000,$OO0000),$OO0O00($O0O000,0,$OO0000))));

    继续将变量替换成  base64_decode(strtr(substr($O0O000,52*2),substr($O0O000,52,52),substr($O0O000,0,52)));便可以得到源码了。

    转载:https://www.cnblogs.com/imustun/p/10158718.html

    --------------------------------------------------------------------------------------------------------

    这个网站真是厉害 https://www.zhaoyuanma.com/phpjm.html

    ---------------------------------------------------------------------------

    这个博客也有破解方法 : http://www.php20.cn/article/235

  • 相关阅读:
    [atARC123F]Insert Addition
    3.1 概述
    2.5 信道的极限容量
    2.4 编码与调制
    2.3 传输方式
    tp6_004路由配置
    tp6_003多应用配置
    tp6_002规范和配置
    tp6_001安装和运行
    问题解决:tp6多应用无法获取controller 和 action怎么办
  • 原文地址:https://www.cnblogs.com/yehuisir/p/13732330.html
Copyright © 2011-2022 走看看