Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » CMS » Помощь » Как делают DLE Nulled?
Как делают DLE Nulled?
admin
Администраторы
Сообщений: 45
Репутация: 2
off-line Добавлено: 04.09.2014 - 00:29 | Сообщение # 1
Как делают DLE Nulled? Сделать самому нул DLE или KeyGen? Сегодня вы узнаете поэтапное создание нуллед DataLife Engine любой версии скрипта.
Это не урок, а просто возможность объяснить, как его делают большинство и что это такое нулл дле и лицензия читаем подробно.

Для многих это возможность быть уверенным в защите от шеллов своего сайта, ведь не секрет, что большинство используют на своем ресурсе нуллед движка DataLife Engine, а для других может будет просто интересно.

Если вы посмотрите внимательно на этапы превращения зашифрованного файла в нул файл init.php, то складывается такое впечатление, что сами разработчики аккуратно расположили код так, чтобы было удобно его редактировать.

Кстати, есть и другие способы получения полной рабочей версии движка, например с генерировать лицензионный ключ на онлайн генератора для вашего домена или оффлайн для DLE 10.2 (то есть на вашем домашнем компьютере), что позволяет без проблем занулить dle собственноручно!

А вот самому получить файл init.php может будет интересно многим.
Начнем по порядку:

1. (Скачиваем / Находим / Просим / Покупаем) — чистую DLE (файл init.php (..\engine\inc\include\init.php) будет не читаемым если это чистая лицензия)

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

3. Теперь нам нужно его деобфусцировать (раскодировать в читабельный вид). Для этого можно воспользоваться Online ByteRun Protector for PHP. Берем код из файла init.php (..\engine\inc\include\init.php) вствляем в окно и нажимаем кнопку декодировать.

4. Деобфусцированный код вставляем в init.php и сохраняем. Теперь у нас рабочий и раскодированный init.php

5. А теперь будем удалять функции активации и установленные ограничения:

а) Находим и удаляем версию инициализации DLE:
Код
define( 'DINITVERSION', "1002" );
define( 'VERSIONID', "10.2" );


Кстати, в онлайн KeyGen для DLE вот этот код "1002", является ключом для расшифровки версии 10.2 дле.

К примеру в модуле Генератор ключей для DLE 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']."<b>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</b>";
    break;
    
   case "-2" :
    $buffer = $lang['trial_act5'];
    break;
    
   case "-1" :
    $buffer = $lang['trial_act1'] . $lang['get_offline_key'] . " <a href=\"http://dle-news.ru/index.php?do=offlinekey&domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID . "\" target=\"_blank\">" . $lang['get_key'] . "</a> " . $lang['key_activation'];
    $buffer .= "<br /><br /><b>$lang[site_code]</b><span style=\"padding-left:7px;\"><input class=\"edit\" type=\"text\" size=\"45\" name=\"sitecode\" id=\"sitecode\"> <input class=\"edit\" type=\"button\" onclick=\"dle_activation( 'code' ); return false;\" value=\"$lang[trial_act]\"></span><div id=\"result_info\" style=\"color:red;\"></div>";
    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, "<?PHP \n\n//System Configurations\n\n\$config = array (\n\n" );
    foreach ( $config as $name => $value ) {
     fwrite( $handler, "'{$name}' => \"{$value}\",\n\n" );
    }
    fwrite( $handler, ");\n\n?>" );
    fclose( $handler );
     
    $buffer = $lang['trial_act3'];
    break;
    
   default :
    $buffer = $lang['trial_act4'] . $lang['get_offline_key'] . " <a href=\"http://dle-news.ru/index.php?do=offlinekey&domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID . "\" >" . $lang['get_key'] . "</a> " . $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 (..\engine\ajax\updates.php) удалим все оттуда. И вставим это:
Код
<?php
echo <<<HTML
<div class="ui-state-error ui-corner-all" style="padding:10px;"><b>Внимание!</b>
<br />Во избежании проблем, в целях безопасности, проверка обновлений отключена!
</div>
HTML;
?>

ПрофильЛС
Форум » CMS » Помощь » Как делают DLE Nulled?
  • Страница 1 из 1
  • 1
Поиск: