Простите, что нет рисунков... Вернее они есть, но в целях экономии нервов
я решил не переводить их в jpeg... Скачать данную статью в doc формате с рисунками
в bmp можно отсюда http://mite.by.ru/asp4.rar
Сегодня мы поговорим о таком понятии, как защита ваших флеш - произведений
от различных надругательств. Я постараюсь расписать различные методы защиты
и, где возможно, методы её преодоления. Поехали…
Одним из простейших способов защиты вашего флэша является установка пароля
в Publish Settings… (File-> Publish Settings… или Ctrl+Shift+F12). Щелкаем
по вкладке Flash, ставим галочку в поле Protect from import, вводим в поле
Password что-нибудь левое или совершенно конкретное и все…
Рис.1.
Если вы уверены, что теперь никто не сможет импортировать ваш флеш, то вы
глубоко заблуждаетесь… Почему? Сейчас расскажу…
Вообще я разделяю несколько видов “запаролевания” флешей…
Вид первый: остался еще от четвертого Flash, при попытке импорта файла swf
с данной защитой выскакивает вот такое окно:
Рис.2.
Бороться с этим окошком очень просто… Открываем .swf файл hex-редактором,
например я использовал HexEdit (просто ничего другого не было:), ищем сочетание
00 06, выделяем, удаляем, сохраняем…
Рис.3.
Именно УДАЛЯЕМ, а не заменяем код 00 06 на 00 00! Файл становиться меньше,
и назойливое окошко больше не появляется. Немного практики, и все получиться.
Вид второй: появился с Flash 5, при попытке импорта выскакивает окошко с полем
для ввода пароля на импорт файла:
Рис.4.
После 3-х попыток ввода пароля выскакивает все тоже надоедливое окошко… Да,
дела… Кого-то это может повергнуть в уныние, но не вас! Открываем swf файл
все тем же hex-редактором, а дальше технология следующая…
Рис.5.
Находим и выделяем самую длинную последовательность символов, неважно какие
это символы, главное чтобы они были в начале файла и последовательность была
непрерывна, т.е. без символов “.”. Дальше выделяем подряд все символы последовательности
плюс все точки слева и справа, не трогая другие символы. Как видите, я выделил
последовательность символов от буквы “f” до непонятного символа с кодом BF.
УДАЛЯЕМ данную последовательность, сохраняем файл. Если все сделано правильно,
то импорт пройдет без сучка. Прошу прощения, если какие-то флеши все-таки
не получиться импортировать, данный способ избавления от защиты основан ТОЛЬКО
на личных наблюдениях, но вроде работает…
Ну как вам? Думаете, что жизнь прожита зря? И ничего нельзя сделать? В принципе,
вы правы…
Вид третий: появился с приходом Flash MX, визуально процесс импорта защищенных
файлов выглядит точно так же, как и у предыдущего вида. В чем же отличие?
В настройках!
Рис.6.
Видите галочку в поле Compress movie? Вот из-за неё-то и все проблемы…
Рис.7.
В такой каше уже и не понять, что удалять, что оставлять… Но не нужно расстраиваться,
все течет, все меняется… Сейчас в Интернете существует великое множество программ
для снятия защиты с swf файлов, в том числе с упакованных и неупакованных
флешей, например программа UnlockSWF 2.04. Её можно найти вот по этому адресу:
http://buraks.com/unlockswf/unlockswf20.zip. Данный продукт является полностью(!)
бесплатным! По картинке видно, что все довольно просто: отмечаете необходимые
значения для .swf и сохраняете. Все!
Рис.8.
Вот такая ситуация, дорогой читатель… Думаете, что хуже быть уже не может?
Может, и еще как!
Ну, ладно. Импортировать можно любой файл… А как же защитить свой флеш? Ну,
допустим, что импортировать-то флеш возможно, но нам-то важно не то, что он
импортируется, а то, что при импорте попадет в библиотеку символов, верно?
А сделать так, чтобы при импорте не появилось ни одного символа очень просто.
Для примера рассмотрим “простейшую” защиту от импорта. В новом файле нарисуем
картинку (как вы понимаете вместо картинки может быть и мультик, и игра, разницы
нет). Теперь конвертируем картинку в Movie Clip (надеюсь вы еще не забыли
как это делается?). Редактируем получившийся клип: перемещаем первый фрейм,
содержащий изображение, во второй фрейм. В Actions второго фрейма пишем: stop
();. Переходим на основную сцену. Получается, что теперь ничего не видно!
Но, если запустить флеш, картинка появиться. Теперь попробуйте импортировать
этот флеш в новый. Ну, как? Что-нибудь появилось? И не появиться! Смысл всего,
что я написал выше, в следующем: Flash импортирует только то, что “видно”,
т.е. только то, что находиться непосредственно на Scene1 во фреймах, причем
у Movie Clip’ов берется только первый фрейм. Вот такая нехитрая операция позволит
избежать импорта ваших файлов и использования ваших флеш-картинок…
Вообще, я советую всегда делать общий Movie Clip, в котором будет размещаться
основной ролик, игра или что-то еще, а затем вставлять этот клип на главную
сцену. Т.е. у вас будет только один фрейм на главной сцене. Данный подход
при создании флешей нейтрализует переход по фреймам назад, вперед непосредственно
из флеш-преера, да и при импорте злоумышленник получить только первый фрейм
флеша.
Полегчало? Ну, это ненадолго…
Наверное, вы не раз задумывались над тем, что неплохо было бы не только получить
картинки из чужого флеша, но и стянуть ActionScript? Да, неплохо… Ну и что
же вам мешает? Программы нет? Не знаете какую выбрать? Понятно…
На сегодняшний день этой проблемой занимаются многие компании… Следует выделить
такие программные продукты:
Sothink SWF Decompiler – один из лучших декомпиляторов на сегодняшний день.
Action Script Viever – как понятно из названия, виевер ActionScript’а.
Flasm – не то чтобы декомпилер, но достаточно похож на него…
Давайте рассмотрим подробней эти замечательные программы.
Sothink SWF Decompiler – замечательное средство для выдирания не только ActionScript’а
но и звуков, символов, графики…короче, всего что только можно выдрать. С помощью
данного декомпилера можно разложить флеш по косточкам, а затем собрать заново.
Имейте только в виду, что собрать флеш воедино гораздо сложней, чем препарировать.
Требуются навыки. Проще, когда вы имеете дело со своим флешем, тогда восстановить
исходник можно где-то за пол часа (конечно, все зависит от размера). Кроме
того, что декомпилер поддерживает FlashMX, он еще может декомпилить .exe файлы
созданные из флеша. Вообщем всем программа хороша, только есть одно НО. Программа
платная, а демо версия, рассчитанная на 30 дней, выдает только по два ресурса
с каждого фрейма… И картинки этой проги у меня нет, только вот такое окощко
постоянно выскакивает:
Рис.8.1.
потому что кончился 30-дневный период, а переустанавливать систему лень.
Кряков тоже нет… Если кто найдет или знает где, пишите mitemail@mail.ru, расскажу
всем …
Следующая прога Action Script Viever, тоже платная, позволяет выдирать ActionScript
и не только… Вообщем, похожа на предыдущий декомпилер. Демку всегда можно
взять здесь: http://www.buraks.com/asv/index.html. Но интересна не эта прога,
как таковая, а БЕСПЛАТНЫЕ утилиты для флеша. Среди них, кстати, UnlockSWF
и некоторые другие… Весь список доступен тут: http://buraks.com/swifty/. Кстати,
на сайте-производителе есть еще одна прикольная прожка URL Action Editor,
позволяющая изменять getURL, LoadMovie, UnloadMovie,LoadVariables и еще кое-что
в swf.
Да, жизнь сегодня дорожает… Но есть все-таки на свете добрые люди. Программа
Flasm является freeware и скачать ее можно без проблем с http://www.nowrap.de/flasm14.zip,
причем в архиве находиться и документация (правда, на английском:), где все
расписано, что и как делать… Кстати, если вы разбираетесь в С, то можете скачать
также исходник. Работать с данной программой достаточно интересно.
Рис.9.
Как видите, программа работает под ДОС, но это ничуть не умаляет её возможностей.
Кстати Flasm полностью поддерживает FlashMX (можно распаковывать или сжимать
swf)! Для того чтобы получить код какого-либо swf файла (заметьте, код, а
не исходник!), достаточно написать:
flasm.exe movie1.swf,
где movie1.swf – некоторый файл, котрый мы хотим изменить. В той же папке,
где и flasm появится еще один файл – movie1.flm, содержащий код флеша. Изменяем
код, и компилируем .swf файл следующей командой:
flasm.exe –a movie1.flm,
получаем новый movie1.swf с исправленным кодом! Правда, есть один нюанс –
придется прочитать документацию на английском, чтобы знать, как редактировать
flasm-код (своеобразный, знаете ли, код). Но разве это остановит настоящих
исследователей?!?
Flasm – очень мощный инструмент в умелых руках, так что дерзайте!
Можете попытаться защитить свой флеш…а смысл? Все новые технологии постепенно
становятся достоянием всего Интернет-сообщества…
Ну, что, дорогие флеш-мэйкеры? Еще не пропало желание писать flash? И даже
не пугает, что сломать swf, с его открытой структурой, дело времени (кстати,
здесь просматривается определенная аналогия между программированием на Flash
и программированием под *nix – сломать даже проще, чем написать)? Ну, тогда
пишите… Пишите флеши, хорошие и разные, а чтобы люди не мучались, положите
где-нибудь рядом исходник…А если не положите… Всегда выйдет новая версия SWF
Decompiler’а!