Способы создания nulled версии DLE

killoff

Команда форума
Moderator
Разрушитель (V)
Сообщения
129
Симпатии
78
Баллы
1 158
Многие помнят, что, наверное первый из авторов нулл версий ДЛЕ был mid-team (сейчас что то его сайт недоступен), но он давно не создавал новых нуллов ДЛЕ. В данный момент, есть плагин для создания нулла ДЛЕ, есть инструкция, по которой был написал плагин. Но недавно на одом сайте был выложен ещё один способ создания нуллед версии ДЛЕ. В общем решил собрать в данной теме все.

[*]Открываем файл init.php (..\engine\inc\include\init.php) — этот файл обфусцирован ByteRun Protector for PHP.
[*]Чтобы его его деобфусцировать (раскодировать в читабельный вид)ь можно воспользоваться http://www.unphp.net/ - The Online PHP Decode.
[*]Деобфусцированный код вставляем в init.php и сохраняем. Теперь у нас рабочий и раскодированный init.php
[*]После этого можно приступить к удалению функции активации и установленным ограничениям:

[*]Находим и удаляем версию инициализации DLE:
Код:
define( 'DINITVERSION', "xxxx" );
define( 'VERSIONID', "x.x" );
[*]Удаляем функцию отправки активации (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'] );
}

[*]Отключаем проверку обновлений. Для этого откроем 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;
?>

Ну вот и всё, проделав эти небольшие изменения с лицензионным DataLafe Engine мы получим полнофункциональную зануленную версию DLE.

Открываем файл: engine/inc/include/functions.inc.php

Находим:
Код:
function send_activation( $query ) {

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

    if( $data !== false ) {
        if( stripos( $data, "antw:activated" ) !== false ) return "1";
       elseif( stripos( $data, "antw:denied;expires" ) !== false ) return "-4";
        elseif( stripos( $data, "antw:denied" ) !== false ) return "0";
    }

    return "-1";
}
Меняем значения проверок: (где return "значение")
Это:
Код:
elseif( stripos( $data, "antw:denied;expires" ) !== false ) return "-4";
на :
Код:
elseif( stripos( $data, "antw:denied;expires" ) !== false ) return "1";
и Вот это:
Код:
elseif( stripos( $data, "antw:denied" ) !== false ) return "0";
на:
Код:
elseif( stripos( $data, "antw:denied" ) !== false ) return "1";

Сохраняем файл. Теперь при вводе любого ключа в формате XXXXX-XXXXX-XXXXX-XXXXX-XXXXX в Админ Панеле будет произведена успешная активация скрипта.

Первый способ проверен и работает 100%, ниже плагин создан именно по его инструкции. Второй вариант был замечен на одном из сайтов, и его работоспособность не проверялась. Какой вариант использовать - решать вам. Но проще воспользоваться кейгеном, и прописать ключик в engine/data/config.php.

Скачать плагин для создания нуллед версии ДЛЕ 13.2 - 14.1 (по первому варианту) - https://cloud.mail.ru/public/BvuN/oJXVyjU4r
 

archi1

Разрушитель (V)
Сообщения
193
Симпатии
165
Баллы
1 729
Спасибо, хорошая статья, щас как раз надумываю делать сайт и думаю что выбрать дле или преста шоп
 

clubmen

Созидатель (II)
Сообщения
8
Симпатии
1
Баллы
53
Спасибо, хорошая статья, щас как раз надумываю делать сайт и думаю что выбрать дле или преста шоп
Как можно сравнивать в выборе совершенно две разные системы заточены под совершенно разные задачи
 
  • Мне нравится
Симпатии: dmx

archi1

Разрушитель (V)
Сообщения
193
Симпатии
165
Баллы
1 729
Как можно сравнивать в выборе совершенно две разные системы заточены под совершенно разные задачи
мне нужно для продажи цифрового контента, ключи к играм, ключи к софту итд. Не подскажите какая лучше всего подойдет
 
  • Мне нравится
Симпатии: dmx

DEN35

Созидатель (II)
Сообщения
16
Симпатии
1
Баллы
214
Самое главное это нормальный хостер, которому плевать на абузы dle. А это обнуление пустая трата времени так как все равно вычилят
 

Виталий

Созидатель (II)
Сообщения
8
Симпатии
1
Баллы
118
мне нужно для продажи цифрового контента, ключи к играм, ключи к софту итд. Не подскажите какая лучше всего подойдет
DLE совершенно не заточен под магазин, да есть несколько плагинов, но все они очень ограничены. Из бесплатных вариантов, да и не бесплатных тоже, самый оптимальный это opencart
 

asorev

Созидатель (II)
Сообщения
13
Симпатии
1
Баллы
73
они сольют инфу при первой же абузе, самому бы сделать
Во-первых, не согласен по поводу того, что они сольют.
Если кто-то напишет абузу с требованием раскрыть IP-адрес, не думаю, что все подорвались сразу это делать.
А во-вторых, можно самому поднять VPS на Nginx и реализовать такой же функционал проксирования.
VPS сейчас стоят копейки, было бы желание.
 

morder

Созидатель (II)
Сообщения
4
Симпатии
1
Баллы
106
они сольют инфу при первой же абузе, самому бы сделать
если ты на free тарифе, на платном плане не легко будет получить от них данные клиента. Вообще есть много способов как получить ip на прямую от cloudflare, просто нужно включить мозги;) но это только если сайт на free сидит.

Ставишь дешёвый впс и проксируешь сайт используя nginx
Соглашусь с тобой полностью, лучший веб сервер это тот который собран своими руками под свои нужды, я тут недавно настраивал человеку cloudflare, и заметил у них появилась функция brotli решил протестировать, это шок, gzip жмёт лучше чем их "настроенный" brotli, это уже о многом говорит какое отношение у них к людям кто не платит деньги.
 

asorev

Созидатель (II)
Сообщения
13
Симпатии
1
Баллы
73
Вообще есть много способов как получить ip на прямую от cloudflare, просто нужно включить мозги;)
Если Cloudflare настроен правильно, узнать IP практически нереально.
Особенно при одновременном переезде домена на другой сервер и правильной настройке Cloudflare.
 

dmx

Продвинутый (IV)
Сообщения
18
Симпатии
45
Баллы
231
Если Cloudflare настроен правильно, узнать IP практически нереально.
Особенно при одновременном переезде домена на другой сервер и правильной настройке Cloudflare.
Мне абуза была где то картинку спарсило, к сайт под cloudflare. Абузу им и скинули, он аккаунт блокнул со всеми сайтами и сам лично написал абузу хостеру ещё и показал запрос как чекать ip. Мне хостер это письмо перенаправил.
Да и хостер Инферно чекал сайты под клаудом с разных регионов раши, и большой процент не открывается, вроде около 30 процентов
 

CAPAXA

Команда форума
Разрушитель (V)
Сообщения
387
Симпатии
420
Баллы
11 730
Мне абуза была где то картинку спарсило, к сайт под cloudflare. Абузу им и скинули, он аккаунт блокнул со всеми сайтами и сам лично написал абузу хостеру ещё и показал запрос как чекать ip. Мне хостер это письмо перенаправил.
Да и хостер Инферно чекал сайты под клаудом с разных регионов раши, и большой процент не открывается, вроде около 30 процентов
А как чекать?
 
Верх