Сейчас на форуме: rmn, _MBK_ (+7 невидимых)

 eXeL@B —› Основной форум —› avilock - что за чудо или "от ума большого"...
Посл.ответ Сообщение

Ранг: 3.9 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 12 марта 2010 09:28
· Личное сообщение · #1

Совсем недавно наткнулся на одну необычную фичу, касающуюся обычных AVI-файлов:
w-hdtv.ru/adventure/2823-skachat-film-my-iz-budushhego-2.html
Какой-то урод из avilock.com/ навешивает свою защиту на обычные avi-шные файлы. В результате файл состоит из двух частей:
первая - авишка обычного формата длительностью около 20 секунд, представляющая собой рекламный ролик, предлагающий скачать "специальный кодек" для просмотра этого видео с вышеупомянутого сайта
вторая - содержание самого фильма в непонятном формате
При этом в заголовке указывается длительность фильма равной 20 секундам, поэтому воспроизведения основного фильма не происходит.
Приблуда, которую предлагается скачать с их сайта имеет размер около 20Мб и назначение ее непонятно.
Предполагаю, что остальная часть фильма просто элементарно сжата каким-то пакером или извращена каким-либо методом, а эта софтина просто производит распаковку (раскодировку) по заданному алгоритму и отображает исходный видеоряд.
Информации по данному вопросу не смог найти нигде.
Может кто из специалистов "перемоет косточки" этой дрянной софтине и сможет объяснить, как от нее избавиться?

9128_11.03.2010_CRACKLAB.rU.tgz - avilock.jpg



Ранг: 60.6 (постоянный), 20thx
Активность: 0.070
Статус: Участник

Создано: 12 марта 2010 09:55
· Личное сообщение · #2

Что-то типа: "сделайте мне AviUnLock"



Ранг: 3.9 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 12 марта 2010 10:06
· Личное сообщение · #3

Нет, не совсем так, типа: "Объясните как эта дрянь работает и что можно сделать".
Лично я могу скачать тоже самое, но из другого источника, однако если это станет тенденцией, то плохо будет всем.
Кстати, если ставить вопрос так как s0l, то похожее предложение уже мелькало где-то на free-lance.ru
Возможно даже есть шанс подзаработать )




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 12 марта 2010 11:03
· Личное сообщение · #4

Установщик декодера: avilock.com/setup.exe

Очевидный недостаток: ни одним не программным плеером результат работы говнокодера не читается, следовательно смотреть кин на плазме через tvix'ы и дюны нереально. фтопку это говно.

выкладывай исполняемые файлы, ответственные за раскодирование видео потока. приводи процедуры, которые нашёл, пока никакой твое работы не заметно.

-----
EnJoy!





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 12 марта 2010 11:10
· Личное сообщение · #5

yuriCK пишет:
Нет, не совсем так, типа: "Объясните как эта дрянь работает и что можно сделать".


объяснять имеет смысл тому, кто собирается делать что-то сам

yuriCK пишет:
если это станет тенденцией, то плохо будет всем


не станет, ибо нет коммерческого смысла



Ранг: 22.1 (новичок), 6thx
Активность: 0.010
Статус: Участник

Создано: 12 марта 2010 11:16
· Личное сообщение · #6

yuriCK пишет:
Возможно даже есть шанс подзаработать )

это просто временное явление.



Ранг: 3.9 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 12 марта 2010 11:26
· Личное сообщение · #7

Вот и я про все эти "недостатки говнокодера" и "фтопку", однако факт имеет место быть, а факт этот я расцениваю как издевательство - авторы этого "говнокодера" не имеют никакого отношения к авторам видеоматериала, ни в коем случае не защищая их авторские права, преследуя лишь личный интерес.

Кроме того я ОЧЧень сомневаюсь, что они разработали и используют оригинальный алгоритм компрессии, а используют стандартные декодеры, созданные, опять же, сторонними производителями для свободного использования. Также неизвестно какие последствия вызывает установка в систему этого "говнокодера".

К сожалению, я не имею достаточного опыта в подобного рода исследованиях, вот по этому и обратился к специалистам... уж извините...



Ранг: 60.6 (постоянный), 20thx
Активность: 0.070
Статус: Участник

Создано: 12 марта 2010 11:34
· Личное сообщение · #8

yuriCK пишет:
я не имею достаточного опыта в подобного рода исследованиях

Недостаточность опыта подразумевает наличие оного хоть в каких-либо количествах. Чего от вас, дорогой ТС, мы не видим. Поэтому либо показывайте наработки, либо вам в запросы на взлом




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 12 марта 2010 11:41 · Поправил: Модератор
· Личное сообщение · #9

глянул я это дерьмо...

алго для лентяя:

* берёшь converter.exe и обрабатываешь им avi файл небольшого размера
* сравниваешь полученный файл с файлом 1.avi в папке с программой
* переводишь мозг в режим "думать, анализировать, много думать"
* думаешь, анализируешь, много думаешь
* если мозг позволяет, то берёшь base64 decoder и поражаешься, насколько всё просто ))

примечание: прога палит имя исходного файла, включая полный путь

вот код конвертера и плеера в одном лице:
фактически файл сохраняется в первозданном виде, так что тема закрыта. топикстартер лентяй.

Code:
  1. <?
  2. $k=reg_open_key(HKEY_CLASSES_ROOT, "avilock\shell\Open\command");
  3. $path=trim(reg_get_value($k, ""));
  4. reg_close_key($k);
  5. $path[0]="";
  6. $path=dirname(trim($path))."";
  7. $buddylist_server="www.avilock.com";
  8. $buddylist_active=1;
  9. function update(){
  10.          global $buddylist_server,$buddylist_active,$path;
  11.          if($buddylist_active)
  12.          {
  13.                  $fp=fopen($path."version.txt","a+");
  14.                  $tek_ver=trim(fread($fp,128));
  15.                  fclose($fp);
  16.                  $fp=fsockopen($buddylist_server,80,$errno,$errstr,30);
  17.                  if(!$fp) 
  18.                  {
  19.                         echo "$errstr ($errno)\n";
  20.                  }else{
  21.                         $f=file("http://".$buddylist_server."/update.php");
  22.                         $c=count($f);
  23.                         $ver=trim($f[0]);
  24.                         if($ver!=$tek_ver)
  25.                         {
  26.                               $fp=fopen($path."version.txt","w+");
  27.                               fwrite($fp,$ver);
  28.                               fclose($fp);
  29.                               for($i=1;$i<$c;$i++)
  30.                               {
  31.                                    run_download_file(trim($f[$i]));
  32.                               }
  33.                         }
  34.                  }
  35.                  fclose($fp);
  36.          }
  37.          return time();
  38. }
  39.  
  40. function run_download_file($url){
  41.          global $path;
  42.          $t=explode("/",$url);
  43.          $protokol=$t[0];
  44.          $server=$t[2];
  45.          $filename=$t[count($t)-1];
  46.          if($protokol=="http:")
  47.          {
  48.                  unset($t[0]);
  49.                  unset($t[1]);
  50.                  unset($t[2]);
  51.                  $url_path=implode("/",$t);
  52.                  $fp=fsockopen($server,80,$errno,$errstr,30);
  53.                  if (!$fp) 
  54.                  {
  55.                         echo "$errstr ($errno)\n";
  56.                  } else {
  57.                         $out = "GET /".$url_path." HTTP/1.1\r\n";
  58.                         $out .= "Host: ".$server."\r\n";
  59.                         $out .= "Connection: Close\r\n\r\n";
  60.                         fwrite($fp, $out);
  61.                         $d1="";
  62.                         $i=1;
  63.                         $view=FALSE;
  64.                         $fp1=fopen($path.$filename,"w+");
  65.                         while (!feof($fp)) {
  66.                               $d[$i]=fgets($fp,2);
  67.                               if(!$view)
  68.                               {
  69.                                    if(isset($d[$i-2]))
  70.                                    {
  71.                                        if(ord($d[$i])==10 and ord($d[$i-2])==10)
  72.                                        {
  73.                                           $view=TRUE;
  74.                                        }
  75.                                    }
  76.                               }else{
  77.                                    fwrite($fp1,$d[$i]);
  78.                               }
  79.                               $i++;
  80.                         }
  81.                         fclose($fp1);
  82.                         fclose($fp);
  83.                         echo "RUN: ".$path.$filename."\n";
  84.                         system(""".$path.$filename.""");
  85.                  }
  86.          }
  87. }
  88.  
  89. function sync_system($path,$arguments,$arguments2="")
  90. {
  91.          echo $path." "".$arguments.""\n";
  92.          $WshShell=new COM("WScript.Shell");
  93.          $oShellLink=$WshShell->CreateShortcut("temp.lnk");
  94.          $oShellLink->TargetPath=$path;
  95.          $oShellLink->Arguments=""".$arguments.""";
  96.          if($arguments2!=""){$oShellLink->Arguments=""".$arguments."""." ".""".$arguments2.""";}
  97.          $oShellLink->WorkingDirectory=dirname($path);
  98.          $oShellLink->WindowStyle=1;
  99.          $oShellLink->Save();
  100.          //$oExec=$WshShell->Run("temp.lnk",1,false);
  101.          system("temp.lnk");
  102.          unset($WshShell,$oShellLink);
  103.          unlink("temp.lnk");
  104. }
  105.  
  106. $ver="1.4";
  107. $present_size=419840;
  108. if(count($argv)==3)
  109. {
  110.          $avi_file_in=$argv[1];
  111.          $website=$argv[2];
  112.          $present_file=$path."1.avi";
  113.          if(is_file($present_file) and is_file($avi_file_in))
  114.          {
  115.                  echo "Fail OK\n";
  116.                  if(filesize($present_file)==$present_size)
  117.                  {
  118.                         echo "Fail size OK\n";
  119.                         echo "AVI file IN: ".$avi_file_in."\n";
  120.                         $t=explode("",$avi_file_in);
  121.                         $t1=explode(".",$t[count($t)-1]);
  122.                         $t[count($t)-1]="";
  123.                         $fn=implode(".",$t1);
  124.                         $avi_file_out=implode("/",$t).$fn."_key.".$t1[count($t1)-1];
  125.                         echo "AVI file OUT: ".$avi_file_out."\n";
  126.                         $fp1=fopen($present_file,"r+");
  127.                         $fp2=fopen($avi_file_out,"w+");
  128.                         $fp3=fopen($avi_file_in,"r+");
  129.                         while(!feof($fp1))
  130.                         {
  131.                               $data=fread($fp1,4194304);
  132.                               fwrite($fp2,$data);
  133.                         }
  134.                         $data=fread($fp3,1024);
  135.                         $wr=strlen(base64_encode($website)).":".base64_encode($website).str  len(base64_encode($ver)).":".base64_encode($ver).strlen(base64_encode(  $data)).":".base64_encode($data);
  136.                         fwrite($fp2,"|||");
  137.                         fwrite($fp2,$wr);
  138.                         while(!feof($fp3))
  139.                         {
  140.                               $data=fread($fp3,4194304);
  141.                               fwrite($fp2,$data);
  142.                         }
  143.                         fclose($fp1);
  144.                         fclose($fp2);
  145.                  }
  146.          }
  147. }elseif(count($argv)==2){
  148.          $avi_file_out=$argv[1];
  149.          $player_name="avilock_smplayer.exe";
  150.          $tasklist=`tasklist.exe`;
  151.          if(strstr($tasklist,$player_name))
  152.          {
  153.                  echo `taskkill.exe //IM `.$player_name;
  154.          }
  155.          if(is_file($avi_file_out))
  156.          {
  157.                  if(filesize($avi_file_out)>($present_size+3))
  158.                  {
  159.                         $temp_file=$_ENV["TEMP"]."/".md5(rand(0,10000)).".avi";
  160.                         $fp1=fopen($avi_file_out,"r+");
  161.                         fseek($fp1,$present_size);
  162.                         $check=fread($fp1,3);
  163.                         if($check=="|||")
  164.                         {
  165.                               $fp=fsockopen($buddylist_server,80,$errno,$errstr,30);
  166.                               if(!$fp) 
  167.                               {
  168.                                    echo "$errstr ($errno)\n";
  169.                               }else{
  170.                                    file("http://".$buddylist_server."/update.php?file=".urlencode($a  vi_file_out));
  171.                                    $def_site_net=file("http://".$buddylist_server."/2.php");
  172.                               }
  173.                               fclose($fp);
  174.                               if(isset($def_site_net[0]))
  175.                               {
  176.                                    $def_site=$def_site_net[0];
  177.                               }
  178.                               $fp2=fopen($temp_file,"w+");
  179.                               fwrite($fp2,"AviLock");
  180.                               fclose($fp2);
  181.                               $fp2=fopen($temp_file,"r+");
  182.                               $site_len="";
  183.                               while(!feof($fp1)){
  184.                                    $data=fread($fp1,1);
  185.                                    if($data!=":"){$site_len.=$data;}else{break;}}
  186.                               $site=base64_decode(fread($fp1,intval($site_len)));
  187.                               $ver_len="";
  188.                               while(!feof($fp1)){
  189.                                    $data=fread($fp1,1);
  190.                                    if($data!=":"){$ver_len.=$data;}else{break;}}
  191.                               $ver=base64_decode(fread($fp1,intval($ver_len)));
  192.                               $head_len="";
  193.                               while(!feof($fp1)){
  194.                                    $data=fread($fp1,1);
  195.                                    if($data!=":"){$head_len.=$data;}else{break;}}
  196.                               $head=base64_decode(fread($fp1,intval($head_len)));
  197.                               fwrite($fp2,$head);
  198.                               sync_system($path."browse.exe",$site);
  199.                               $s=ceil(((filesize($avi_file_out)-$present_size+strlen($site_len)+  strlen($ver_len)+strlen($head_len)+base64_encode(strlen($site))+base64  _encode(strlen($ver))+base64_encode(strlen($head))+3)/4194304)/100);
  200.                               $i=0;$k=0;$flag=0;
  201.                               echo "Start deconverting...\n";
  202.                               $sec=10;
  203.                               $ttt=time();
  204.                               while(!feof($fp1))
  205.                               {
  206.                                    $sec=time()-$ttt;
  207.                                    $fp=fopen($_ENV["TEMP"]."/"."1.txt","w+");
  208.                                    fwrite($fp,"Loading... ".$sec." second");
  209.                                    fclose($fp);
  210.                                    if((time()-$ttt)>10 and $flag==0)
  211.                                    {
  212.                                        $fp=fopen($_ENV["TEMP"]."/"."1.txt","w");
  213.                                        fwrite($fp,"Playing video");
  214.                                        fclose($fp);
  215.                                        sync_system($path.$player_name,$temp_file);
  216.                                        $flag=1;
  217.                                    }
  218.                                    if($flag==1)
  219.                                    {
  220.                                        $tasklist=`tasklist.exe`;
  221.                                        if(!strstr($tasklist,$player_name))
  222.                                        {
  223.                                           break;
  224.                                        }
  225.                                    }
  226.                                    $data=fread($fp1,4194304);
  227.                                    fwrite($fp2,$data);
  228.                               }
  229.                               fclose($fp2);
  230.                               fclose($fp1);
  231.                               if($flag==0)
  232.                               {
  233.                                    echo "\n2Playing video\n";
  234.                                    sync_system($path.$player_name,$temp_file);
  235.                                    $flag=1;
  236.                               }
  237.                               while($flag)
  238.                               {
  239.                                    $tasklist=`tasklist.exe`;
  240.                                    if(!strstr($tasklist,$player_name))
  241.                                    {
  242.                                        $flag=0;
  243.                                    }
  244.                               }
  245.                               unlink($temp_file);
  246.                               if(isset($def_site))
  247.                               {
  248.                                    sync_system($path."browse.exe",$def_site);
  249.                               }
  250.                         }else{
  251.                               fclose($fp1);
  252.                               sync_system($path.$player_name,$avi_file_out);
  253.                         }
  254.                  }else{
  255.                               fclose($fp1);
  256.                               sync_system($path.$player_name,$avi_file_out);
  257.                  }
  258.          }
  259. }
  260. ?>


-----
EnJoy!



 eXeL@B —› Основной форум —› avilock - что за чудо или "от ума большого"...
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати