Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Ivan Kovalenko                       2:5057/53      20 Jan 2003  13:58:59
 To : All
 Subject : Flash-ролики в формате exe
 -------------------------------------------------------------------------------- 
 
 (cut: exe2swf)
 #!/usr/bin/php -q
 <?php
 
 function swfout() {
     // Пишем swf-файлик
     global $argv, $stream, $i;
     echo "Writing {$argv[2]}\n";
     $swf = fopen($argv[2], 'w') or die();
     fwrite($swf, substr($stream, $i));
     fclose($swf);
     return;
 }
 
 function seeksig($sig) {
     global $i, $argv;
     // Сравниваем последовательность с сигнатурой.
     if ($sig == "\x46\x57\x53\x05") {
         // Если сигнатура найдена, пишем swf и вываливаемся в shell.
         echo "Signature found at offset " . dechex($i) . "\n";
         swfout();
         exit();
     }
     return;
 }
 
 if (!$argv[1]) {
     echo "Usage: {$argv[0]} file.exe [file.swf]\n";
     exit();
 }
 
 if (!$argv[2]) $argv[2] = substr($argv[1], 0, strrpos($argv[1], '.')) . 
 ".swf";
 
 chdir($_ENV['PWD']);
 
 // Hаиболее часто встречающиеся смещения сигнатуры
 $sigofs = array(0x5c000, 0x2ea00, 0xc6000, 0xc8000, 0x2e600, 0xb7000, 
 0x5f000);
 
 $exe = fopen($argv[1], 'r') or die();
 $stream = fread($exe, filesize($argv[1]));
 fclose($exe);
 
 echo "Seeking for signature in {$argv[1]}\n";
 // Сначала поищем по часто встречающимся смещениям
 foreach($sigofs as $i) seeksig(substr($stream, $i, 4));
 // Если сигнатура до сих пор не найдена, ищем ее с конца файла
 // Точнее, с конца строки с образом файла
 for ($i = strlen($stream); $i >= 0; $i--) seeksig(substr($stream, $i, 
 4));
 
 ?>
 
 (cut)
 
 Оптимизации тут совсем чуть-чуть, так что: а) конвертилка немного 
 тормозит на файлах с сигнатурами, расположенными по смещениям, 
 отсутствующим в $sigofs; б) простор для фантазии не ограничен.
 
 -- 
 You may keep silence
 Playing "Hi-Fi - Пионер (Ремикс) (0:50)"
 
 --- ifmail v.2.15.b2.ext
  * Origin: t-ronic at mail dot ru (2:5057/53@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Flash-ролики в формате exe   Ivan Kovalenko   20 Jan 2003 13:58:59 
 Flash-ролики в формате exe   Serge Petruschenko   22 Jan 2003 19:34:00 
 Re: Flash-ролики в формате exe   Vladimir Bormotov   23 Jan 2003 02:34:01 
 Flash-ролики в формате exe   Serge Petruschenko   23 Jan 2003 17:16:42 
 Re: Flash-ролики в формате exe   Vladimir Bormotov   24 Jan 2003 14:35:10 
 Re: Flash-ролики в формате exe   Gennady Terehov   24 Jan 2003 23:54:19 
 apt-* такое не умеет? (was: Flash-ролики в формате exe)   Vladimir Bormotov   25 Jan 2003 00:24:32 
 Re: apt-* такое не умеет?   Alexander Ogol   25 Jan 2003 02:07:41 
 Re: apt-* такое не умеет? (was: Flash-ролики в формате exe)   Artem Chuprina   25 Jan 2003 03:19:03 
 Re: Flash-ролики в формате exe   Dmitry Glazov   23 Jan 2003 15:32:53 
 Re: Flash-ролики в формате exe   Alexandr S. Agranovsky   23 Jan 2003 19:45:59 
 Re: Flash-ролики в формате exe   Ivan Kovalenko   23 Jan 2003 11:11:24 
 Flash-ролики в формате exe   Serge Petruschenko   23 Jan 2003 17:26:48 
 Re: Flash-ролики в формате exe   Ivan Kovalenko   26 Jan 2003 04:13:09 
 Flash-ролики в формате exe   Serge Petruschenko   27 Jan 2003 15:04:14 
 Re: Flash-ролики в формате exe   Ivan Kovalenko   29 Jan 2003 04:49:15 
 Flash-ролики в формате exe   Serge Petruschenko   31 Jan 2003 16:12:14 
 Re: Flash-ролики в формате exe   Ivan Kovalenko   04 Feb 2003 05:47:46 
 Re: Flash-ролики в формате exe   Vladimir Mosgalin   04 Feb 2003 01:46:47 
 Flash-ролики в формате exe   Serge Petruschenko   07 Feb 2003 15:38:24 
Архивное /ru.linux/12907ae81bc05.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional