Хак [хак] Ultimate 1.0

Тема в разделе "DLE", создана пользователем GauraStyle, 27 сен 2008.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. GauraStyle

    GauraStyle Kot

    Регистр.:
    13 фев 2007
    Сообщения:
    1.497
    Симпатии:
    918
    Ultimate 1.0
    1.jpg
    Вопрос: Что делает хак ?
    Ответ: Хак делает подсчёт количества скачиваний материала по удалённой ссылке если файл не загружен на сервер.
    В: Как это происходит ?
    О: Всё работает через [attachment=X] - название , ссылка , размер файла Вы записуете сами , а ссылка записывается под видом аттача.
    В: Что мне нужно сделать чтобы установить хак ?
    О: Читать полную новость.
    И так после после небольшого диалога начинаем:
    2.jpg
    Установка:
    1. Для начала делаем запрос:
    PHP:
    ALTER TABLE dle_files ADD COLUMN size VARCHAR(10not null;
    2. Идём в engine/download.php
    Заменим:
    PHP:
    $row $db->super_query("SELECT name, onserver FROM " PREFIX "_files WHERE id ='$id'");
    На:
    PHP:
    $row $db->super_query("SELECT name, onserver, size FROM " PREFIX "_files WHERE id ='$id'");
    И:
    PHP:
    $config['files_max_speed'] = intval($config['files_max_speed']);

        
    $file = new download(FILE_DIR.$row['onserver'],$row['name'], $config['files_force'], $config['files_max_speed']);

        if (
    $config['files_count'] == "yes" AND !$file->range$db->query("UPDATE " PREFIX "_files set dcount=dcount+1 where id ='$id'");
        
    $db->close();
    На:
    PHP:
    $config['files_max_speed'] = intval($config['files_max_speed']);
    if (
    $row['size']) {
        
    $file "";
        
    header("Location: {$row['onserver']}");
        }
        else {
    $file = new download(FILE_DIR.$row['onserver'],$row['name'], $config['files_force'], $config['files_max_speed']);
    }
        if (
    $config['files_count'] == "yes" AND !$file->range$db->query("UPDATE " PREFIX "_files set dcount=dcount+1 where id ='$id'");
        
    $db->close();
    3. Далее в engine/modules/functions.php
    Заменим:
    PHP:
    $db->query("SELECT id, name, onserver, dcount FROM " PREFIX "_files WHERE $where");

    while(
    $row $db->get_row()){
        
        
    $size formatsize(@filesize ROOT_DIR '/uploads/files/' $row['onserver'] ));

         if (!
    $user_group[$member_id['user_group']]['allow_files'])
            
    $link "<span id="attachment">{$lang['att_denied']}</span>";
         elseif (
    $config['files_count'] == 'yes')
            
    $link "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}] ({$lang['att_dcount']} {$row['dcount']})</span>";
          else
            
    $link "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}]</span>";

            
    $story str_replace'[attachment='.$row['id'].']'$link$story );
        }
        
    $db->free();
    На:
    PHP:
    $db->query("SELECT id, name, onserver, dcount, size FROM " PREFIX "_files WHERE $where");

    while(
    $row $db->get_row()){
        
        
    $size formatsize(@filesize ROOT_DIR '/uploads/files/' $row['onserver'] ));
        
    $row['name'] = explode("/"$row['name']);
        
    $row['name'] = end($row['name']);

         if (!
    $user_group[$member_id['user_group']]['allow_files'])
            
    $link "<span id="attachment">{$lang['att_denied']}</span>";
         elseif (
    $config['files_count'] == 'yes')
         {
         
         if (
    $row['size']) {
            
    $link "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$row['size']}] ({$lang['att_dcount']} {$row['dcount']})</span>";
            }
            else
            
    $link "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}] ({$lang['att_dcount']} {$row['dcount']})</span>";
            }
            
          else
          {
          if (
    $row['size']) {
            
    $link "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$row['size']}]</span>";
            }
            else
            {
            
    $link "<span id="attachment"><a href="{$config['http_home_url']}engine/download.php?id={$row['id']}" >{$row['name']}</a> [{$size}]</span>";
            }
            
    }
            
    $story str_replace'[attachment='.$row['id'].']'$link$story );
        }
        
    $db->free();
    4. Пойдём в engine/inc/files.php
    После:
    PHP:
    if ($serverfile != '' AND !@file_exists(ROOT_DIR."/uploads/files/".$serverfile)) $serverfile '';
    Вставим:
    PHP:
    if ($imageurldfl !="") {
    if (
    $imgurldflname !=""){
    if (
    $imagesize !=""){
    $db->query("INSERT INTO " PREFIX "_files (news_id, name, onserver, author, date, size) values ('$news_id', '$imgurldflname', '$imageurldfl', '$author', '$added_time', '$imagesize')");
    }
    }
    }
    После:
    PHP:
    <input class="edit" type="text" name="imageurl" size=42></div>
    <
    div class="hr_line"></div>
    Вставить:
    PHP:
    <div>Название материала <input class="edit" type="text" name="imgurldflname" size=42></div>
    <
    div>Ссылка на материал <input class="edit" type="text" name="imageurldfl" size=42></div>
    <
    div>Размер <input class="edit" type="text" name="imagesize" size=42></div>
    <
    div class="hr_line"></div>
    Заменим:
    PHP:
    $db->query("SELECT id, name, onserver  FROM " PREFIX "_files where author = '$author' AND news_id = '$news_id'");

         while(
    $row $db->get_row()){

             
    $this_size formatsize(@filesize(ROOT_DIR."/uploads/files/".$row['onserver']));
             
    $file_link "<a class=maintitle href="javascript:insertfile('[attachment={$row['id']}]')">{$row['name']}</a>";
    На:
    PHP:
    $db->query("SELECT id, name, onserver, size  FROM " PREFIX "_files where author = '$author' AND news_id = '$news_id'");

         while(
    $row $db->get_row()){
    if (
    $row['size']) {
    $this_size $row['size'];
    } else {
             
    $this_size formatsize(@filesize(ROOT_DIR."/uploads/files/".$row['onserver']));
             }
             
    $file_link "<a class=maintitle href="javascript:insertfile('[attachment={$row['id']}]')">{$row['name']}</a>";
    Установка завершена.
    Автор: keiZ

    Перейти по ссылке
    ;)
     
    sergeysnl нравится это.
  2. yudzhin

    yudzhin Постоялец

    Регистр.:
    11 ноя 2007
    Сообщения:
    66
    Симпатии:
    9
    Вроде всё прочёл но у себя многих вещей не найду в коде три раза искал -помоги загрузи рабочий files.php на основе моего.Буду признателен
     

    Вложения:

    • files.rar
      Размер файла:
      8,6 КБ
      Просмотров:
      7
  3. GauraStyle

    GauraStyle Kot

    Регистр.:
    13 фев 2007
    Сообщения:
    1.497
    Симпатии:
    918
  4. jred

    jred

    Регистр.:
    16 сен 2008
    Сообщения:
    383
    Симпатии:
    39
    ОШИБКА!!! Блин!!!
    GauraStyle, прежде чем брать с 4дле ты не пробовал проверить, не съел ли где парсер чего-нибудь? а то ОШИБКА!!!
     
  5. jred

    jred

    Регистр.:
    16 сен 2008
    Сообщения:
    383
    Симпатии:
    39
    народ, очень надо: напишите сколько полей в БД в таблице DLE_FILES ???
     
  6. Цербер

    Цербер Читатель

    Заблокирован
    Регистр.:
    16 май 2008
    Сообщения:
    132
    Симпатии:
    23
    Кто переделает под 7.5 очень надо.
     
  7. LarianVonLich

    LarianVonLich

    Регистр.:
    16 апр 2006
    Сообщения:
    248
    Симпатии:
    35
    а как изменить код, что бы счетчик скачиваний работал не с файлом лежащим на серваке, с на пример на депозите? И возможно ли такое? :nezn:

    Просто если файлы не 1 мб, а 200 или 100... на свой сервак особо не поместешь.

    и было бы здорово, что бы кто в теме, помог переделать под 7.5. Буду признателен.
     
  8. sergeysnl

    sergeysnl Читатель

    Заблокирован
    Регистр.:
    10 фев 2008
    Сообщения:
    331
    Симпатии:
    100
    LarianVonLich на депозит делать будет гемморойно, а так этот хак работает при скачивании с любого сайта (тлько прямой ссылки)
     
  9. Vertex1

    Vertex1 Постоялец

    Регистр.:
    5 дек 2008
    Сообщения:
    75
    Симпатии:
    13
    У меня тоже постоянно ошибку выбивает
     
  10. gta

    gta if (!$gta) echo "banned";

    Регистр.:
    8 дек 2008
    Сообщения:
    379
    Симпатии:
    146
    Блин харе флудить :mad:
    ! Выбивает ошибку потому что вы используете более раннюю версию DLE! У меня на DLE 6.7 работало нормально!
     
Статус темы:
Закрыта.