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备忘 (3)
    之前有一台服务器使用的是LAMP架构,网站多了,访问量大的时候会出现无法响应的情况,都说nginx的性能更好一些,所以第二台服务器打算使用nginx来配置网站,在这里做个备忘,同 […]
  • WordPress分页插件pagebar (2)
    文章多了,wordpress自带的导航功能“前一页”、“后一页”就远远不能满足需求了。使用一款分页插件再适合不够了,可以在页面下部显示类似“前一页,1.2.3…后一页”的形式就方 […]
  • WordPress升级到2.7版本 (2)
    今天Wordpress2.7终于放出来了,前面已经有不少博客提前预告了种种令人振奋的新功能,比如原生支持自动升级、自动安装插件、评论回复、TAG管理等等。于是我也就迫不及待的升级 […]
  • WordPress用户权限详解 (6)
    自己也笔记一下,也方便其他wordpress的用户。 […]
  • Simple tags更新,完全兼容wordpress2.7 (4)
    昨天我升级wordpress到2.7版本的时候,说过升级后wp就会直接提示你以前的插件simple tags已经不能使用,并且提示下载simple […]

One Comment on “PHP base64_decode+gzinflate压缩编码和解码代码”

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.