下载地址:http://landon.v70.us/?action=show&id=10
原来那个bug特多不知道是什么的问题,可能是dezend过程弄得吧。
ps原来文件中带有被挂马的语句,现在已经删除了。
QQ:316052408
EMAIL:tywtyw2002@gmail.com
本程序没有经过测试,如果BUG请跟我联系。
下面给出破解license的方法:
1、把以下代码保存成getlicense.php保存在根目录下。把运行后生成的code,保存成discuz_license.php即可。(感谢jjqweb提供)
ps。这个不对!生成的编码不是discuz_license
getlicense.php代码
- <?php
- //由于本人没有测试过不知道是否有bug
- $info = getinfo();
- $tmp = '';
- $tmp .= substr(md5($info['host']), 0, 8);
- $tmp .= substr(md5($info['os']."|".$info['ip']."|".$info['sapi']."|".$info['cpu']."|".$info['name'] ), 0, 8);
- $tmp .= substr(md5(preg_replace("/^(.+?)\\s*\\<\\?\\'.+\\'\\?\\>\$/s", "\\1", $license)), 0, 8);
- if($info['path']){
- $tmp .= substr(md5($this->env['path']), 0, 8);
- }else{
- $tmp .= dechex(ord("d")).dechex(ord("z")).dechex(ord("k"));
- }
- $tmps = encrypt($tmp, 'I love my father, mother, my Grace, and my self, I am working hard');
- echo $tmps;
- ?>
2、找到include文件夹中的validate.php改成以下代码即可。
PHP代码
- <?php
- class licensestuff
- {
- var $data = '';
- var $key = array ();
- var $env = array ();
- function readfile ()
- {
- if ($fp = fopen ((DISCUZ_ROOT.'./discuz_license.php'), 'r'))
- {
- $this->data = fread ($fp, 9999);
- fclose ($fp);
- }
- }
- function initialize ()
- {
- $this->readfile ();
- if ($this->data)
- {
- foreach (explode ('
- ', $this->data) as $string)
- {
- if (strpos ($string, ' = '))
- {
- eval (preg_replace (((((((((((((''.'/^(').'[').'a-z0-9').'\\-').']').'+)').'\\s').'\\=').'\\s').'(.+?)').'$').'/i'), '$this->key[\'\\1\'] = \'\\2\';', trim (str_replace ('\'', '\\\'', $string))));
- }
- else
- {
- if (preg_match ('/\\<\\?\'.+\'\\?\\>/', $string))
- {
- $this->key['Validation-code'] = $this->decrypt (preg_replace ('/\\<\\?\'(.+)\'\\?\\>/', '\\1', $string), 'I love my father, mother, my Grace, and my self, I am working hard', '##@Crossday Studio@##');
- }
- }
- }
- $this->getenvinfo ();
- return 1;
- }
- /* else
- {
- if (((strtoupper (substr (PHP_OS, 0, 3)) == 'WIN') AND in_array ($GLOBALS['_SERVER']['HTTP_HOST'], array ('localhost', '127.0.0.1'))))
- {
- return 2;
- }
- else
- {
- return 0;
- }
- }*/
- }
- function checkinfo ()
- {
- if ((substr ($this->key['Validation-code'], 16, 8) == substr (md5 (preg_replace (((((((((((((''.'/^(.+?)').'\\s').'*').'\\<').'\\?').'\\\'').'.+').'\\\'').'\\?').'\\>').'$').'/s'), '\\1', $this->data)), 0, 8)))
- {
- return TRUE;
- }
- else
- {
- return TRUE;
- }
- }
- function checkdate ()
- {
- if ((!$this->key['License-expires'] OR (time () < strtotime ($this->key['License-expires']))))
- {
- return TRUE;
- }
- else
- {
- return TRUE;
- }
- }
- function checkkey ()
- {
- if ((substr ($this->key['Validation-code'], 8, 8) == substr (md5 ((((((((($this->env['os'].'|').$this->env['ip']).'|').$this->env['sapi']).'|').$this->env['cpu']).'|').$this->env['name'])), 0, 8)))
- {
- return TRUE;
- }
- else
- {
- return TRUE;
- }
- }
- function checkhostpath ()
- {
- if ((((substr ($this->key['Validation-code'], 24, 6) == ((dechex (ord ('d')).dechex (ord ('z'))).dechex (ord ('k')))) OR (substr ($this->key['Validation-code'], 0, 8) == substr (md5 ($this->env['host']), 0, 8))) OR (substr ($this->key['Validation-code'], 24, 8) == substr (md5 ($this->env['path']), 0, 8))))
- {
- return TRUE;
- }
- else
- {
- return TRUE;
- }
- }
- function getenvinfo ()
- {
- global $_SERVER;
- global $_POST;
- global $_ENV;
- $env['time'] = gmdate ('d-M-Y', time ());
- $env['os'] = PHP_OS;
- $env['ip'] = getenv ('SERVER_ADDR');
- $env['sapi'] = php_sapi_name ();
- $env['host'] = (getenv ('HTTP_HOST') ? getenv ('HTTP_HOST') : $_SERVER['HTTP_HOST']);
- // $env['path'] = dirname (('validate.class.php.LkuQHr' ? dirname ('validate.class.php.LkuQHr') : getenv ('SCRIPT_FILENAME')));//********
- $env['cpu'] = (($_ENV['PROCESSOR_IDENTIFIER'].'/').$_ENV['PROCESSOR_REVISION']);
- $env['name'] = $_ENV['COMPUTERNAME'];
- $this->env = $env;
- }
- function decrypt ($txt, $key, $owner = '')
- {
- $txt = $this->keyED (base64_decode ($txt), (($owner == '##@Crossday Studio@##') ? $key : ''));
- $tmp = '';
- for ($i = 0; ($i < strlen ($txt)); $i++)
- {
- $md5 = $txt[$i];
- $i++;
- ($tmp .= ($txt[$i] ^ $md5));
- }
- return $tmp;
- }
- function keyed ($txt, $encrypt_key)
- {
- $encrypt_key = md5 ($encrypt_key);
- $ctr = 0;
- $tmp = '';
- for ($i = 0; ($i < strlen ($txt)); $i++)
- {
- if (($ctr == strlen ($encrypt_key)))
- {
- $ctr = 0;
- }
- ($tmp .= ($txt[$i] ^ $encrypt_key[$ctr]));
- $ctr++;
- }
- return $tmp;
- }
- function validate ()
- {
- $init = $this->initialize ();
- if ((($init == 2) OR ((((($init == 1) AND $this->checkinfo ()) AND $this->checkdate ()) AND $this->checkkey ()) AND $this->checkhostpath ())))
- {
- if (($init == 2))
- {
- define ('DISCUZ_LICENSE_KEY', md5 ((base64_decode ('ISgqISEpQCZfRGlzY3V6IV9pc19SdW5uaW5nX3VuZGVyX0xvY2FsaG9zdA').md5 (((('#19811027_'.'DZK_').'WROTE_Discuz!_').substr (time (), 0, (0 - 2)))))));
- }
- else
- {
- define ('DISCUZ_LICENSE_KEY', md5 ((base64_decode ('ISgqISEpQCZfRGlzY3V6IV9XSUxMX1dJTl9USEVfRlVUVVJFX0ZST01fTk9XX09O').md5 (((('#19811027_'.'DZK_').'WROTE_Discuz!_').substr (time (), 0, (0 - 2)))))));
- }
- }
- else
- {
- /* echo '<html>
- <head>
- <title>Invalid License File</title>
- </head>
- <body bgcolor="#FFFFFF">
- <table cellpadding="0" cellspacing="0" border="0" width="600" align="center" height="85%">
- <tr align="center" valign="middle">
- <td>
- <table cellpadding="10" cellspacing="0" border="0" width="80%" align="center" style="font-family: Verdana, Tahoma; color: #666666; font-size: 12px">
- <tr>
- <td valign="m';
- echo 'iddle" bgcolor="#EBEBEB">
- <br><b style="font-size: 20px">Your License was Invalid</b>
- <br><br>License expiring, shifting to a new server, changing server IP, hardware, OS, PHP SAPI module, or, changing both host name and absolute directory on your disk, may invalidate your license. If you have trouble in activation, please visit <a href="[url]http://www.discuz.com/license/[/url]" target="_blank">';
- echo '[url]http://www.discuz.com/license/</a>[/url] for more information.
- <br><br>您的密匙不存在、超过有效期、更换新的服务器空间、更改 IP 地址、硬件、操作系统、PHP 安装模&';
- echo '#x5F0F;,或同时改变绝对路径或访问域名,都可能导致密匙失效。请访问 <a href="[url]http://www.discuz.com/license/[/url]" target="_blank">[url]http://www.discuz.com/license/</a>[/url] 重新生成密匙。
- <br><b';
- echo 'r>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </body>
- </html>
- ';
- exit ();
- return TRUE;*/
- }
- }
- }
- if (!defined ('IN_DISCUZ'))
- {
- exit ('Access Denied');
- }
- $license = new licensestuff ();
- $license->validate ();
- unset ($license);
- ?>
下面给出discuz3.12商业版未dezend的源码











