本帖最后由 nouyas 于 2011-10-9 14:56 编辑
用威盾PHP加密的PHP文件解密方法
昨天,网上转了转,本想找个通达的能用的破解版本玩玩,在csdn上找了一个s什么na的封刀版,试了试,将我原来用于测试的数据进行了覆盖,没想到,该破解版本竟然提示我的授权到期了,再在论坛上转转,有人就骂那个s什么 na的不厚道
总之,口水一堆,也是,竟然放出来大家花了假银子(论坛币)下载了,总不至于引大家往坑里掉,还是实在点好,君子爱材,当取之有道
利用余下的时间,研究了一下s?na的文件,发现也是加密了的,我对php不太懂,也有点研究,早先见到的加密文件都是zend开头,后面跟着是密文,s?na的密文没见过,兴趣上来了
百度与GOOGLE轮番并用,发现s?na用的是威盾PHP加密,这加密软件加密有个特征,开头总能看到下面这样一些代码:
<?php // 由 Stinna qq:724732432 提供升级 This file is protected by copyright law & provided under license. Copyright(C)
tongda2000.com, All rights reserved.
$OOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%
72');$OO00O0000=2828;$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000
{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000
{5};$O0O0000O0='OOO0000O0';eval(($$O0O0000O0
('JE9PME9PMDAwMD0kT09PMDAwMDAwezE3fS4kT09PMDAwMDAwezEyfS4kT09PMDAwMDAwezE4fS4kT09PMDAwMDAwezV9LiRPT08wMDAwMDB7MTl9O2lmKCEwKSRPMDAw
大家总能发现这个文件中有"$OOO0O0O00=__FILE__;"字段,这是用威盾加密的特征,我们知道,用通达的源码可用DEZEND解密软件进行解密,但解密后还需自己再进行部分优化才能用,这也是为什么那些有名的用PHP写的软件如discuz还有phpcms,还有帝国等都走向了开源,但盈利模式改为提供更好服务的方式。
像这样,破解了别人的源码,又自己加密拿来搞点小钱的大家一般都比较鄙视,我也在这些人这列继续学习吧,继而我又找到了一个牛人的贴子,用来解密威盾加密过的PHP的贴子,特分享如下:
<?php
/***********************************
*威盾PHP加密专家解密算法 By:Neeao
*http://Neeao.com
*2009-09-10
***********************************/
$filename="class.php";//要解密的文件
$lines = file($filename);//0,1,2行
//第一次base64解密
$content=""; if(preg_match("/O0O0000O0\('.*'\)/",$lines[1],$y))
{
$content=str_replace("O0O0000O0('","",$y[0]);
$content=str_replace("')","",$content);
$content=base64_decode($content);
}
//第一次base64解密后的内容中查找密钥
$decode_key="";
if(preg_match("/\),'.*',/",$content,$k))
{
$decode_key=str_replace("),'","",$k[0]);
$decode_key=str_replace("',","",$decode_key);
}
//截取文件加密后的密文
$Secret=substr($lines[2],380);
//echo $Secret;
//直接还原密文输出
echo "<?php\n".base64_decode(strtr($Secret, $decode_key, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))."?>";
?>
上面这一大段代码,一般只会用不会写PHP的部分人来说简直如同天书,我简单的说一下,(对PHP非常精通的人手下留情,别扔砖头给我,您在这里飘过即可,我这个是写给菜鸟们看的)
正文的第一行是说解密的文件名
一般情况下,您可以将上面这段代码拷贝下来,做成一个PHP文件,放在您配置好的PHP环境目录下,将需要解密的文件也放在同一目录下,当然需解密的文件名与上面代码中的名字需一至如果您觉得这个很麻烦,请稳步,我还找到了另一牛人参考上面的代码写成的程序,比较好用
软件下载地址在我的网盘里,可下载
http://tmd.me/2008/attachment.php?fid=85
|