当前位置:首页 » 密码管理 » 威盾php加密专家

威盾php加密专家

发布时间: 2023-06-13 15:15:50

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进制)方式打开、修改和保存。

㈡ 威盾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
/***********************************
*威盾PHP加密专家解密算法 By:SPY64
*
*2009-10-5
***********************************/

$filename="play-js.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);
}
//查找要截取字符串长度
$str_length="";
if(preg_match("/,\d*\),/",$content,$k))
{
$str_length=str_replace("),","",$k[0]);
$str_length=str_replace(",","",$str_length);
}
//截取文件加密后的密文
$Secret=substr($lines[2],$str_length);
//echo $Secret;

//直接还原密文输出
echo "<?php\n".base64_decode(strtr($Secret,$decode_key,'+/'))."?>";

?>

㈣ 对php文件加密,有哪些免费软件,怎么加密

php 源文件加密工具PHP Screw .

目前最新版本是1.3
网址
http://sourceforge.net/projects/php-screw/
我的安装环境
系统:Slackware 10
软件:Apache 1.3.31
PHP 4.3.7
以上环境全部是slackware 10默认安装后自带的。具体的Apache+php+mysql安装方法参照如下
支持php的Apache环境安装
获得软件
下载php_screw-1.3 (http://prdownloads.sourceforge.net/php-screw/php_screw-1.3.tgz?download)

安装
1.将获得的php_screw-1.3.tgz文件放到/usr/local目录下,然后用tar解压缩
tar zxvf php_screw-1.3.tgz

2.进入/usr/local/php_screw-1.3目录开始安装
cd /usr/local/php_screw-1.3
phpize
./confiugre

3.设置自己用来加密的密码
vi my_screw.h

-- Please change the encryption SEED key (pm9screw_mycryptkey) into the
values according to what you like.
The encryption will be harder to break, if you add more values to the
encryption SEED array. However, the size of the SEED is unrelated to
the time of the decrypt processing.

* If you can read and understand the source code, to modify an original
encryption logic will be possible. But in general, this should not
be necessary.

OPTIONAL: Encrypted scripts get a stamp added to the beginning of the
file. If you like, you may change this stamp defined by
PM9SCREW and PM9SCREW_LEN in php_screw.h. PM9SCREW_LEN must
be less than or equal to the size of PM9SCREW.

4.编译
make

5.拷贝moles目录下的php_screw.so文件到/usr/lib/php/extension目录下
cp moles/php_screw.so /usr/lib/php/extension/

6.编辑php.ini文件
在php.ini文件里,加入如下语句
extension=php_screw.so

7.重新启动Apache
/etc/rc.d/rc.httpd restart

8.编译加密工具
cd tools
make

9.将tools目录下加密用的工具screw拷贝到适当目录
cp screw /usr/bin/

经过以上的10步,就已经把php_screw-1.3全部安装完成了。并且现在的php也已经支持解释加密过的php文件了
使用
1.现写一个要加密的php文件。
我写了如下的一个用来测试php速度的compute.php文件

<?
$a=0;
$t=time();
for($i=0;$i<5000000;$i++)
{$a=$a*$i;}
$t1=time();
echo "<p>";
echo "It used:";
echo $t1-$t;
echo "seconds";
?>
将上面的compute.php文件放到/var/www/htdocs目录下。通过浏览器访问,将显示出php在大量计算时的速度(只能粗略估计一下)
2.将我们写的php文件加密
cd /var/www/htdocs/
screw compute.php

我们加密后,现在目录下的compute.php文件就是我们已经加密的了。而源文件被改名为compute.php.screw存放了。
我们现在再测试一下compute.php,看看能否正常使用?速度如何?
我比较了一下,加密前后的速度大概一样,基本没有太多的损失。

㈤ PHP代码是否能够进行编译后再执行呀

php无需编译,可以边写边运行。调试比较方便。需要安装web服务器和php。必须通过访问自己创建的站点执行。

apache+php可以。不过你如果用的是windows而且已经安装了IIS的话直接安装php并做好相关设置就可以了。

㈥ 如何破解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”。

转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

㈦ 请问如何将威盾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

热点内容
安卓手机中的投影在哪里 发布:2025-02-05 08:01:57 浏览:594
php调用定义函数 发布:2025-02-05 08:00:30 浏览:451
ubuntujava环境变量 发布:2025-02-05 07:57:13 浏览:442
sql语句on 发布:2025-02-05 07:41:42 浏览:597
取消电脑密码怎么设置8 发布:2025-02-05 07:24:16 浏览:393
洗脑编程 发布:2025-02-05 07:23:52 浏览:948
osd加密 发布:2025-02-05 07:17:39 浏览:36
微信游戏源码下载 发布:2025-02-05 07:17:29 浏览:384
计算机内存储器是 发布:2025-02-05 07:13:35 浏览:144
classpathlinux 发布:2025-02-05 07:12:57 浏览:564