Как делать nulled dle

Создание своего 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» );[/code]

б) Удаляем функцию отправки активации (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»;}[/code]

в) Удаляем функцию получения хеша ключа для нашего домена (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;}[/code]

г) Удаляем функцию активации 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\’].»<bXXXXX-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();}[/code]

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

$lic_tr = true;$domen_md5 = md5( get_domen_hash() . DINITVERSION );if( $domen_md5 == $config[\’key\’] ) $lic_tr = false;[/code]

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

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();}[/code]

ж) И удаляем установленное ограничение в 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\’] );}[/code]

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

<?phpecho <<<HTML<div class=»ui-state-error ui-corner-all» style=»padding:10px;»Внимание!</b><br />Во избежании проблем, в целях безопасности, проверка обновлений отключена!</div>HTML;?>[/code]

Добавить комментарий