Разборка сайта, содержащего Adobe/Macromedia Flash
 
.

Цель данного повествования: ознакомление со структурой сайта, содержащего элементы Adobe/Macromedia Flash, посредством практического освоения материала.

0. Получить url (=universal resource locator = универсальный адрес ресурса) страницы, использующей Adobe/Macromedia Flash, и сохранить его в текстовый файл, чтобы в дальнейшем брать именно из файла, дабы возможная опечатка не повлекла лишних последующих действий.

1. Получение offline контента сайта.
Для получения offline контента сайта, содержащего Adobe/Macromedia Flash, я использовал браузер Opera с установленным Adobe/Macromedia Flash plugin-ом. (Можно скачивать менее быстрым, но более корректным способом, но url подгружаемых файлов (flash, txt, xml, jpeg) могут генерироваться скриптом, а не храниться в готовом виде и придется разбираться в Adobe/Macromedia Action Script для получения финального url.)

Инсталлировать Opera ( http://www.opera.com/browser/download/ ), затем Adobe/Macromedia Flash plugin ( http://get.adobe.com/flashplayer/ ).
Узнать и сохранить адрес кэша Opera (в строке адреса ввести opera:config#UserPrefs|CacheDirectory4 (или просто нажать на эту ссылку) параметр определяет директорию кэша - очень рекомендую сохранить этот путь в тот же текстовый файл, что упоминался ранее)
Закрыть в Opera все открытые окна (кроме последнего) и все tab-ы (вкладки).
Очистить дисковый кэш (Инструменты -> Настройки -> Дополнительно -> История -> Дисковый кэш -> Очистить сейчас).
Увеличить дисковый кэш до уровня полного разового вмещения (если нет желания заниматься оценкой размера, то можно поставить максимальным =400 MBytes)
Увеличить кэш в памяти до полного разового вмещения (если нет желания заниматься оценкой размера, то можно поставить максимальным =60 MBytes)
Убираем галочку в поле "Очищать при выходе".
Включаем использование plugin-ов (Инструменты -> Настройки -> Дополнительно -> Содержимое -> [V] Включить плагины) и на всякий случай проверяем здесь (Инструменты -> Быстрые настройки -> [V] Включить плагины).
Очистить кэш в памяти - методом перезапуска Opera.

Заходим, по сохраненному в текстовом файле, url и стараемся обойти все элементы, дожидаясь их ПОЛНОЙ загрузки. Процедура очень ответственная.

Восстанавливаем структуру файлов у себя локально. Открываем список кэша (Инструменты -> Дополнительно -> Кэш) в левом столбике - имена файлов в кэше, в правом столбике - url их в оригинале. В ручную или автоматизировав, создаем локальную папку со всей вложенной структурой основываясь на списке кэша.

В Linux автоматизацию можно выполнить, сохранив в файл cache.txt строки, сформированные "имя_файла_в_кеше размер оригинальное_местоположение" таблицу кеша такой строкой (не универсальна, но полезна):

$ cat cache.txt | awk '{gsub(/^/, "cp -rfp ~\/\.opera\/cache4\/"); gsub(/http\:\//, "\."); print ("mkdir\ \-p\ ",$5,";rmdir\ ",$5,";",$1,$2,$3,$5)}' > ~/domem.sh;(echo '0a'; echo '#! /bin/sh'; echo '.'; echo 'wq') | ed -s ~/domem.sh; chmod 755 ~/domem.sh; ~/domem.sh; rm ~/domem.sh

2. Разархивация Adobe/Macromedia Flash.
Есть 2 типа published файлов, генерируемых Adobe/Macromedia Flash, если основываться на из заголовках (первых трех байтах содержимого файла - можно посмотреть hex-вьюером/редактором), то это FWS (для неархивированных) и CWS (для архивированных). Данная процедура конвертирует CWS в FWS. Утилиту "Flash decompressor" можно найти здесь: http://iancoog.altervista.org/ (работоспособность Windows версии я не проверял, а использовал C исходник, который после коррекции (в 72 строке меняем stricmp на strcmp) скомпилировался gcc).

3. Разборка файла Adobe/Macromedia Flash.
Для извлечения графики и аудио из FWS файлов под Windows существует, например утилита FlashDigger (описание: http://home.flashdig.com/ , ссылка на скачивание: http://download.flashdig.com/flashdigger.zip ).

Под Linux я обычно использую hex редактор и структуру форматов файлов известных мне. В этой части постараюсь продолжить свое повествование позже.

С уважением Дмитрий Захаров. (a.k.a. Domem)
E-mail: lezin@mail.ru