nonozone.net

冷眼旁观互联网


PHP base64_decode+gzinflate压缩编码和解码代码

刚换了一个主题,却发现页脚footer.php被加密了,里面只有下面这样一段代码:

<? eval(gzinflate(base64_decode('
bZC9bsMwDITnFOg7XD21g+PdVWSgS7t1CZCxkCLa
EixLqqTECNCHrxX3ZwkXHu7IDyA7zh7qGpIG49B7
nymirvn93WbDGmXOq+qCDhgofySjSIr4+PSMrkR/
M0UvEkbtqhVTFRtggUNRMoMjBXlpwQR0pH5X6ZxD
2zTzPG8nMdLnyRzH7dFPFX931jjCgWQymfByMlZR
ZI3gEE7dRswktU/ZuGEgGtMKWgh4W12U9dcS4Qvi
LIwV0hL6SASRW+x9uIXNPswha5roB4mDjypESgn7
q124rAnLtVjq9yH/XXp1uQqdJ8tZ9w0=
'))); ?>

这让我咋整,我想添加一段统计代码都不知道加到哪里好,其实我也明白作者的意思,主要是不想有些人随便修改自己的版权和作者信息而已。可是我想加入自己的一些东西就比较麻烦了。怎么办?Google之。

在网上看到这样一篇文章PHP base64_decode+gzinflate压缩编码和解码代码,详细介绍了PHP base64_decode+gzinflate加密和解密的方法。

注意:解密时请不要用汉语及带空格的名字做文件名。

加密代码:

<?php
function encode_file_contents($filename) {
$type=strtolower(substr(strrchr($filename,'.'),1));
if('php'==$type && is_file($filename) && is_writable($filename)){// 如果是PHP文件 并且可写 则进行压缩编码
$contents = file_get_contents($filename);// 判断文件是否已经被编码处理
$pos = strpos($contents,'powered by arzn QQ:1314778');
if(false === $pos || $pos>100){ // 去除PHP文件注释和空白,减少文件大小
$contents = php_strip_whitespace($filename);
// 去除PHP头部和尾部标识
$headerPos = strpos($contents,'<?php');
$footerPos = strrpos($contents,'?>');
$contents = substr($contents,$headerPos+5,$footerPos-$headerPos);
$encode = base64_encode(gzdeflate($contents));// 开始编码
$encode = '<?php'."\n eval(gzinflate(base64_decode("."'".$encode."'".")));\n\n?>";
return file_put_contents($filename,$encode);
}
}
return false;
}
//调用函数
$filename='code.php';
encode_file_contents($filename);
echo "OK,加密完成!"
?>

解密代码:

<?php 
$Code = '这里填写要解密的编码'; // base64编码 
$File = 'decoded.php';//解码后保存的文件 
$Temp = base64_decode($Code); 
$temp = gzinflate($Temp); 
$FP = fopen($File,"w"); 
fwrite($FP,$temp); 
fclose($FP); 
echo "解密成功!"; 
?>

然后下面请注意,尤其是不懂PHP的筒子们!下面讲讲我这样一个没有PHP知识的人,解密那段代码的详细过程!

首先,打开你的文本编辑器,比如记事本,我用的是Notepad++,新建一个文本文件,按照那个解密代码,把我的那个footer.php文件里的密码输入进去,然后就类似下面:

<?php
$Code = 'bZC9bsMwDITnFOg7XD21g+PdVWSgS7t1CZCxkCLa
EixLqqTECNCHrxX3ZwkXHu7IDyA7zh7qGpIG49B7
nymirvn93WbDGmXOq+qCDhgofySjSIr4+PSMrkR/
M0UvEkbtqhVTFRtggUNRMoMjBXlpwQR0pH5X6ZxD
2zTzPG8nMdLnyRzH7dFPFX931jjCgWQymfByMlZR
ZI3gEE7dRswktU/ZuGEgGtMKWgh4W12U9dcS4Qvi
LIwV0hL6SASRW+x9uIXNPswha5roB4mDjypESgn7
q124rAnLtVjq9yH/XXp1uQqdJ8tZ9w0=
'; // base64编码
$File = 'decoded.php';//解码后保存的文件
$Temp = base64_decode($Code);
$temp = gzinflate($Temp);
$FP = fopen($File,"w");
fwrite($FP,$temp);
fclose($FP);
echo "解密成功!";
?>

那段红色的部分,就是我footer.php文件里面本身的加密的代码。然后把这个文件保存,随便起个名字,但是一定要是PHP格式,我的是test.php。注意:上面那个decoded.php就是解密完成后的文件名,这个你也可以修改。

然后,把这个test.php文件上传到你空间的根目录,其实其他目录也可以,但是需要能够web访问。我就直接放在博客的根目录了。

然后通过web访问,我的是http://www.nonozone.net/test.php。本来应该提示“解密成功”的,但是我没有看到,但是在服务器已经看到多了一个decoded.php文件了,打开一看,呵呵已经解密啦!!!解密后的文件是这样的!

        </div>
        <?php get_sidebar(); ?>
    </div>
    <div id="footer">
      <p> designed by: <a href="http://www.makequick.com">Online Website Builder</a> and: <a href="http://www.webhostinggeeks.com">Web Hosting </a>Geeks | available free at: Top<a href="http://www.topwpthemes.com"> WordPress Themes</a></p>
    </div>
</div>
</body>
</html>

怎么样,这样看就比较正常了。然后把这个decoded.php修改为footer.php替代原本的文件,就OK了!

好啦,就这样了。写这个文章真累!

Related Posts

  • Debian安装Nginx+php-fpm+mysql+phpmyadmin备忘 (0)
    之前有一台服务器使用的是LAMP架构,网站多了,访问量大的时候会出现无法响应的情况,都说nginx的性能更好一些,所以第二台服务器打算使用nginx来配置网站,在这里做个备忘,同 […]
  • SSH安装Wordpress指南 (0)
    本篇是紧接上篇基于Debian的VPS搭建LAMP指南之后,直接用SSH在VPS上安装wordpress过程。 下面还是直接在root账户下操作,不过建议各位可以新建一个普 […]
  • 我期望的twitter comments for wordpress评论插件 (7)
    今天一直想找一款关于wordpress的twitter评论插件,折腾了一个晚上,都没有找到。不知道有没有朋友正在使用此类插件,还希望多多指教。 目前的很多twiter for […]
  • WordPress自动摘要插件wp-utf8-excerpt (2)
    在使用wordpress发布文章的时候,如果有需要在首页只显示摘要,可以在撰写文章的时候在需要的地方插入一个<!–more–>标签就可以了,这种方法一时比较麻烦, […]
  • WordPress用户权限详解 (3)
    自己也笔记一下,也方便其他wordpress的用户。 […]


One response to “PHP base64_decode+gzinflate压缩编码和解码代码”

  1. 感谢分享,解决了我大问题,呵呵。

Leave a Reply

Your email address will not be published. Required fields are marked *

Captcha Code