美文网首页
php加密代码解密

php加密代码解密

作者: 我是科技虫 | 来源:发表于2019-08-29 13:01 被阅读0次

    php 加密文件解密

    加密后的源文件长这个样:

    <?php $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("JE8wTzAwMD0iWmZERXp2eG.....这里省略了很多字符......E8wMDAsMCwkT08wMDAwKSkpKTs="));?>
    

    开始解密:

    1. 新建一个php文件 如 a.php
    2. 在解密文件中引入加密文件,需要注意的是解密的文件格式必须固定如下格式

    格式

    
        // 要解密的文件,去掉php标识
        
        $path = __DIR__ . "/a.php"; // 引入加密文件
        $encode_sourcecode = file_get_contents($path);
        $encode_sourcecode = str_replace('<?php','', $encode_sourcecode);
        $encode_sourcecode = str_replace('?>','', $encode_sourcecode);
    
        // 提取第一次需要解密的内容
        // 即JE8wTzAwMD0iTmV5SElCamZRdk......1UYVNuUUpnY21UYVVoOCtoTm89IjtldmFsKCc/==
        echo '</br></br>------------------------------$encode_sourcecode_content</br>';
        $start = strripos($encode_sourcecode, '("') + 2;
        $end = strripos($encode_sourcecode, '")');
        $encode_sourcecode_content = substr($encode_sourcecode, $start, $end - $start);
        echo $encode_sourcecode_content;
    
        // 解密加密部分的代码后的内容
        // $O0O000="NeyHIBjfQvDMwo......JoSptgMdl3M3JgSKQTiB0nuh8+hNo="; eval('......OO0000))));
        echo '</br></br>------------------------------$decode_sourcecode_content</br>';
        $decode_sourcecode_content = base64_decode($encode_sourcecode_content);
        echo $decode_sourcecode_content;
    
        // 解密后还是一个加密的代码,需要再次解码,所以要再次提取需要被解密的内容出来
        // 即NeyHIBjfQvDMwo......JoSptgMdl3M3JgSKQTiB0nuh8+hNo=
        echo '</br></br>------------------------------$decode_sourcecode_content_encode_content</br>';
        $start = stripos($decode_sourcecode_content, '"') + 1;
        $end = strripos($decode_sourcecode_content, '"') ;
        $decode_sourcecode_content_encode_content = substr($decode_sourcecode_content, $start, $end - $start);
        echo $decode_sourcecode_content_encode_content;
    
        // 根据加密规则,替换字符并解码,即可得到原文件
        echo '</br></br>------------------------------$decode_sourcecode_content_encode_content</br>';
        $origin_content = base64_decode(strtr(
            substr($decode_sourcecode_content_encode_content, 104),
            substr($decode_sourcecode_content_encode_content, 52, 52),
            substr($decode_sourcecode_content_encode_content, 0, 52)));
            
        var_dump($origin_content);
        
        // 把解密后的文件写入到b.php 文件中
        file_put_contents(__DIR__ . "/b.php", $origin_content);
    
    1. 通过上面的解密,我们看一下得到的解密文件是什么样子的
    <?php 
    
    function jIaCy($SRepU){ 
        $SRepU=gzinflate(base64_decode($SRepU));
        for($i=0;$i<strlen($SRepU);$i++){
            $SRepU[$i] = chr(ord($SRepU[$i])-1);
        }
        return $SRepU;
    }
    eval(jIaCy("7T1rVxtH....这里省略了很多字符....PL/"));?>
    
    1. 使用当前解密出来的函数,执行获取内容,导出到 c.php 文件,即可获取加密之前的文件,改造后运行
    <?php 
    
    function jIaCy($SRepU){ 
        $SRepU=gzinflate(base64_decode($SRepU));
        for($i=0;$i<strlen($SRepU);$i++){
            $SRepU[$i] = chr(ord($SRepU[$i])-1);
        }
        return $SRepU;
    }
    
     echo $data = jIaCy("7T1rVxtH....这里省略了很多字符....PL/");
     file_put_contents(__DIR__ . "/c.php", $data);
     ?>
    
    1. c.php 就是你要的结果

    相关文章

      网友评论

          本文标题:php加密代码解密

          本文链接:https://www.haomeiwen.com/subject/nehiectx.html