• Автор:

    Flesha
  • Добавлено:

    апр 20, 2014
  • Комментариев:

    4
  • Просмотров:

    12322

Делаем свой DLE Nulled

Делаем свой DLE Nulled

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

Начнем по порядку:

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

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

3. Теперь нам нужно его деобфусцировать (раскодировать в читабельный вид). Для этого можно воспользоваться UnPHP - The Online PHP Decoder

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

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

а) Находим и удаляем версию инициализации 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']."<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;
$auto_detect_config = false;
$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;
?>


Автор: Posterito Winston
Вернуться

Комментарии:


  1. sprosi_ca → 28 апреля 2014 14:03
    полезная статья, спасибо!
  2. yziker → 23 сентября 2014 20:30
    Всё отлично! Спасибо! 10.3 активирована!
  3. igordus → 4 октября 2015 13:26
    "Находим и удаляем версию инициализации DLE"

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

    В каком файле это искать ? Найти не могу, помогите пожалуйста..
    1. Станислав Пилявский → 9 декабря 2015 03:05
      (..\engine\inc\include\init.php) только цифровое значение может быть другим,так что ищи по запросу " define('DINITVERSION " без кавычек разумеется )
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.