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+.sudu.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”。
转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
解密很简单,方法就是把eval修改为exit,一运行就能看见原始代码。由于你的程序没有贴完,只能解了第一步,代码如下:
<?php /* This file is protected by copyright law and provided under license. Reverse engineering of this file is strictly prohibited. */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64')
$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}
$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15}
$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14}.$OOO000000{3}
$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16}
$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8}
$OOO0O0O00=__FILE__
$OO00O0000=48
if(!0)$O000O0O00=fopen($OOO0O0O00,'rb')
fgets($O000O0O00,1024)// 跳过本文件前面1024字节
fgets($O000O0O00,4096)// 到这里就解不走了,这步是读? >后面的4096字节来,你没有粘贴完毕
$OO00O00O0=$OOO0000O0($OOO00000O(fread($O000O0O00,380),'jianghuIUHGNAJBbCcDdEeFfKkLlMmOoPpQqRrSsTtVvWwXxYyZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))
eval($OO00O00O0)
return
?>
你继续解密的方法,把上面fread($O000O0O00,380)替换为原文件后面1024+4096后的380个字节内容(注意要引号),然后修改eval为exit,一运行就能看见原始代码。
解密需要耐心,你可能需要继续重复做几次,我估计是多次加密的。解密没有技术含量,基本上是体力活,我工作也很忙,祝你好运。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)