php威盾加密
一、无需任何PHP扩展的加密
此类加密的代表有 威盾PHP加密专家、PHP在线加密平台、PHP神盾 等。
此类加密都是以eval函数为核心,辅以各式各样的字符串混淆和各种小技巧,来达到加密目的(更准确的说,应该算是混淆)。下面以一个简单的hello world为例来说明此类加密的大体过程。
<?php
echo "hello world";
首先 ,我们把这段代码变为通过eval执行的
<?php
eval('echo "hello world";');
然后 ,我们再进行一些转换,比如说base64编码
<?php
eval(base64_decode('ZWNobyAiaGVsbG8gd29ybGQiOw=='));
就这样子,我们的第一个加密过的php代码新鲜出炉了。。。
上面这个例子非常非常简单,基本上任何有一点php语言基础甚至别的语言基础的人都能轻松的看懂并解密。因此,我们需要一些方法让这个加密至少看上去不是那么简单。
二、同时采用多种编码函数
除了刚才提到的base64,php还有许多内置的编码函数,例如urlencode、gzcompress等。把这些函数混合使用可以提高解密的复杂度(不是难度),此外还可以使用strtr来制定自己的编码规则。 使用变量来代替函数名 使用特定字符来命名变量
这儿所说的特定字符是一些极其相似的字符,如I和1,0和O。试想一下满屏都是O和0组成的变量,并且每一个的名字长度都在10个字符以上。。。 判断文件自身是否被修改
这个功能看似容易,对文件做一下摘要再进行下对比即可知道是否被修改了,但是如何才能在文件内把摘要嵌入进去呢?我没有找到完美的方案,但一个变通的方案还是很容易的。。。
<?php
$code = substr(file_get_contents(__FILE__), 0, -32);
$hash = substr(file_get_contents(__FILE__), -32);
if (md5($code) !== $hash) {
exit('file edited');
}
当然,你可以把这个校验字符串放在别的位置来提高破解的难度。有了这个,别人想破解你的程序可就得多费一点功夫了。。。
既然知道了原理,那解密自然也就非常简单了,总体来说就三步:
把eval替换为输出,比如echo 根据编码规则把字符串还原 如果文件未解密完全,从第一步开始继续
当然,实际上的解密过程并没有这么简单,比如说如果加密的时候使用了gzcompress,那得到的数据将会包含一些二进制数据,而采用一般的文本编辑器打开时这些数据都会显示为乱码,并且在保存时丢失部分数据。解决方法很简单也很麻烦,那就是使用二进制(16进制)方式打开、修改和保存。
㈡ 请问如何将威盾PHPCodeLock加密的php程序解密
偶发现PHPCodeLock这个工具,感觉不错,尤其不需要像Zend那样还需要加载特殊插件才能进行正常执行,于是研究了一番它的加密方式,当然同时也对其解密进行了尝试,不敢独享,与众PHP爱好者分享一下。 下载威盾PHP加密专家,并运行,如果按如下图所示的选项进行加密: 在Input目录中,我放入一个简单的php程序,其内容为: -------------------------------------------------------------------------- <?php phpinfo(); echo "test"; ?> -------------------------------------------------------------------------- 那么,点击加密后,将在Output目录中生成同名的一个加密后的文件,其内容为: --------------------------------------------------------------------------- <?php $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=40;$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('ZXZhbCgkT08wME8wME8wKTs=')));return;?> == --------------------------------------------------------------------------- 那么简单的两行代码,加密后居然变得如此恐怖,其实仔细研究后,不难发现它只是多次使用了以下一些php的特性进行多次编译生成的这种复杂字符串: 1.php中变量的变量特性,比如$a="abc",那么$$a将代表$abc,并且$a()将调用函数abc(),这种非常独特的使用方法是该加密方法里重要的一个基础,其他语言恐怕就不要想这样弄了; 2.base64的编码和解码,多次使用,使一个字符串看上去无法理解,不过还原也不难; 3.字符串编码后直接使用eval函数进行执行,即可和原始程序一模一样了。 由此可见,这样的加密文件是完全可逆,并且可以100%还原其源代码的,经过我的实践,已经完全反编译还原了以下一些经过加密的程序并且完全正常运行: 1.通达OA2009最新版的数个重要加密文件; 2.UChome 的音乐盒插件最新版; 3.Discuz7论坛程序的Wap插件等。 如还有不明白的,可参看参考资料中的网址!
参考资料: http://hi..com/phpcodelock/blog/item/687e638e8c0974f3503d920a.html
㈢ php文件加密是干什么的
加密自然是为了不让别人修改,或者通过授权的方式去贩卖等等。
php加密混淆的算法,比如以下几种:
PHP神盾
PHPJM
威盾
ByteRun online encoder
Php Guard
Phppro
易盾PHP源码加密
Zend Guard加密
通过别人写好的工具或者网站加密。
㈣ 威盾PHP加密求解密 威盾php解密
<?php
require_once $GLOBALS['OOO0000O0']('Y29uZmlnLnBocA==');
require_once $GLOBALS['OOO0000O0']('cHVibGljL3dmc2VuZC5waHA=');
function WFCode($string,$operation,$key){
$key=md5($GLOBALS['OOO0000O0']('V0ZQSFBXRU5GRUkyMDEyODg4OA=='));
$key_length=strlen($key);
$string=$operation==$GLOBALS['OOO0000O0']('RA==')?$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSWwx')]($string):$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFJ')](md5($string.$key),0,8).$string;
$string_length=strlen($string);
$rndkey=$box=array();
$result=$GLOBALS['OOO0000O0']('');
for($i=0;$i<=255;$i++){
$rndkey[$i]=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbGxJ')]($key[$i%$key_length]);
$box[$i]=$i;
}
for($j=$i=0;$i<256;$i++){
$j=($j+$box[$i]+$rndkey[$i])%256;
$tmp=$box[$i];
$box[$i]=$box[$j];
$box[$j]=$tmp;
}
for($a=$j=$i=0;$i<$string_length;$i++){
$a=($a+1)%256;
$j=($j+$box[$a])%256;
$tmp=$box[$a];
$box[$a]=$box[$j];
$box[$j]=$tmp;
$result.=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbDFs')]($GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbGxJ')]($string[$i])^($box[($box[$a]+$box[$j])%256]));
}
if($operation==$GLOBALS['OOO0000O0']('RA==')){
if($GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFJ')]($result,0,8)==$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFJ')](md5($GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFJ')]($result,8).$key),0,8)){
return $GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFJ')]($result,8);
}
else{
return$GLOBALS['OOO0000O0']('');
}
}
else{
return str_replace($GLOBALS['OOO0000O0']('PQ=='),$GLOBALS['OOO0000O0'](''),$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbDEx')]($result));
}
}
$errormsg = WFCode($GLOBALS['OOO0000O0']('Y5NA=='),$GLOBALS['OOO0000O0']('RA=='),$GLOBALS['OOO0000O0']('V0ZQSFA='));
$smtpm = WFCode($GLOBALS['OOO0000O0']('ZDhUVXp5Mw=='),$GLOBALS['OOO0000O0']('RA=='),$GLOBALS['OOO0000O0']('V0ZQSFA='));
if($usmtp!= WFCode($GLOBALS['OOO0000O0'](''),$GLOBALS['OOO0000O0']('RA=='),$GLOBALS['OOO0000O0']('V0ZQSFA=')).$wsmtp){echo $smtpm;exit;}
$out_trade_no = $GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJMWwx')]($GLOBALS['OOO0000O0']('WW1kSGlz'));
$dddate = $GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJMWwx')]($GLOBALS['OOO0000O0']('WS1tLWQgSDpp'));
$proct = $_POST[$GLOBALS['OOO0000O0']('cHJvZHVjdA==')];
$proctb = $_POST[$GLOBALS['OOO0000O0']('cHJvZHVjdGI=')];
$proctdx = $_POST[$GLOBALS['OOO0000O0']('cHJvZHVjdGR4')];
$proctc = $GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsSWxJ')]($GLOBALS['OOO0000O0']('PGJyPg=='),$proctdx);
$cpmun = $_POST[$GLOBALS['OOO0000O0']('Y3BtdW4=')];
$price = $_POST[$GLOBALS['OOO0000O0']('cHJpY2U=')];
$zfbjg = $price * $alipayzk;
$dgname = $_POST[$GLOBALS['OOO0000O0']('ZGYW1l')];
$province = $_POST[$GLOBALS['OOO0000O0']('cHJvdmluY2U=')];
$city = $_POST[$GLOBALS['OOO0000O0']('Y2l0eQ==')];
$area = $_POST[$GLOBALS['OOO0000O0']('YXJlYQ==')];
$address = $_POST[$GLOBALS['OOO0000O0']('YWRkcmVzcw==')];
$post = $_POST[$GLOBALS['OOO0000O0']('cG9zdA==')];
$mob = $_POST[$GLOBALS['OOO0000O0']('bW9i')];
$tel = $_POST[$GLOBALS['OOO0000O0']('dGVs')];
$qq = $_POST[$GLOBALS['OOO0000O0']('cXE=')];
$email = $_POST[$GLOBALS['OOO0000O0']('ZW1haWw=')];
$paytype = $_POST[$GLOBALS['OOO0000O0']('cGF5dHlwZQ==')];
$guest = $_POST[$GLOBALS['OOO0000O0']('Z3Vlc3Q=')];
$mail = new PHPMailer();
$mail->CharSet = $GLOBALS['OOO0000O0']('Z2IyMzEy');
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Port = 25;
$mail->Host = $Mailhost;
$mail->Username = $MailUsername;
$mail->Password = $MailPassword;
$mail->From = $MailFrom;
$mail->FromName = $FromName;
$mail->AddAddress($MailTo,$FromName);
$mail->AddAddress($MailTob,$FromName);
$mail->WordWrap = 50;
$mail->IsHTML(true);
?>
㈤ php文件怎么加密不影响运行
php加密方式有很多,比如用zend,phpjm,威盾,都可以的,加密后不会影响运行
㈥ 如何破解Zend及ionCube加密的php文件
如何破解Zend及ionCube加密的php文件
PHP加密的种类:
我们知道很多商业php程序为了保护源码或者设置限制会采取源码加密,
常见的一般有Zend、微盾(威盾)、ionCube。
其中微盾是不需要服务器组件支持的,所以也很好破,网上文章很多,大家搜搜就可以得知。
而Zend和ionCube是需要组件支持的,所以在破解上难度会非常大,或者说根本无法破解。
1、Zend Guard
简单介绍一下Zend Guard:
Zend Guard是PHP市场上第一个保护PHP知识产权的代码加密解决方案和电子许可管理方案。
Zend Guard通过原始代码加密以及限制分发没有授权的软件来实现软件的最大化收益。
Zend Guard加密后的PHP源程序需要环境中安装Zend Optimizer才可以运行,
同时Zend Optimizer在加密的过程中也可以实现优化代码的作用。
2、ionCube
IonCube是用来加密PHP的工具。ionCube Encoder可以把PHP源代码转换成ByteCode。
进行加密授权处理后的PHP代码就不在开源了,必须使用ionCube loader才可以执行加密过的PHP代码。
PHP本身没有带有ionCube loader模块, 必须到ionCube网站下载。
ionCube loader是免费的,但是Encoder的价格就比较昂贵。
如何知道文件的加密方式呢?
目前我也只看过zend加密方式,文件头部会有“Zend”。
zend加密截图
解密方式:
1、Ioncubed filesv6][v7]及Zend Guard files [v5]加密文件(非通过特殊处理的,特殊处理过的基本没戏)
本文并不赞成破解,下文提供工具方法仅限测试使用,韦鲲鹏不承担任何责任。
首先需要保证自己的windows机器上安装了Microsoft Visual C++ 2008及2010版本。
这里提供2008+2010的x86+x64版本整合下载地址 http://115.com/file/cl31yn62(转载,不保证无毒)
安装好后DeZender.DeIoncuber软件就派上用场了~ 这里提供的版本是29.11.2011
首先将下载到的DeZender.DeIoncuber压缩包解压到路径中没有空格的地址中。
如D:/DeZender_DeIoncuber/ 中,解压出来后会看到4个文件夹及7个文件。
其中有README说明文档,大家也可以看一看。
其中有两种解码方式,一种是_RM 另外一种是_NWS. 有些文件两种均可破解,有些只可一种。
首先讲下如何破解单个php加密文件。
将需要破解的文件拖到DECODE_NWS.bat或者DECODE_RM.bat上即可。
如生效,则会在php文件所在目录生成(同名+.nws/.rm+.su.txt)的文件。
如果要破解多个文件,则将所有要破解的文件复制到程序目录下的_decode目录(如D:/DeZender_DeIoncuber/_decode/),
然后运行DECODE_RM.bat或者DECODE_NWS.bat,随后就会在_decoded_nws/rm 的目录下生成破解后的文件。
DeZender_DeIoncuber下载地址:http://115.com/file/cl3ybw5e
2、在线解密:http://www.showmycode.com/,不支持批量解密,需要输入验证码。(本人尝试,这个解密不是很好)
3、下载dezend:http://www.old.necenzurat.com/dezend/
支持php4,php5,免费程序,不支持批量解密,但是可以用批处理,支持捐赠,
作者说:“the money will be used on alcohol, cigars and whores”。
转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
㈦ 微盾加密什么意思
“威盾PHP加密专家(PHPCodeLock)”是一款优秀的 PHP 脚本加密软件,服务器端无需安装任何第三方组件,加密后的文件可运行于任何普通 PHP 环境下。
本软件为免费软件,无需支付任何额外费用。
主要功能:
加密后的脚本能运行在普通 PHP 4 或者 PHP 5 环境。
你的计算机和服务器上都无需安装任何第三方组件。
加密后的代码在 Windows、Linux、Unix 上运行良好。
无需对 Web 服务器做任何修改。
即使在 PHP 安全模式下也可以运行良好。