今天在为一个WP博客(www.tgt.cc)更换主题时,页脚有很多不相干多余信息,却发现页脚的footer.php文件被加密了,大概是此主题作者不想有些人随便修改自己的版权信息。可是我想加入自己的一些东西怎么办?
通过查阅相关资料后得知,PHP目前在网络中被用的越来越多,加密解密的话题也一直没有停息过。下面简单介绍一下base64_decode+gzinflate压缩编码和解码代码方法,就是通常我们在程序中见的eval(gzinflate(base64_decode('加密代码'))); 形式的加密方法。
加密代码:
<?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 znz amznz.com');
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 "解密成功!";
?>
实际应用:
首先,打开你的文本编辑器,比如记事本,新建一个文本文件,按照那个解密代码,把我的那个footer.php文件里的密码输入进去,然后就类似下面:
<?php
$Code = 'bZA7b8MwDIR3/wpCQ9MudtCpaPxYOmTo1gIZC9mibSGyKEiM1QD98fUjWVovBHQ83n1QVSa50iM0RoZQiJaI0Yst8Yu/eV7UHrJynclDQ+56gOf9/gXyyvUOakOdti097qwccPd0gOp+k+QSeo9tIXpm95plMcaUyfGF04YGUb5fmmueyRK2jGQj4hmtCqnFCeSI0vPi5h4HBIVBdxbq6+a1IY8GdcR69d0KV3VJ+YE3HNGQQwUt+X8pSlvqKSyomShPWMNxemrbwQf6UTcY7jkUrSGp5iBPwyZPdAt1aD3imgis2WAhTuSV8xgCfC6OqeqPMtck+QQ0lrc5/3wCvw=='; // 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.amznz.com/test.php 。提示“解密成功”后,在服务器就可看到多了一个decoded.php文件了,打开一看,呵呵已经解密啦!
解密成功后的代码如:
<div class="footer">
<div class="footer_txt">
<br /><br />
© 2009 <?php bloginfo('name'); ?>
<br />
theme design by <a href="http://www.amznz.com">ZNZ</a> | Downloaded from <a href="http://www.amznz.com/" title="blog">znz's blog</a>
</div></div>
然后把这个decoded.php修改为footer.php替换原文件,就可以了。
php base64_decode 解码方法
2009-07-15 / 分类:网络心得 / 5 条评论 / 13,151 次阅读
- 世界十大禁片 (270,571)
- 不用登录QQ查看好友资料 (155,091)
- 手把手教你成为一个牛逼的Blogger (126,568)
- 在哪个网站能找一夜情? (125,757)
- 江苏省英语三级四六级查询 (122,510)
- 最新搜索引擎收录地址大全 (119,875)
- 局域网中加速启动速度 (119,416)
- 致所有来访者(12年1月03日更新) (112,420)


2010年11月12日 3:24 上午
出现那个错误,应该是目录没有写入权限,不能写入文件
[回复]
2010年02月10日 11:47 上午
谢谢啊!!
一直在找那加密到底怎么解
可都不知道是什么加密
我查都不好查
在群里 有朋友叫我进这看!!
OK啦!!先拿过去用了啊!!
呵呵!!
[回复]
2010年02月5日 12:43 下午
我也出现了类似"Warning: gzinflate() [function.gzinflate]: data error in "的错误, 不知如何解决. 真诚求教
[回复]
2009年12月11日 10:18 上午
能否帮我解一下下面的代码,
eval(base64_decode('Pz48YnIgc3R5bGU9ImNsZWFyOmJvdGg7Ii8+CjwvZGl2Pgo8ZGl2IGlkPSJjb3B5cmlnaHQiPgo8P3BocCBpbmNsdWRlIHBvXzRndGRfakouJ3BhZ2UtZ2VuZXJhdG9yLmluYy5waHAnOz8+CjwhLS08P3BocCBlY2hvIGJNMElUQzVqMUFDVmlVVDdtOz8+LS0+ClN0YW5kYWxvbmUgU2l0ZW1hcCBHZW5lcmF0b3IgKFBIUCkgdjw/cGhwIGVjaG8gJEV2Z3J2Q3FvMnhveGRNSURFWyd2ZXJzaW9uJ10/PiwgPD9waHAgZWNobyAkRXZncnZDcW8yeG94ZE1JREVbJ2xhc3R1cGRhdGUnXT8+CnwKPGEgaHJlZj0ibGljZW5zZS5odG1sIj5SZWFkIExpY2Vuc2U8L2E+Cjw/cGhwIGVjaG8gJF9TRVNTSU9OWydpc19hZG1pbiddPycgfCA8YSBocmVmPSJpbmRleC4nLiRKU0RxSUYwelMuJz9vcD1sb2dvdXQiPkxvZ291dDwvYT4nOicnOz8+Cjxicj4KQ29weXJpZ2h0IChjKTIwMDUtMjAwOSA8YSBocmVmPSJodHRwOi8vd3d3LnhtbC1zaXRlbWFwcy5jb20iPlhNTCBTaXRlbWFwczwvYT4KPGJyIHN0eWxlPSJjbGVhcjpib3RoOyIvPgo8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+'));
我这里出现错误
Warning: gzinflate() [function.gzinflate]: data error in D:DevelopmentProjectsSitemap2.9test.php on line 5
希望得到 你的email回复, 谢谢~ gomienie@163.com
[回复]
2009年07月15日 4:21 下午
学习了 你的博客很不错 我回常来的 希望和贵博客换个链接!
[回复]