IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Как побороть Download Center Lite? (https://www.imho.ws/showthread.php?t=74135)

Madchild 23.11.2004 02:45

Как побороть Download Center Lite?
 
Есть скрипт для управления скачкой файлов. Можно указывать файл с любым расширением, браузер все равно захочет этот файл сохранить а не открыть.
Вот только беда, ко всем именам файлов сначала прибавляется
Код:

www.STADTAUS.com_
Собственно, эту надпись и хотелось убрать. На оф.форуме скрипта предлагается только одно решение - купить полную версию. :(
Попытался я своими силами преоделеть эту бяку - что-то не выходит. Подозрения пали на файл config.dat.php в папке inc. Подозрительный он какой-то. :)
Подскажите, плиз, где там ковырнуть. Чисто в образовательных целях. :)

Оф.страница скрипта, там же можно скачать и сам скрипт:
_http://www.stadtaus.com/en/php_scripts/download_center_lite/

Al-x 23.11.2004 23:51

Ставим такую строчку в download_center_lite.inc.php после чтения конфига (строка 269):
PHP код:

$conf_var str_replace('"www.STADTAUS.com_".','',$conf_var); 

Вот и всё.
Мне лень разбираться в config.dat.php. Кому не лень - запостите, pls :)
PS: а весь прикол в функции eval :)

megaroot 03.04.2006 10:43

Оч. интересная технология. Сам скрипт ИМНО менее интересен, нежели эта система защиты. Кто-то разобрался уже? У меня пока глухо..

Face 03.04.2006 11:51

Скрипт для расшифровки:
PHP код:

<?
$dlcl = @file('inc/config.dat.php');
$tplt = 'dlcl';
unset($dlcl[0]);
$dlcl = @array_values($dlcl);
$str = '';
$conf_var = '';
for ($n = 0; $n < count(${$tplt}); $n++)
{
    $c_var = '';
    for ($o = 7; $o >= 0 ; $o--)
    {
        $c_var += ${$tplt}[$n][$o] * pow(2, $o);
    }
    $img_var = sprintf("%c", $c_var);

    if ($img_var == ' ') {
        $conf_var .= sprintf("%c", $str);
        $str       = '';
    } else {
        $str .= $img_var;
    }
}
echo $conf_var;
?>

В итоге получаем скрипт:
PHP код:

$send_header='$dl->setFile($dp);$dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, $ifn."www.STADTAUS.com_".$ofn);$dl->send();';
if (
$language=='de') {
  
$ll='';
} else {
  
$ll='en/';
}
$et="\n\n".'  <div id="poweredby">'."\n".'    <span style="font-size:10px;">Powered by <a href="http://www.stadtaus.com/'.$ll.'">Download Center Lite</a></span>'."\n".'  </div>'."\n\n";
if(
preg_match("/<\/body>/i",$tpl->files['dlcl'])) {
  
$et.='</body>'."\n";
}
if (
preg_match("/<\/html>/i",$tpl->files['dlcl'])) {
  
$et.= '</html>';
}
$tpl->files['dlcl']=preg_replace("/<\/body>/i",'',preg_replace("/<\/html>/i",'',$tpl->files['dlcl'])).$et;
$parse_template='$tpl->parse(\'dlcl\');$tpl->print_file(\'dlcl\');'


OvErDrIvE 02.05.2006 18:58

всем салам,

как можно снова закодировать то что раскодированно если я это немного изменю? чтобы скрипт тоже с новой версией работал?

плз помогите

Face 02.05.2006 20:46

В файле download_center_lite.inc.php поменяй с
PHP код:

          unset($dlcl[0]);
          
$dlcl = @array_values($dlcl);
          
$str '';
          
$conf_var '';
          for (
$n 0$n count(${$tplt}); $n++)
          {
              
$c_var '';
              for (
$o 7$o >= $o--)
              {
                  
$c_var += ${$tplt}[$n][$o] * pow(2$o);
              }
              
$img_var sprintf("%c"$c_var);

              if (
$img_var == ' ') {
                  
$conf_var .= sprintf("%c"$str);
                  
$str       '';
              } else {
                  
$str .= $img_var;
              }
          } 

на
PHP код:

$conf_var '$send_header=\'$dl->setFile($dp);$dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, $ifn."www.STADTAUS.com_".$ofn);$dl->send();\';
if ($language==\'de\') {
  $ll=\'\';
} else {
  $ll=\'en/\';
}
$et="\n\n".\'  <div id="poweredby">\'."\n".\'    <span style="font-size:10px;">Powered by <a href="http://www.stadtaus.com/\'.$ll.\'">Download Center Lite</a></span>\'."\n".\'  </div>\'."\n\n";
if(preg_match("/<\/body>/i",$tpl->files[\'dlcl\'])) {
  $et.=\'</body>\'."\n";
}
if (preg_match("/<\/html>/i",$tpl->files[\'dlcl\'])) {
  $et.= \'</html>\';
}
$tpl->files[\'dlcl\']=preg_replace("/<\/body>/i",\'\',preg_replace("/<\/html>/i",\'\',$tpl->files[\'dlcl\'])).$et;
$parse_template=\'$tpl->parse(\\\'dlcl\\\');$tpl->print_file(\\\'dlcl\\\');\';'


и не заморачивайся с кодировкой =)

OvErDrIvE 02.05.2006 21:27

биг сэнкс, фэйс :yees:


Часовой пояс GMT +4, время: 04:28.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.