DataLife Engine > Версия для печати > Делаем свой DLE Nulled

Создание своего DLE Nulled на примере версии 10.2.Многие наверное задавались вопросом, как сделать Null DLE. На самом деле здесь нет ничего сложного.Начнем по порядку:

1. Скачиваем чистую DLE

2. Открываем файл init.php (..engineincincludeinit.php) — этот файл обфусцирован ByteRun Protector for PHP.

3. Теперь нам нужно его деобфусцировать (раскодировать в читабельный вид). Для этого можно воспользоваться Online ByteRun PHP Decoder4. Деобфусцированный код вставляем в init.php и сохраняем. Теперь у нас рабочий и раскодированный init.php5. А теперь будем удалять функции активации и установленные ограничения:а) Находим и удаляем версию инициализации DLE:

define( 'DINITVERSION', "1002" );
define( 'VERSIONID', "10.2" );

б) Удаляем функцию отправки активации (send_activation):

function send_activation( $query ) {

 $data = http_get_contents("http://dle-news.ru/extras/activate2009.php?".$query);

 if( $data !== false ) {
  if( stristr( $data, "antw:activated" ) ) return "1";
  if( stristr( $data, "antw:denied" ) ) return "0";
 }

 return "-1";
}

в) Удаляем функцию получения хеша ключа для нашего домена (get_domen_hash):

function get_domen_hash() {
 $domen_md5 = explode( '.', $_SERVER['HTTP_HOST'] );
 $count_key = count( $domen_md5 ) - 1;
 unset( $domen_md5[$count_key] );
 if( end( $domen_md5 ) == "com" or end( $domen_md5 ) == "net" ) $count_key --;
 $domen_md5 = $domen_md5[$count_key - 1];
 $domen_md5 = md5( md5( $domen_md5 . "780918" ) );
 return $domen_md5;
}

г) Удаляем функцию активации DLE (dle_activation):

function dle_activation($key, $domen_md5, $config, $offline = false) {

 include (ROOT_DIR . '/language/' . $config['langs'] . '/adminpanel.lng');
 $config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset'];

 $domain = urlencode( strip_tags( $_SERVER['HTTP_HOST'] ) );
 $key = trim( strip_tags( $key ) );
 @header( "Content-type: text/html; charset=" . $config['charset'] );

 if ( $offline ) {

  if( $key == md5( $domen_md5 . DINITVERSION ) ) {

   $buffer = "1";

  } else {

   $buffer = "-2";

  }

 } else {

  if( strlen( $key ) == 32 ) {

   $buffer = "-3";

  } else {

   $buffer = send_activation( "domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID );

  }
 }

 switch ($buffer) {

  case "-3" :
   $buffer = $lang['trial_act6']." ".$lang['key_format']."XXXXX-XXXXX-XXXXX-XXXXX-XXXXX";
   break;

  case "-2" :
   $buffer = $lang['trial_act5'];
   break;

  case "-1" :
   $buffer = $lang['trial_act1'] . $lang['get_offline_key'] . " " . $lang['get_key'] . " " . $lang['key_activation'];
   $buffer .= "

$lang[site_code] "; break; case "0" : $buffer = $lang['trial_act2']; break; case "1" : $config['key'] = md5( $domen_md5 . DINITVERSION ); $handler = fopen( ENGINE_DIR . '/data/config.php', "w" ); fwrite( $handler, "" ); fclose( $handler ); $buffer = $lang['trial_act3']; break; default : $buffer = $lang['trial_act4'] . $lang['get_offline_key'] . " " . $lang['get_key'] . " " . $lang['key_activation']; } echo $buffer; die(); }

д) Также удаляем переменные проверки ключа для лицензии и домена:

$lic_tr = true;
$domen_md5 = md5( get_domen_hash() . DINITVERSION );
if( $domen_md5 == $config['key'] ) $lic_tr = false;

е) Удаляем еще одну проверку активации:

if( $_REQUEST['activation'] == "yes" AND $lic_tr) {

 if( $member_id['user_group'] != 1 ) die();

 if ( $_REQUEST['dle_key'] ) dle_activation( $_REQUEST['dle_key'], get_domen_hash(), $config );
 else dle_activation( $_REQUEST['site_code'], get_domen_hash(), $config, true );
 exit();
}

ж) И удаляем установленное ограничение в 100 новостей и 200 комментариев:

if( ($mod != "editnews" and $mod != "main" and $mod != "") AND $lic_tr ) {

 $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post" );
 $stats_news = $row['count'];

 $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_comments" );
 $count_comments = $row['count'];

 if( $stats_news > 100 ) msg( "info", "error", $lang['trial_limit'] );
 if( $count_comments > 200 ) msg( "info", "error", $lang['trial_limit'] );
}

6. Можно отключить проверку обновлений. Для этого откроем updates.php (..engineajaxupdates.php) удалим все оттуда. И вставим это:

Автор: Posterito Winston