黑刀Dezender 4.3 2008年10月29日

| |
[2008/07/20 23:28 | 分类: 部落原创项目 | by 管管 ]

点击在新窗口中浏览此图片


号外!最新的黑刀Dezender 4.3版现已发布!增加自动更新升级功能,加强混淆函数(自定义函数)扩展解密功能!随时自动升级混淆函数(自定义函数)库,自动检查更新最新的黑刀Dezender版本!敬请期待!

今天看了一下天空下载点的用户评论,发现有一条评论,内容是这样的:
---------------------------------------------------------------------------------
高 发表于: 2008-09-01 17:42:09  0 0
  这是用于PHP反编译,破解的软件,请遵循有关版权保护法律,不要助纣为虐,我保留举报你们散播盗版、破解工具的权利。
---------------------------------------------------------------------------------
对于这条言论,我阐述一下自己的几点看法:
1.Zend,本身只是对PHP文件的内容进行转换,达到的效果为:将PHP程序直接转换为二进制代码,加快PHP程序运行速度。因此,直接产生的附加效果就是使原始的PHP程序代码变为不可读。这样,自然就有人用其作为加密方式来防止用户阅读或修改原始代码。

2.“高”声称我的《黑刀Dezender》“是用于PHP反编译,破解的软件”,这句话,只能说明此人对于技术上的无知。Dezender可以用来还原Zend加密过的PHP程序这点不假,但至于破解,就完全不是Dezender的事情了。什么是破解?破解是个动词,也是一种用户的个人行为。那是直接对PHP源程序进行的修改、授权算法逆向制作注册机等,这是Dezender能做到的吗?这是需要懂得PHP编程的人才能去做的事情,试问一下,如果将未加密过的PHP程序交给一个完全不懂PHP的人,他能够去破解、盗版这套PHP程序嘛?况且Dezender的能力有限,不可能百分百的将源码还原成Zend编译前的状态,用在好的方面,可以为丢失Zend编译前源码的程序员找回自己的作品,避免重新开发;也可以让更多的PHP程序员能通过阅读、学习他人的代码,提高自身的技术水平。至于一部分人用来进行PHP程序的破解,那与Dezender又有多大的关系呢?菜刀除了切菜,还能用来杀人呢,你能让地球人都不用菜刀?可笑。

3.“高”声称“不要助纣为虐,我保留举报你们散播盗版、破解工具的权利”更是可笑之极,无知至极。除了上面的第二点我所阐述的内容外,我想说的是:什么叫助纣为虐?Dezender是盗版、破解工具?你自己把Zend当做加密工具来用,结果Zend能被还原了,就说还原工具是盗版、破解工具,就是助纣为虐了?你把Zend当做家里的防盗门装上,结果发现这个防盗门居然能用菜刀轻易的打开,不去思考到底用它来做防盗门合不合适,却去责怪菜刀是助纣为虐的工具,难道就不可笑?程序源代码的保护与解除保护,本身就是同时存在,相辅相成的事物。两种技术手段都必将同步的完善、改进、提高。程序保护的解除技术,也是对保护技术、加密技术的一种促进剂,闭关锁国的方式只会阻碍我们国家计算机水平的进步而已。没有了Zend,自然会出现更多更强的加密程序,这是自然而然的技术发展方向。有能耐你去找Zend公司,骂他们的Zend保护不了你的程序,赶紧给你个保护更强、Dezender无法解密的新版本,不过……你用的Zend是正版的吗?该不会是网上找来的破解版吧?哈哈,笑死人。如果你用了盗版的老版本Zend Guard来保护你开发的“正版”PHP程序,却苦于老版本的Zend能被Dezender反编译而忿忿不平,那简直就是滑天下之大稽了。最新版本的Zend Guard加密过的PHP程序,Dezender是解不出来的,您还是去买一套正版吧。另外,再遇上什么混淆函数这一类的问题,也是Dezender很难解决的,你咋就蠢到不去试试?无知!

4.最后一点,黑刀Dezender本身只是个集成工具而已,主程序实际上只是GUI界面的外壳程序,核心的解密功能部分是来自MMSCN.org论坛,我所做的外壳编程,仅是在原有的MMSCN版本Dezender的功能上,开发基于windows的用户界面,以便于使用者对原有类似“DOS”环境下的各种应用功能的Windows实现,补充这一点,目的也只是不希望埋没了MMSCN程序员所做的努力。

5.先说这么多,以后想到什么再继续补充。

[ CMD方式解密命令范例 ]

php.exe abc.php /tab /indent:1 /path:d:\decode /ext:* /noexpire

[ 命令说明 ]

php.exe 为CMD方式下解密之主程序
abc.php 为需解密的PHP文件,也可不加php后缀,则是解密abc文件夹下的所有文件
以/开头的内容均为各种解密所需参数,可根据自身需求进行添加或去除。

[使用技巧(重点)]

从黑刀Dezender4.3版之后,将着力对混淆函数以及自定义函数的解密进行应对。
大家下载压缩包并解压后,会发现有一个“config.ini”的文件,这就是混淆函数库啦!
打开后,可自行编辑其中的内容,当然,也可以通过黑刀Dezender的升级程序直接下载官方最新的混淆函数库文件。这个混淆函数库就相当于是一个字典文件了,在保证格式不变的情况下,大家可以在【黑刀部落】下载《黑刀超级字典生成器》生成字典来挂入主程序进行解密,正确步骤为:先备份、改名自己的config.ini文件,生成的字典文件在第一行加入“[OBFUSCATE_NAME]”,将字典文件改名为config.ini,开始解密。
同时,黑刀部落网站的“项目中心”栏目也开设了用户提交自己已知程序被混淆的函数列表,这样的话,就能让Dezender变得越来越强了。再也不怕混淆函数了。呵呵。

界面截图:

点击在新窗口中浏览此图片



解密部分设置了两个关键的区域,一个是批量解密区和单文件或少量文件的解密区。注意看截图。

区别是:

1、批量解密区的功能主要是对整个目录下的文件进行解密,解密同时就覆盖掉原始文件了,所以在解密前,一定要注意备份原始文件夹,避免解密后如果出现php程序不能正常执行的情况,还能用原始文件来恢复网站的正常运行。

2、而单文件及少量文件解密区,是将解密好了的文件保存在用户自定义的其他位置,默认是D盘的decode目录下。

黑刀Dezender 4.3 版 绿色版下载地址:2008年10月29日正式发布

畅易网盘下载(4.3版)

天空软件站下载(4.3版)

Zend相关知识扫盲:

什么是混淆函数?混淆函数,是从Zend Guard 4.0之后新增的一项功能,能把PHP文件中的所有函数名都进行混淆,混淆后变成以“_OBFUSCATE_”开头的一串“乱码”,这种加密方式感觉有点类似Md5,因为函数名已经不是原来的样子了,所以解密出来的PHP文件是不能正常执行的。黑刀Dezender在4.3版之后,新增加了挂入混淆函数库参与解密的功能,而混淆函数库,就像是一个包含了已知函数名的字典,利用这个字典,来与被混淆了的函数名(就是所谓的“乱码”)进行比对,如果比对结果相同,则解密出来的文件,基本上就可以恢复到加密前的样子了。如果混淆函数库中没有包含该PHP文件中使用的函数名,那么解密结果依然还是会存在“乱码”的。掌握了这个原理,我们就可以去想办法解决问题了。

方式有以下几种:
第一,使用黑刀超级字典生成器产生一个字典,字典的内容可以自己把握,修改字典文件名为“config.ini”,然后打开字典文件,在第一行插入“[OBFUSCATE_NAME]”标记(注意,方括号也是需要的,也就是引号内的内容都要加进去),将字典文件拷贝入黑刀Dezender主程序所在目录,同时注意备份原有的config.ini文件。这种办法费时费力,也要看运气,不过却是最实际的解决办法。

第二,常看别人源代码的朋友,可以把自己已经掌握了的混淆函数的真实函数名提交到我的网站上来。操作步骤:进入网站首页,进入项目中心的“DeZender混淆函数库更新表”,提交。我会定期查看大家提交上来的数据,加入到官方的混淆函数库中,不断的增强和完善官方混淆函数库,大家可以利用黑刀Dezender的自动升级功能对其进行升级!

引用
反馈问题情况汇总:

1、有很多朋友说下载了最新版还是解不出来,是因为他们把程序放在了桌面上或者Program Files目录下。

大家一定要记得,不要把黑刀Dezender的主程序以及需要解密的PHP文件放置在目录名包含空格的目录内,比如桌面、Program Files目录等,除了目录名不能包含空格以外,也不能包含英文的句号,以免程序将目录当做文件来处理,造成无法解密的情况。还有一种可能性,是因为被加密了的PHP文件采用了最新版的Zend来进行的加密,所以黑刀Dezender解不出来。

2、解密出来的文件有“乱码”:这种情况通常是因为PHP程序在加密时采用了混淆函数,而所使用的函数又是Dezender无法识别的,所以在函数的部分变成了“乱码”。最新4.3版将着力解决这个问题!

3、网友“李向阳”问:“我解开的文件能读,但是有很多很基本的语法问题。不知道是怎么回事!”
对于这个典型问题,我只能回答说,解密出来的文件不可能百分百还原为原始未加密的文件的。在遇到需要手工去修复代码的情况时,就要求Dezender的使用者具备相应的PHP程序编写知识。如果不具备?自己找书找资料看。呵呵。

4、如果出现如下图的错误提示:

点击在新窗口中浏览此图片


“无法判断程序输入点于动态链接库php5ts.dll上”说明dezender和原有的PHP环境冲突,可考虑卸载原有PHP环境,或安装虚拟机,在虚拟机上使用dezender。实在不行,换台电脑试试看吧。呵呵。虚拟机的下载地址:http://tmd.me/2008/read.php?5

5、在遇到同一套网站程序,大多数文件都能解,却有一两个解不出来这种情况,或者说都解不出来,还有可能是其他PHP相关的问题引起的,可以试试这种方法:
进入黑刀Dezender安装目录,会看到里面有一个PHP.exe,打开CMD,参考目录内的帮助文档,使用命令方式来尝试解密,比如输入以下命令:php.exe d:\123.php 回车后,观察出现的提示,如果出现错误,可以参考这篇PHP错误提示解析,来判断问题原因。

6、有的朋友说为什么同一套程序,大多数文件都能解密,就是其中几个说什么都解不出来。这个问题也困扰我很久,甚至动用过16进制编辑器来修改文件头都没用。结果今天百度的时候,很偶然的发现一个原因:极有可能是因为这些解不出的文件,是用的试用版zend加密或者设置了超期期限,从而导致PHP文件本身无法执行,自然也就不能解密!试试看将我们电脑的系统时间倒退一年或者两年,再用Dezender解密!嘿嘿,真是完全没想到的情况。。。大家无妨试试!又或者是黑刀DeZender自带的动态链接库ZendExtensionManager.dll 版本不符合,PHP本身无法执行,可以尝试更换一下其他版本的该文件,再进行解密。

以下部分为网友“云中雨”提供的反馈,感觉比较有用,放上来以供大家参考。
4.3在解密程序的时候有两大问题没有解决
1、会出现很多空的();
2、类的方法的参数单独列出来了,并不是所有都是这样,具体哪些这样还在研究中,表现如下:
$aaa->bb($ccc,$ddd);
会解成
($ccc,$ddd);
$aaa->bb();

评论(114) | 引用(0) | 阅读(69862)


爱的方法 Says: Email
2017/12/07 20:59
显示解密成功但是找不到解密的文件,我也设置保存路径了,但是找不到,不知道怎么回事。
lichun_yin Says: Email
2011/05/21 01:49
我的文件有解开了,但是函数里面的全局变量都不能用了。没有解之前变量都可以用,解开之后,变量就不能用了,要加global才能使用,不能把所有的都加global这个吧,希望能帮我想更好的解决办法。谢谢。
zend加密解密后就是这样的,没什么好办法,呵呵,只能自己手工修复一下代码,尽可能的修复为正常的状态。很多修复技巧需要多总结,我网站里还有一篇文章,专门说的解密后修复文件的问题,可以参考一下。
管管 回复于 2011/05/21 11:28
ylic Says: Email
2011/05/21 01:47
文件有解开,谢谢,就是有个问题,函数里面的全局变量都不能用了。不知道这个问题要怎样解决。
zend加密解密后就是这样的,没什么好办法,呵呵,只能自己手工修复一下代码,尽可能的修复为正常的状态。
管管 回复于 2011/05/21 11:27
老孙 Says: Email
2011/04/04 17:06
管理好,下面这段代码是5.0三核版解出来的 这个混淆的明文是username ,我把明文加在config里然后从新反编译,结果还是反编译不出来,管老大能给个解决的办法吗?我用zend测试了一下$_obfuscate_YbfVGewvqPY的明文确实是username,username可以加密成$_obfuscate_YbfVGewvqPY,$_obfuscate_YbfVGewvqPY则无法翻遍成username
$_obfuscate_YbfVGewvqPY = h( trim( $_POST['username'] ) );
被混淆后的变量和函数,在明文加入混淆函数库以后,只能针对函数部分还原,但变量无法还原。
管管 回复于 2011/04/05 19:42
firerat Says: Email
2011/03/30 23:39
解密后,混淆函数没反应,请管管看下,谢谢
class _obfuscate_RGJfTXlzcWxDbGFzcw
{

        public $masterconf = array( );
        public $slaveconf = array( );
        public $wdbconn = null;
        public $rdbconn = null;
        public $dbcharset = "gbk";
        public $isinitconn = false;
        public $isLog = true;
        public $masterslave = 0;
        public $sql_mode = 0;

        public function _obfuscate_ZGJfbXlzcWxjbGFzcw( $_obfuscate_i2wtdHdhCD6_Q, $_obfuscate_0usoo_LWRwc9 = array( ) )
        {
。。。
呵呵,没反应就是解不出来咯。说明混淆函数库里没有包含这些被混淆函数的明文。
管管 回复于 2011/03/31 02:57
ahwa Says:
2010/06/26 13:00
管管我来了
http://down.qiannao.com/space/file/qiannao/share/2010/6/26/functions.rar/.page
这是ionCube Loader加密的文件
可以帮忙一下吗
你加群请大家帮忙吧。呵呵。
管管 回复于 2010/06/27 13:16
冷枫 Says:
2010/06/07 22:40
你好。管管 试过多个版本,还是你这个好用一些。解密成功。。文件也能看到了。
<?php
/*********************/
/*                   */
/*  Version :   */
/*  Author  :      */
/*  Comment :  */
/*                   */
/*********************/

function remove_remarks( $sql )
{
        $i = 0;
        while ( $i < strlen( $sql ) )
        {
                if ( $sql[$i] == "#" && ( $i == 0 || $sql[$i - 1] == "\n" ) )
                {
                        $j = 1;
                        while ( $sql[$i + $j] != "\n" )
                        {
                                $j++;
                                if ( strlen( $sql ) < $j + $i )
                                {
                                        break;
                                }
                        }
                        $sql = substr( $sql, 0, $i ).substr( $sql, $i + $j );
                }
                $i++;

但是在服务器上运行。还是乱码!
Zend 20031207011163652733091xù Ÿ2 ¬½OŒfÇq'øéû>®¸að x€¨iŽ½öJ”¾÷ò?—MB”å8Ò’(M£Ø]›î®jVUKêá,IðâCOc† ö`€‡ ò0Ø>X”sâeè^ˆ† ,°¾ìÁ':›‘™‘‘ù^¾Ïòèîbå/#3ãEFFDFfzÿ÷GÇWÎŽndùŽ˜ÆÝ0ˆ‘j–þõ¿üáø£ßÿâ·ÿ×'Ó ¾ ë(üñ¿ø¿ïuù?À*/柛.W[eõê?Í–j¯‘¾4_*åêÿkv«µ[ýÇÙRãÙhæJï¤S«1_¬Ô8?

你在说明里说不在解答有关问题。。我现在真的很急用!很是头疼,能不能帮一下心!
呵呵呵。。。。不知道。。。。
管管 回复于 2010/06/07 22:58
22222 Says:
2010/06/05 23:49
我点解密 他提示解密完成 但什么都没有啊
如果仔细按照本页说明操作还是不行,那就换5.0的试试,站内有下载。
管管 回复于 2010/06/06 13:19
jason Says:
2010/05/17 12:58
Windows7可用,去掉UAC或者用管理员权限运行主程序或安装程序。
呼呼,谢谢朋友支招!我还把这两样东西给忘了,还以为是内核不支持。
管管 回复于 2010/05/17 19:17
云中雨 Says:
2010/05/04 14:32
4.3在解密程序的时候有两大问题没有解决
1、会出现很多空的();
2、类的方法的参数单独列出来了,并不是所有都是这样,具体哪些这样还在研究中,表现如下:
$aaa->bb($ccc,$ddd);
会解成
($ccc,$ddd);
$aaa->bb();
嘿嘿。感谢提供。我给放上去。
管管 回复于 2010/05/04 16:53
分页: 1/12 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页
发表评论
昵称
电邮
打开HTML 打开UBB 打开表情 隐藏 记住我