Что такое код swf_shapefillsolid

Содержание

Загрузка swf в контейнер другой swf

ActionScript 3
09.11.2012, 02:22

Загрузка Swf файла в Swf
Привет всем,в данный момент хочу сделать себе веб страницу во Flash страница состоит с 3 swf .

Каким образом из загруженного swf передать команду прелоадеру на загрузку другого swf?
День добрый. Есть внешний прелоадер, который загружает swf файлы содержащие разные уровни игры. В.

Открытие файла SWF из SWF
Приветствую, имеются два ролика SWF — один кнопка, второй большая анимированная сцена. Как по.

Загрузка и выгрузка .swf
Здравствуйте, столкнулся с двумя проблемами: 1) Не знаю, как сделать загрузку ролика по нажатию.

Загрузка в swf xml
Добрый день! Столкнулась с такой проблемой: Есть главная форма(main) в которую подгружаю swf.

Конвертация SHP в SWF

SHP (Shapefile) — это векторный формат, связанный с приложением географической информационной системы (GIS), целью которого является обработка и визуализация пространственных и географических данных. SHP-файлы используют точки, линии и другие геометрические фигуры для описания различных географических форм (озер, рек, гор и т.д.) и могут отображать изображения в 2-D, 3-D или 4-D. Формат SHP был разработан ESRI (Институт исследований экологических систем) с целью повышения функциональной совместимости с другими программами.

SWF или в расшифровке Small Web Format — это мультимедийный и векторный графический формат, созданный Future Wave Software, в дальнейшем переданный компании Macromedia, а в настоящее время принадлежащий компании Adobe. SWF файлы хранят анимацию и звук, разработаны таким образом, чтобы облегчить к ним доступ в интернете, а также упростить их загрузку в сеть. Они могут хранить данные некоторых интерактивных программ, таких как браузерные игры, и могут быть открыты с помощью плагина Flash.

Как конвертировать SHP в SWF?

Самый простой способ — это скачать хорошую программу конвертации, например Фотоконвертер. Он работает быстро и эффективно, позволяя конвертировать любое количество SHP файлов за раз. Вы сможете довольно быстро оценить, что Фотоконвертер способен сэкономить массу времени которое вы будете тратить при работе вручную.

Скачайте и установите Фотоконвертер

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

Добавьте SHP файлы в Фотоконвертер

Запустите Фотоконвертер и загрузите .shp файлы, которые вы хотите конвертировать в .swf

Вы можете выбрать SHP файлы через меню Файлы → Добавить файлы либо просто перекинуть их в окно Фотоконвертера.

Выберите место, куда сохранить полученные SWF файлы

В секции Сохранить вы можете выбрать папку для сохранения готовых .swf файлов. Можно так же потратить пару дополнительных минут и добавить эффекты для применения во время конвертации, но это не обязательно.

Выберите SWF в качестве формата для сохранения

Для выбора SWF в качестве формата сохранения, нажмите на иконку SWF в нижней части экрана, либо кнопку + чтобы добавить возможность записи в этот формат.

Теперь просто нажмите кнопку Старт и конвертация начнется мгновенно, а SWF файлы сохранятся в указанное место с нужными параметрами и эффектами.

Видео инструкция

Интерфейс командной строки

Профессиональные пользователи могут конвертировать SHP в SWF используя командную строку в ручном или автоматическом режиме. За дополнительными консультациями по использованию cmd интерфейса обращайтесь в службу поддержки пользователей.

Рассказать друзьям

Фотоконвертер

Фотоконвертер это эффективный пакетный конвертер из формата SHP в формат SWF. Программа позволяет быстро обрабатывать множество файлов и папок за один раз.

Обзор программ для работы с Flash-технологией

ак известно, Macromedia Flash дает разработчику возможность хранить информацию в виде исходных файлов (файлы с расширением FLA), в которых видна структура разработки (информация о слоях и т.п.), и в виде компактных SWF-файлов, которые содержат минимум информации и предназначены для размещения в Сети. Во FLA-файлах содержится ноу-хау разработчика, поэтому FLA-файлы выкладываются в Сеть только в том случае, если автор хочет поделиться своими знаниями. После того как автор компилирует исходный FLA-файл в SWF-файл, вся избыточная информация, в том числе и информация о структуре документа, пропадает. SWF-файл можно импортировать во Flash, но при этом не удастся восстановить структуру документа без специального дополнительного ПО. Более того, если автор не хочет, чтобы его творение кто-то импортировал во Flash с целью извлечения доступных для редактирования ресурсов, то на стадии компиляции автор может задать пароль, который предотвратит импортирование SWF-файла во Flash.

То, что одни пользователи хотят защитить свои ресурсы, а другие, наоборот, вскрыть их, привело к появлению целого ряда программ, содержащих средства снятия защиты (и установки собственной), извлечения ресурсов и декомпиляции кода Action Script.

Современный Action Script является полнофункциональным языком программирования, позволяющим описывать весьма сложные сценарии, поэтому в случае потери кода восстановление его занимает довольно много времени, а программа-декомпилятор позволяет существенно снизить временные затраты при восстановлении утраченного кода. Одни пользователи используют такие программы, чтобы восстановить собственные ресурсы, другие — чтобы усовершенствовать свои навыки программирования во Flash на чужих примерах, а третьи — чтобы присвоить чужие ресурсы. Теоретически возможна ситуация, когда автор потерял свой исходный FLA-файл и ему нужна программа-декомпилятор, однако в подавляющем большинстве случаев эти программы используются для ознакомления со структурой чужой разработки и для экспорта чужих ресурсов.

Надеемся, читатель сам определит для себя способы применения подобных программ, мы же перейдем к описанию их возможностей.

Action Script Viewer 4.06

Разработчик: Manitu Group (http://www.manitugroup.com)

Размер дистрибутива: 1286 Кбайт

Способ распространения: shareware

Цена: 59,95 долл.

Работа под управлением: Windows 95/98/Me/NT/2000/XP

По всей видимости, Action Script Viewer — наиболее мощное приложение из нашего обзора. Программа позволяет извлекать различные типы ресурсов из одного или нескольких SWF-файлов в пакетном режиме. Все символы и слои могут быть сохранены как отдельные SWF-файлы. Растры могут быть извлечены в виде JPG/PNG-файлов, а звуки — в виде WAV/MP3-файлов. Программа позволяет открывать SWF-файлы, внедренные в EXE-проекторы, менять базовые параметры кадра (такие как размер окна и скорость смены кадра) и многое другое. Поддерживаются SWF-версии 3, 4, 5, MX и MX 2004. Наглядное представление о работе программы дает вид панели Timeline View Tab, которая показывает внутреннюю структуру реконструированных слоев (рис. 1).

Рис. 1. Панель Timeline View Tab позволяет реконструировать слои

Информация об SWF-файле может быть представлена в разном виде. Например, панель Frames Pane (рис. 2) дает сведения о каждом кадре, а панель Action Script Pane (рис. 3) отображает декомпилированный Action Script для выделенного в текущий момент объекта.

Рис. 2. Панель Frames Pane

Рис. 3. Action Script Pane

Action Script Replacer 1.0

Разработчик: Manitu Group (http://www.manitugroup.com/)

Размер дистрибутива: 581 Кбайт

Способ распространения: по Сети не распространяется

Цена: бесплатно для пользователей Action Script Viewer и URL Action Editor

Работа под управлением: Windows 95/98/Me/NT/2000/XP

Action Script Replacer (рис. 4) — это инструмент, позволяющий импортировать Action Script из одного SWF-файла для замены скрипта в другом SWF-файле. При этом приложение умеет открывать SWF-файлы, внедренные в EXE-проекторы.

Рис. 4. Интерфейс программы Action Script Replacer

Программа позволяет просматривать все скрипты в SWF-файле (поддерживаются SWF-версии 6/MX и ниже). Action Script Replacer дает возможность внедрять и добавлять Action Script кадра на другой кадр любой временной шкалы (Тimeline), добавлять кадры в любые временные шкалы, просматривать и модифицировать такие базовые параметры, как частота смены кадров, цвет фона и т.п.

Flare 0.5

Разработчик: Nowrap (http://www.nowrap.de)

Размер дистрибутива: 96 Кбайт

Способ распространения: freeware

Цена: бесплатно

Работа под управлением: Windows All, Mac OS X и Linux

Flare — это бесплатный Action Script-декомпилятор, позволяющий извлекать из SWF-файла все скрипты и представлять их в одном текстовом файле. Приложение поддерживает последнюю версию Flash MX 2004.

После инсталляции Windows-версии достаточно щелкнуть правой кнопкой мыши на любой SWF-файл в Windows Explorer, выбрать Decompile из контекстного меню — и Flare обеспечит декомпиляцию SWF-файла в обычный текстовый файл. В дальнейшем текстовый файл можно открыть в любом текстовом редакторе. Если при декомпиляции возникнут какие-либо проблемы, Flare выдаст предупреждение.

MAC OS X- и Linux-версии представляют собой приложения в виде командной строки.

Следует отметить, что Flare экспортирует только Action Script, но не умеет извлекать графику, звуки и т.п. — в отличие от многих программам данного класса.

Flash Decompiler 1.3

Разработчик: Eltima Software (http://www.show-kit.com)

Размер дистрибутива: 3224 Кбайт

Способ распространения: shareware

Цена: 39,95 долл.

Работа под управлением: Windows 95/98/Me/NT/2000/XP

Flash Decompiler — одно из наиболее быстрых и надежных средств извлечения исходных ресурсов из SWF-файлов (рис. 5). Последняя версия 1.30 появилась совсем недавно — 24 мая текущего года. Программа проста в работе: одним щелчком мыши можно извлекать и сохранять звуки, изображения, кнопки, формы, шрифты, тексты, элементы Action Script из любого SWF-файла на жесткий диск. Наглядный поэлементный предпросмотр (рис. 6), дружественный интерфейс с поддержкой скинов, возможность проигрывать SWF-файлы непосредственно во Flash Decompiler, поддержка компрессии SWF-файлов и всех версий Flash — все это делает инструмент удобным и востребованным.

Рис. 5. Flash Decompiler позволяет извлечь ресурсы из SWF-файла одним щелчком мыши

Рис. 6. Программа дает возможности легко извлекать и хранить звуки, изображения, формы, шрифты, кнопки, тексты и т.п.

Gordon 1.3.1

Разработчик: FutureCandy (http://www.futurecandy.com)

Размер дистрибутива: 503 Кбайт

Способ распространения: shareware

Цена: 59 долл.

Работа под управлением: Mac OS 10.1 и выше, совместима с10.2 Jaguar

Gordon — один из немногих SWF-декомпиляторов, работающих под управлением Mac OS X. Недавно программа была обновлена до версии 1.3.1, в которой поддерживается новый стандарт Action Script 2.0.

Программа предоставляет следующие возможности:

• редактирование, экспорт и импорт ресурсов SWF-файла;

• экспорт в PDF и TIFF;

• предпросмотр извлекаемых ресурсов;

• поддержка Flash 3, 4, 5, MX и MX 2004;

• разделение мувиклипов, внедренных в один SWF-файл;

• обновление ранее опубликованных SWF-файлов в компрессированный или некомпрессированный MX-формат;

• установка и снятие защиты на SWF-файлы, изменение размеров кадра фильма, цветового фона, частоты смены кадров без доступа к FLA-файлу;

• шкала Тimeline позволяет просматривать все кадры одновременно.

INPERATOR FLA 1.6

Разработчик: Imperator GbR (www.ave-imperator.com)

Размер дистрибутива: 1071 Кбайт

Способ распространения: shareware

Цена: 79 евро

Работа под управлением: Windows 95/98/Me/NT/2000/XP

IMPERATOR FLA (рис. 7) генерирует FLA-файлы (читаемые посредством Flash MX(6) или выше) на базе SWF-файлов (скомпилированных при помощи Macromedia Flash) и таким образом позволяет изменять содержание SWF-файла даже тогда, когда соответствующий FLA-файл утерян. Программа дает возможность извлекать включенные в файл медиаресурсы (картинки, звуки, видео) и редактировать их в сторонних программах.

Рис. 7. Интерфейс программы IMPERATOR FLA

В перечень восстанавливаемых объектов входят скрипты, кнопки, параметры кадра (фон, скорость смены кадров, размеры кадра и т.п.), картинки разных типов, формы, звук, мувиклипы (MovieClips), текстовые поля и видео. Все эти ресурсы программа реорганизует во FLA-совместимом виде (FLA-compatible terms). Для того чтобы извлечь медиаресурсы, достаточно выбрать пункт Media-Extraction и определить тип извлекаемого ресурса (рис. 8).

Рис. 8. Функция Media-Extraction

Программа позволяет создавать папки внутри результирующего FLA-файла и перемещает все помеченные ресурсы (Font, Shapes, Pictures, Sounds и Videos), найденные в SWF, в соответствующие папки (рис. 9).

Рис. 9. Панель Library Folders

Функция Font To Shape Conversion обеспечивает возможность графически конвертировать весь статический текст в масштабе 1:1, даже если искомый шрифт не установлен на компьютере.

В IMPERATOR FLA также имеется функция Recovery-Protection, позволяющая добавить защитный код на выбранные SWF-файлы, запрещая конвертировать их с помощью IMPERATOR FLA.

Liatro SWF Decoder 4.5

Размер дистрибутива: 812 Кбайт (30-дневная ознакомительная версия)

Способ распространения: shareware

Цена: 39 долл.

Работа под управлением: Windows 95/98/Me/NT/2000/XP

Liatro SWF Decoder позволяет просматривать, анализировать и извлекать ресурсы из SWF-файлов, включая Action Script, кнопки, формы, изображения, спрайты, тексты, шрифты, кадры и звуки. Ресурсы можно извлекать как JPEG-, MP3-, WAV-, text- или SWF-файлы.

Программа SWF Decoder проста в работе: надо лишь щелкнуть мышью по анализируемому SWF-файлу, и во встроенной панели произойдет декодирование фильма и будет сгенерировано дерево, отображающее структуру файла. Вы можете экспортировать любой элемент из этого дерева, а также просмотреть выделенные элементы на базе встроенного Flash-плеера. SWF Decoder поддерживает Flash версии 3, 4, 5 и MX.

Программа позволяет извлекать ресурсы как из SWF-, так и из ЕХЕ-файлов.

SWF Decompiler MX 2004 Pro 40220

Разработчик: SourceTec Software (http://www.sothink.com)

Размер дистрибутива: 2192 Кбайт

Способ распространения: shareware

Цена: 40 долл.

Работа под управлением: Windows 95/98/Me/NT/2000/XP

SWF Decompiler — это инструмент для просмотра и анализа SWF-файлов, позволяющий извлекать формы, изображения, звуки, Flash Video (файлы в формате FLV), шрифты, тексты, мувиклипы и декомпилировать Action Script, переводя его в аккуратный, легко читаемый код (рис. 10). В последней версии (MX 2004 Pro 40220) SWF Decompiler поддерживает Flash MX 2004 и Action Script 2.0. Программа позволяет просматривать как SWF-, так и автономные ЕХЕ-файлы.

Рис. 10. Интерфейс программы SWF Decompiler

После инсталляции SWF Decompiler в панели Internet Explorer появляется кнопка SWF Catcher, посредством которой можно вызывать все функции программы.

SWF Decompiler позволяет отображать компоненты фильма по группам (формы, шрифты, тексты, спрайты, кнопки и т.п). Декомпилированный код выдается с подсветкой синтаксиса.

С помощью программы можно искать SWF-файлы на жестком диске, в Сети или в кэше Internet Explorer и проигрывать их во встроенном плеере.

SWF Extractor 2.2

Разработчик: GlobFX (http://www.globfx.com/)

Размер дистрибутива: 691 Кбайт

Способ распространения: shareware

Цена: 25 долл.

Работа под управлением: Windows 95/98/Me/NT/2000/XP

SWF Extractor позволяет извлекать изображения и звуки из SWF-файлов. Изображения извлекаются как JPEG- или PNG-файлы, а звуки как MP3- или WAV-файлы.

SWF Extractor поддерживает Macromedia Flash 3, 4, 5 и MX-форматы.

Программа имеет режим предпросмотра Detailed List (рис. 11).

Рис. 11. Режим просмотра Detailed List

Одним щелчком мыши можно просматривать изображения и звуки, не обращаясь к внешним средствам просмотра (рис. 12).

Рис. 12. Режим просмотра с иконками Thumbnail

SWF Scanner 2.6.3

Разработчик: Live Tronix (http://www.livetronix.com)

Размер дистрибутива: 782 Кбайт

Способ распространения: shareware

Цена: 19,99 долл.

Работа под управлением: Windows 95/98/Me/NT/2000/XP

SWF Scanner — это удачное решение на случай, если вы потеряли свои исходники. Программа позволяет редактировать некоторые элементы SWF-файла, а также извлекать Action Script (рис. 13), изображения и звуки из SWF-файла (рис. 14). Программа проста в работе и не требует обучения. SWF Scanner 2.5 поддерживает стандарт Flash 5 Action Script.

Рис. 13. Пример извлечения Action Script

Рис. 14. Пример извлечения ресурсов из SWF-файла

Программа позволяет изменять размер кадра и скорость смены кадра без FLA-файла.

Если вам нужно, например, обновить корпоративный логотип или изменить какое-то изображение в Flash-презентации, а исходника нет, то SWF Scanner предлагает простое решение: все, что нужно сделать, — это выбрать файл, который вы желаете заменить, указать новый файл на жестком диске и нажать кнопку Replace and Save (рис. 15).

Рис. 15. Функция смены изображений

При использовании незарегистрированной версии все извлеченные изображения будут иметь метку — красный крест.

Unlock SWF 3.0

Разработчик: Manitu Group http://www.manitugroup.com/

Размер дистрибутива: 322 Кбайт

Способ распространения: freeware

Цена: бесплатно

Работа под управлением: Windows 95/98/Me/NT/2000/XP

UnlockSWF — это утилита (рис. 16), позволяющая удалить/переустановить защиту от импорта (Protect from Import) на SWF-файл. С помощью Unlock SWF можно открывать компрессированные SWF-файлы и сохранять их как SWF-версии 6 (в компрессированном и некомпрессированном виде).

Рис. 16. Интерфейс утилиты Unlock SWF

При экспорте фильма с помощью Macromedia Flash предоставляется опция Protect from Import для защиты SWF- файла паролем. Flash не позволит импортировать SWF-файл, который был экспортирован с данной защитой, или потребует пароля перед импортированием. Если вы потеряли исходный FLA-файл (обычно SWF доступен всегда, так как хранится на Web), но при экспорте вы указали защиту и забыли пароль, то импортировать SWF-файл во Flash без снятия защиты вы уже не сможете. UnlockSWF позволяет снять защиту с SWF-файла или удалить возможность импорта по паролю: Flash не будет спрашивать пароль и не будет импортировать SWF. Вы также можете добавить защиту на незащищенный SWF, и тогда Flash не будет импортировать SWF.

Swifty Hercules 2.1

Разработчик: Manitu Group

Размер дистрибутива: 288 Кбайт

Способ распространения: freeware

Цена: бесплатно

Работа под управлением: Windows 95/98/Me/NT/2000/XP

Swifty Hercules — это небольшое Windows-приложение — утилита, позволяющая извлекать мувиклипы (Movie Clips) из SWF-файла как отдельные SWF-файлы.

Программа поддерживает SWF-версии до шестой включительно.

Swifty Xena Pro 1.4

Разработчик: Manitu Group

Размер дистрибутива: 156 Кбайт

Способ распространения: freeware

Цена: бесплатно

Работа под управлением: Windows 95/98/Me/NT/2000/XP

Swifty Xena извлекает ресурсы из SWF-файлов, включая Flash.exe, Aftershock.exe, projector-файлы и Director movie-файлы. Программа позволяет заменять исполняемый файл (или фильм) другим SWF-файлом.

Swifty Zeus 2.1

Разработчик: Manitu Group

Размер дистрибутива: 288 Кбайт

Способ распространения: freeware

Цена: бесплатно

Работа под управлением: Windows 95/98/Me/NT/2000/XP

Swifty Zeus позволяет извлекать слои из SWF-файла как отдельные SWF-файлы, что дает возможность изучить послойную структуру документа.

HelperLife

Формат файла SWF: что это такое, с помощью каких программ можно открыть и конвертировать. Расскажем о широких возможностях формата.

Рядовые пользователи компьютера и сети Интернет редко сталкиваются с форматом SWF, разве что в виде рекламных флеш-баннеров на сайтах. Этот стандарт имеет большие возможности и множество способов использования. Самое стандартное представление – анимация различного вида, для открытия которой браузер требует установку флэш-плеера. В современных версиях популярных браузеров такой плагин есть по умолчанию и пользователю остается только включить его в момент необходимости.

SWF – что это за формат

В 1995 году компанией FutureWave Software был разработан стандарт SWF – что это за формат и какие возможности он предлагает, компьютерные специалисты узнали позже.
SWF – это патентованный формат корпорации Adobe Systems, предназначенный для отображения на веб-страницах флеш-анимаций, видео и аудио контента, а также других графических файлов. Сфера применения очень разнообразна: от простых презентаций до полноценных сайтов с внедрением технологий XML и PHP. Положительные отличия: видеофайлы грузятся и воспроизводятся быстрее, картинки при масштабировании не имеют значительных искажений.
Первоначально, владельцем спецификации (на тот период он имел название SPL) была не компания Adobe Systems. После разработки стандарта, в 1996 году, компания Macromedia купила FutureWave Software. В 2005 году Macromedia была приобретена Adobe Systems.

Чем можно открыть SWF-файл: перечень программ

Как открыть файл формата SWF

Важно. Практически для всех веб-браузеров требуется установка Adobe Flash Player. У Google Chrome инсталляция и обновление происходят автоматически.

Как открыть SWF-файл на компьютере

Совет. Если у вашего компьютера операционная система Mac OS, то следует выбрать аналогичную программу для просмотра SWF из списка пункта 2.

Как открыть файл SWF в онлайне – без сторонних программ

Как открыть SWF-файл на андроиде

Файлы на Андроид можно открыть только для просмотра, а для создания и редактирования требуются ресурсы компьютера. В Google Play Market есть отличное приложение для просмотра флеш-файлов под названием SWF Player. Приложение отличается минимальными требованиями памяти и удобством эксплуатации.

Онлайн-сервисы для конвертирования SWF-файлов

Не открываются swf файлы: видео

Часто приходится сталкиваться с ситуацией, когда файлы не открываются. Возможно, это связано с проигрывателем или браузером – тогда необходимо их переустановить. Если причина кроется не в этом, тогда предлагаю посмотреть видео о возможной другом факторе неисправности:

Как открыть файл SWF

SWF – это особый формат, разработанный специально для веб-приложений и использования в интернет-среде. Это формат для хранения различного рода анимации, графического контента и даже коротких видео и аудио файлов небольшого объёма.

Для примера, практически все рекламные баннеры, которые мы ежедневно видим перед собой в Интернете созданы именно в данном формате. Также с помощью данной технологии можно создавать интерактивный интерфейс невысокой сложности.

Аббревиатура «swf» изначально расшифровывалась как «ShockWave Format». Теперь, для того, чтобы не было путаницы с другими флеш-приложениями, этот формат называется «Small Web Format» (маленький веб-формат).

Как и чем открыть SWF?

К сожалению, открыть данный файл с помощью стандартных средств просмотра изображений Windows не представляется возможным. Тут ситуация очень схожа с форматом «GIF», который хоть и отображается как изображение, но запустить анимацию нельзя. Так чем же всё-таки можно просмотреть такого рода файлы?

Браузеры

Первый и самый простой способ, абсолютно не требующий дополнительной установки каких-либо средств – открыть нужный файл в любом браузере. Практически все современные средства для интернет-серфинга предусматривают поддержку технологии «Flash».

Запустить swf-файл используя браузер просто:

    Дважды кликните на необходимом swf-файле.

Готово! Браузер откроет наш файл, и впредь все swf-файлы будут ассоциироваться с данной программой.

Adobe Flash Player

Второй доступный и очевидный вариант – использовать программные продукты от «Adobe», так как именно эта компания на данный момент – основной разработчик любого ПО с технологией Flash. Самый распространённый продукт, который есть у каждого – Flash Player.

Итак, чтобы открыть данный тип файлов в этой программе необходимо:

    Открыть Adobe Flash Player, используя ярлык на рабочем столе или через меню «Пуск». В окне программы открываем функцию верхней панели «File» («Файл»), в открывшемся подменю выбираем «Open» («Открыть»).

Готово! Файл откроется и будет воспроизведён Flash Player-ом.

На заметку! Ещё один более быстрый способ – выделить необходимый файл и нажать правой клавишей мыши. В контекстном подменю выбрать подпункт «Открыть с помощью» («Open with»), и уже в нём выбрать Флеш-плеер.

С помощью медиаплеера

Для этого способа подойдёт любой проигрыватель видео для Windows – самый популярный KMPlayer, распространённый VLC media player, или чуть менее известный GOM player. Впрочем, список подходящих программ достаточно велик.

Разберём на примере KM-плеера. Последовательность действий проста:

    Запускаем КМПлеер. Важно открыть именно саму программу, а не конкретный файл. Так будет удобнее, и это поможет избежать вылетов.

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

Видео — Чем открыть файл SWF

Понравилась статья?
Сохраните, чтобы не потерять!

Способы «защиты» flash-приложений

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

— введение

В мире flash (речь, конечно, о клиенте) не существует гарантированной защиты от злоумышленников, можно лишь отсеять совсем незадачливых и усложнить работу тем, кто решит идти до конца. Стремиться стоит к тому, чтобы стоимость и время работы недоброжелателя были как можно выше, а Ваши затраты — как можно меньше. В идеале старайтесь добиться того, чтобы злоумышленнику было проще, быстрее и дешевле купить или написать с нуля, чем обходить Ваши препятствия.

Борьба между системами защиты и системами обхода\снятия защит ведётся постоянно. Это связано с тем, что любому желающему доступна спецификация формата SWF и байткода (тут, здесь и ещё тут), в который компилируется ActionScript3 (далее AS3) код. Это позволяет свободно писать собственные библиотеки и приложения для разбора SWF файлов на составляющие (графику, звуки, байткод и т.д.), и делать что угодно с байткодом, например:

  • писать анализаторы байткода для декомпиляции ABC (ActionScript ByteСode) файлов, которые можно найти в тэгах «DoABC» в скомпилированном AS3 SWF файле (а в AS2 код обычно находится в тэгах «DoAction» и «DoInitAction»);
  • писать приложения, модифицирующие байткод, например, для его обфускации с помощью различных приёмов, которые могут использовать специфику декомпиляции в своих целях;
  • писать приложения, позволяющие изменять (патчить) байткод в уже скомпилированных SWF файлах;
  • модифицировать FP для вывода (трейса) исполняющегося байткода;

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

— содержание

— 1. URL-Lock, защита от локального запуска

Цель – заставить SWF файл работать в определенных условиях, например, только под одним или несколькими доменами, либо запретить локальный запуск.
После определения того факта, что SWF запущен не там, где должен бы, можно запрограммировать его поведение как угодно. Вы можете отправлять на сервер неугодные домены\URL (если это не localhost) и заносить в какой-нибудь лог.
Подлинные домены (под которыми должен работать SWF файл) лучше держать в зашифрованном виде или не держать в клиенте вообще (принимать от сервера также в зашифрованном виде).
Рассмотрим несколько способов привязки к доменам и определения локального запуска.

Привязка к доменам с помощью получения текущего URL\домена

Это самый распространённый способ привязки к домену. Для получения текущего URL или домена обычно используют:

а) loaderInfo:

  • root.loaderInfo.url ( _root._url – для AS2) – содержит путь до самого SWF файла, если SWF загружен с помощью другого SWF, то root.loaderInfo.url у загруженного SWF останется прежним
  • root.loaderInfo.loaderURL – содержит путь до самого SWF файла, либо до его загрузчика, если он был загружен с помощью другого SWF файла
  • root.loaderInfo.loader — содержит ссылку на экземпляр класса Loader, либо null, если SWF не был загружен внешним загрузчиком (заметьте, что root.loaderInfo.loader == root.parent , а root.parent == stage , если SWF не имеет загрузчика). Причём, если загрузчик не находится в доверенной зоне (находится в другом SecurityDomain), то при обращении к root.loaderInfo.loader или к root.parent из загружаемого SWF, будет возникать исключение SecurityError, в сообщении которого также будет содержаться ссылка до загрузчика

Пути не изменятся, если SWF встроить в HTML страницу на «неродном» домене без перемещения самого SWF файла.

б) LocalConnection: позволяет получить имя домена, под которым в данный момент запущен SWF файл с помощью LocalConnection.domain .
Если чужой SWF находится в домене, отличном от домена Вашего SWF, и Вы загрузили тот SWF в текущий домен безопасности так:
или с помощью Loader.loadBytes , то LocalConnection.domain загруженного SWF будет содержать домен Вашего SWF.
Пути не изменятся, если SWF встроить в HTML страницу на «неродном» домене без перемещения самого SWF файла.

в) ExternalInterface: позволяет использовать JavaScript (далее JS). Например, путь до текущей страницы, в которую встроен SWF, можно получить с помощью window.location.href . Для вызова JS используйте ExternalInterface.call . Т.к. call в качестве первого параметра принимает название метода, а window.location.href – свойство, то следует использовать toString():
Кстати, домен тоже можно получить через ExternalInterface.call :

ExternalInterface можно использовать и для вызова своих JS функций на той странице, где находится SWF – как изначально существующих, так и созданных Вами с помощью eval:
И не стоит забывать, что этот способ требует выполнения JS, что не всегда возможно.
При попытке обойти с помощью встраивания в HTML страницу на «неродном» домене без перемещения самого SWF файла, выполнение ExternalInterface.call будет генерировать SecurityError.

г) FlashVars: иногда, при размещении SWF в HTML страничке или при загрузке из другого SWF, передают путь до домена и\или иные данные через FlashVars (что на самом деле – плохо, т.к. это явная «дыра» для отвязки от доменов):

FlashVars можно передать в качестве параметра:
или через имя файла:

Дотянуться до FlashVars можно так:
— в AS3 – root.loaderInfo.parameters.var1
— в AS2 – _root.var1

Привязка к доменам без получения текущего URL или домена

Этот способ основан на кроссдоменной политике безопасности. Привязываемый SWF при запуске пытается загрузить по прямому пути «специальный» файл-пустышку с определённого хоста, на котором находится файл crossdomain.xml с разрешением загрузки ресурсов только с доверенных доменов, на одном из которых и должен находиться SWF. Соответственно, если «ворованный» SWF файл будет обращаться к «специальному» файлу с домена, не прописанного в crossdomain.xml, произойдет нарушение изолированной среды (sandbox security violation) и «специальный» файл не загрузится. Также при этом сгенерируется исключение и сработает событие SecurityErrorEvent.SECURITY_ERROR у экземпляра класса LoaderInfo ( Loader.contentLoaderInfo ). Это позволит определить то, что SWF находится не там, где должен бы.
К «специальному» файлу следует обращаться по прямому пути, чтобы предотвратить его подмену.

Определение локального запуска

Локальный запуск SWF можно определить с помощью получения ссылки на SWF или HTML и проверки её на наличие подстроки «file://».
Если SWF запущен вне HTML, то метод ExternalInterface.call вернёт null.
Также можно проверить тип FP, в котором работает SWF, с помощью Capabilities.playerType :

  • «ActiveX» – при проигрывании через ActiveX FP, который, например, используется в IE
  • «Desktop» – для среды выполнения Adobe AIR (кроме SWF-содержимого, загруженного HTML страницей, со свойством Capabilities.playerType имеющим значение «PlugIn»)
  • «External» – при проигрывании через внешний FP или при запуске из-под Flash Professional IDE
  • «PlugIn» – при проигрывании через браузерный плагин (и для SWF-содержимого, загруженного HTML страницей в AIR приложении)
  • «StandAlone» – при проигрывании через автономный FP (при запуске локального SWF файла в браузерах, значение Capabilities.playerType != «StandAlone» )

Ещё один способ – с помощью сравнения Security.sandboxType с Security.REMOTE .

Все эти приёмы имеют свои преимущества и недостатки — некоторые не требуют сервера, но требуют перекомпиляции SWF файла при изменении доменов, к которым должна осуществляться привязка, а некоторые — наоборот.
В кодах к статье (ссылка на архив есть в конце статьи), в папке «1-URL Lock», вы найдёте пример с реализацией некоторых из описанных методов и пару примеров патчей одного из методов.
Внимание! Большинство приёмов URL-Lock можно обойти, работая из-под локального сервера, такого, как Denwer или XAMPP.

— 2. Переменные, ресурсы и классы

Обычно о переменных и ресурсах заботятся при написании игр. Конечно, лучше держать важную логику, данные и переменные вне клиента, но, увы, такая возможность есть не всегда, поэтому, иногда следует думать о том, как сократить количество лазеек для жульничества.
Подменой ресурсов и классов пользуются не так часто, как редактированием переменных, но всё-таки пользуются, поэтому, я попробую рассказать, как это делают и как этому можно помешать (защититься от этого невозможно).

Защита переменных

Переменные надо прятать и защищать от изменений. Наиболее простой способ скрытия – написание своих «обёрток» вокруг базовых классов.
Например, CryptInt, CryptString и т.д. В самих классах можно написать методы для получения и отдачи значения, шифруя или расшифровывая его, что спрячет переменную в памяти. Взгляните на реализацию классов CryptInt и CryptString в кодах к статье, в папке «2-Memory&Domain\MemoryExample».
Также, для сокрытия значений переменных, можно разбивать их на составляющие, перемешивать, сдвигать и т.д. Можно даже попробовать написать некий конвейер, который будет перемещать скрываемое значение из одних переменных в другие, освобождая использованные переменные для GC (Garbage Collector). В качестве «временных хранилищ» для таких вот перерабатываемых переменных, можно использовать ByteArray, возможно, с привлечением «Алхимии» (fastmem из Azoth, Memory из Apparat).
А чтобы переменные не смогли поменять, даже если их найдут, то можно использовать, например, сравнение значения переменной с эталоном. Причём сравнение можно производить как при изменении переменной или обращении к ней, так и через заданные промежутки времени.

Подмена ресурсов

Подменить SWF целиком, либо подгружаемые внешние файлы можно в кэше браузера. В фальшивом SWF файле, или в подменённом ресурсе могут быть произведены любые изменения графики (размеры, прозрачность, сдвиг, частота кадров и т.д.) и кода (который делает то, чего бы вам меньше всего хотелось).
Чтобы усложнить задачу недоброжелателю (гарантированно защититься от подмены нельзя), следует проверять подлинность загружаемых данных и самого себя – можно, например, хранить MD5 и сравнивать при загрузке, причем MD5 хранить где-нибудь подальше и в зашифрованном виде.
Если SWF общается с сервером – производить скрытые проверки – отсылать на сервер MD5 загружаемых ресурсов, например.

Если есть возможность, то, для предотвращения подмены, внешние SWF и иные ресурсы можно хранить в теле основного SWF в зашифрованном виде и загружать их с помощью Loader.loadBytes , предварительно достав их из себя. Loader.loadBytes не сохраняет загружаемые данные в кэш браузера, но, в то же время, Ваш главный SWF будет закэширован. Подробнее об использовании Loader.loadBytes в таких случаях написано в одном из следующих разделов статьи.
Также можно запрашивать ресурсы и другие SWF файлы с сервера, лежащие в зашифрованном виде, далее расшифровывать их и загружать через Loader.loadBytes .

Переопределение классов

Скажу сразу, что гарантированно от этого защититься также не получится.
Подменять классы можно с помощью загрузки целевого SWF в ApplicationDomain загрузчика. Чтобы это сделать, можно написать загрузчик, содержащий класс с таким же именем, что и у подменяемого, и загрузить SWF в свой домен:
Таким образом, загружаемый SWF вынужден будет «общаться» с классом из своего загрузчика. Примеры реализации Вы сможете посмотреть в кодах к статье, в папке «2-Memory&Domain\applicationDomain». Вы встретите там примеры подмены классов с помощью загрузки в дочерний и в свой домен. В «жертве» Вы сможете найти несколько вариантов проверки на загруженность (которые обходятся заменой класса, в котором они содержатся).
Можно попытаться воспрепятствовать этому, загружая основной SWF через собственный загрузчик в новый ApplicationDomain:
и установив прочную связь между загрузчиком и основным SWF так, чтобы их было очень трудно «разлучить». Однако, если подменят загрузчик и сумеют эту связь сохранить, то эти усилия будут напрасны.

Защищайте только действительно важные переменные и данные, комбинируйте способы.
По возможности, выносите логику работы с важными переменными на сервер, а ресурсы подписывайте и проверяйте на изменения.

— 3. Водяные знаки (watermarks)

Могут использоваться для защиты от копирования, нелегального использования, а также в рекламных целях.

Вот некоторые их типы:

  1. Хорошо заметные элементы: текст, логотип, изображение и т.д.
    Если метка «впаяна» (относится как просто к изображениям, так и к графике в SWF), то её удаление придётся осуществлять вручную, редактируя данные, которые подверглись применению метки, что может оказаться очень сложной или вовсе невыполнимой задачей.
    Если же метка лежит отдельно (либо добавляется программно), например, на самом верхнем «слое» в SWF, то шансы аккуратно её удалить гораздо выше.
  2. Скрытые элементы. Они могут быть где угодно. От таких водяных знаков зачастую невозможно избавиться, т.к. никто кроме их создателей не будет знать, где искать. Такие метки должны быть уникальными, дабы была возможность доказать в суде, что это действительно метки, и что их невозможно повторить.

Этот пункт получился весьма ущербным, однако, сказать тут больше особо нечего, просто не забывайте, что такие средства защиты тоже существуют.

— 4. «Упаковывание» SWF

Совсем спрятать SWF невозможно, но есть как минимум один, весьма известный способ, который может немного усложнить поиск искомого SWF незадачливым злоумышленникам.

Вы можете добавить SWF в свой flex или flash проект с помощью тэга Embed, например, так:
Добавленный таким образом файл (это может быть любой двоичный файл или несколько файлов, если тэгов Embed будет несколько) помещается в тэг DefineBinaryData.
Далее можно загрузить «упакованный» таким образом файл с помощью Loader.loadBytes примерно так:
Существует масса инструментов для разбора SWF файлов и манипуляции с тэгами, благодаря которым существует возможность заменять или добавлять тэг DefineBinaryData.
Зная всё это, можно набросать свой простой «упаковщик» для автоматизации процесса. Перед оборачиванием, SWF можно как-нибудь преобразовать, например, обработав простым и быстрым симметричным xor’ом, а в загрузчике (который будет содержать «упакованный» SWF) написать код, который будет расшифровывать хранящийся в нём SWF, и уже затем его загружать. Простое «шифрование» с помощью xor нужно лишь для защиты от автоматической обработки декомпиляторами, чтобы SWF файл не находился внутри загрузчика в «чистом виде», более сложное шифрование бессмысленно.
Бывает, файлы «внедряют» и другими способами, например, в виде BitmapData, а также, создают несколько уровней вложенности.

Пример реализации простейшего упаковщика Вы сможете найти в кодах к статье, в папке «3-SWFPacker». Также там лежат два файла: orig.swf и packed.swf – можете попробовать их декомпилировать и сравнить.
Этот способ обходится, как минимум, двумя путями:
— исследование алгоритма расшифровщика в загрузчике и написание собственного расшифровщика (трудоёмко, особенно при большой вложенности загрузчиков)
— сохранение участка памяти, в котором находится уже распакованный и загруженный в FP SWF файл (просто и быстро, особенно, если не использованы средства защиты от сохранения из памяти, о которых написано ниже)

— 5. Динамическая генерация кода и редактирование SWF

Меня уже неоднократно спрашивали – возможно ли во flash в реальном времени генерировать код или создавать и редактировать другие SWF файлы? Ответ – да, это возможно!
Что касается кода, попробуйте AS3Commons ByteCode. Этот проект позволит Вам собирать и выполнять в реальном времени байткод.
Вы можете создавать классы с различными методами и свойствами с нуля, или наследуясь от других классов. Тела методов, например, могут описываются с помощью байткода линейно — methodBuilder.addOpcode(Opcode.getlocal_0) , или сразу блоками:
Вы можете загрузить сгенерированный код в AVM с помощью abcBuilder.buildAndLoad() .
Также для манипуляций с байткодом Вы можете попробовать as3abc, который, по словам автора, является частичным портом замечательного framework’а Apparat от небезызвестного Joa Ebert’а.
Если же Вы мечтаете о динамическом исполнении скрипта, а не байткода, то посмотрите на as3scriptinglib. Используя этот проект, Вы сможете в реальном времени компилировать и выполнять ActionScript 3/ECMAScript скрипты, включая JavaScript. Посмотреть на то, как это работает можно во flex демо-приложении. К сожалению, проект давно не обновляется.

Для экспериментов с самим SWF файлом и его структурой, попробуйте as3swf или swfassist.

Возможность генерации кода на лету, а также возможности редактирования и создания SWF в реальном времени, позволяют создавать различные сложные сценарии и приёмы для запутывания злоумышленника и скрытия Вашего кода. Вот, например первые 3 приёма, что пришли мне на ум:

  1. Генерировать и исполнять код\байткод на клиентской стороне по частям, приходящим от сервера, оставляя недоброжелателям в оригинальном SWF из всего кода, лишь то, что Вам не жалко им оставить (код свободных библиотек, кнопок и т.д.) + код расшифровщика и «строителя» уже финального кода.
  2. Собирать SWF по частям на клиентской стороне, аналогично трюку с кодом – можно собирать по тэгам, получая их от сервера, или, распаковывая поодиночке из зашифрованных данных, упакованных в загрузчике.
  3. Создавать самомодифицирующийся в процессе исполнения код, который, например, будет по определённым правилам или шаблонам генерировать одни и те же методы разными способами. Например, i++ можно реализовать как i+=1 (и это будет разный байткод, по крайней мере, он сейчас разный, в FP 10.1), также циклы могут быть реализованы по-разному, и т.д.
    Возможно, удастся так исхитриться, чтобы сгенерированный код изменял те методы, которые его сгенерировали. Например, чтобы в следующей итерации их выполнения сгенерировались уже другие классы и методы, тем самым значительно усложняя и запутывая код, чтобы, в случае его получения злоумышленником, последнему пришлось потратить как можно больше времени на разбор всей этой «каши».
    Предполагаю, что это довольно сложный (или даже невозможный во flash) трюк. Реально работающей реализации этой идеи на flash я пока не встречал. Если Вы встречали – то подскажите где посмотреть, буду рад изучить.

— 6. Запутывание кода (obfuscation) и скрытие данных

Сначала об обфускации. Ей могут подвергаться как исходный так и скомпилированный в байткод код. Обфускация исходного кода не так удобна и эффективна, запутывание байткода выглядит куда как привлекательней, т.к. исходный код должен удовлетворять требованиям компилятора, чего не скажешь о байткоде, в котором, к тому же, есть куда больший простор для проявления фантазии и смекалки.
Байткод обфускация может включать в себя переименование элементов в бессмысленные и недопустимые для компилятора имена, использование некоторых анти-декомпиляторских трюков, скрытие и «замусоривание» кода и др.

Переименование — это, пожалуй, единственный необратимый и 100% работающий способ хоть что-то спрятать во flash. Суть метода заключается в изменении у методов, свойств, пакетов и других элементов имён, которые сохраняются после компиляции, но не используются при выполнении кода. Автоматически восстановить оригинальные имена невозможно, придётся это делать вручную, догадываясь о них по смыслу во время исследования кода. После обфускации новые имена могут содержать недопустимые символы или зарезервированные слова, что не позволит с лёгкостью перекомпилировать и использовать код, полученный после декомпиляции.

Иногда при обфускации байткода расставляют «ловушки» для декомпиляторов, основанные на том, что декомпиляторы анализируют код комплексно, блоками, в отличие от FP, который исполняет его линейно, например:

  • Некорректный «мёртвый код» — создаётся искусственный условный переход, который всегда отрабатывает только одну ветку. Таким образом, во второй ветке мы имеем код, который никогда не выполнится, но будет обрабатываться декомпиляторами. И если там что-то непредсказуемое (а мы можем сделать там что угодно, т.к. FP до туда никогда не доберётся), то некоторые декомпиляторы могут повести себя необычно – например, аварийно завершиться.
  • Непредсказуемые байты в тех областях, которые игнорирует FP, но которые не всегда игнорируют и корректно обрабатывают декомпиляторы.

Кроме того, код можно просто «замусорить», увеличив его в объёмах и снизив его читабельность. Это может негативно сказаться на производительности.

Скрытие данных можно осуществлять разными способами, например:

  • Скрытие в SWF тэгах. Как я уже говорил, можно использовать flex-тэг Embed для встраивания любых файлов в SWF тэг DefineBinaryData, однако, можно создать и SWF тэг своего типа (FP такие тэги просто пропускает) с любыми данными, и затем извлекать их во время выполнения с помощью самораспарсивания.
    Пример есть в файлах к статье, в папке «4-CustomTag» — там находится проект на основе уже упомянутой библиотеки as3swf (изменён класс com.codeazur.as3swf.factories.SWFTagFactory и добавлен com.codeazur.as3swf.tags.TagCustom ). При запуске, SWF проверит — нет ли уже в нём нового тэга, и если есть — то выведет текст из него в текстовое поле, а если тэг не найдётся, то создаст сам в своей копии новый тэг со строкой, загрузит получившийся SWF в себя же с помощью Loader.loadBytes() и ещё предложит сохранить его в новый SWF файл.
  • Пользовательские мета данные. Для внедрения своих метаданных, сначала их необходимо объявить в коде (можно перед объявлением класса, метода, переменной):
    А затем добавить их названия в «Additional compiler arguments» таким образом: -keep-as3-metadata+=FocusMeta,Cool. После этого, Вы сможете обращаться к своим мета данным через XML, который можно получить с помощью describeType() :

Некоторые декомпиляторы и дизассемблеры позволяют с лёгкостью находить и исследовать пользовательские тэги и метаданные.

Для того, чтобы самостоятельно научиться создавать качественные помехи декомпиляторам, Вам придётся изучить то, как декомпиляторы исследуют байткод и SWF в целом. Но помните — разработчики декомпиляторов постоянно развивают свои продукты и если Ваш SWF с хитрыми приёмами попадёт к ним, то вскоре эти приёмы могут перестать работать.
Существуют утилиты для защиты SWF, применяющие только уловки против декомпиляторов или методики «упаковки», без обфускации имён, что позволяет получить чуть ли ни оригинальный исходный код, с помощью качественных публичных или собственных декомпиляторов, который компилируется без ошибок и хорошо читается. Ниже я расскажу о «правильных» инструментах, на которые следует обратить внимание.

— 7. Защита от сохранения SWF файла из памяти

Гарантированно защититься от дампа из памяти нельзя. Однако, есть несложный приём, который может усложнить процесс – можно создать множество фальшивых SWF-заголовков (именно по ним обычно ищут SWF файлы в памяти), которые помогут оригинальному SWF затеряться среди них. Чтобы Ваш SWF файл не выделялся на фоне других, можно создать массу фальшивых заголовков с размерами = размерам Вашего SWF файла.
Чтобы заголовки были видны в памяти, достаточно записать их в ByteArray. Вот пример реализации этого способа, вытянутый из загрузчика одного из протекторов:
Как Вы могли догадаться, swfBytes – это массив байт с началом «шаблонного» заголовка и «настройками» для создания «фальшивых» заголовков, а в цикле длина у «шаблонных» заголовков заполняется случайным значением в заданном диапазоне.

— 8. Инструментарий исследователя flash

Основываясь на собственном опыте, я бы порекомендовал эти инструменты (цены указаны на конец 2010 года):

Декомпиляторы:

  • Action Script Viewer (ASV) – умно анализирует код, строит timeline, видит все тэги, очень многое умеет. Стоимость лицензии на одного пользователя – $80.
  • AS3 Sorcerer (от разработчика ASV) – декомпилирует только код, для анализа кода используется движок ASV, работает быстро и очень качественно. Если Вы приобретали ASV в 2010 году, то лицензию на AS3 Sorcerer Вам предоставят бесплатно. Стоимость лицензии с бесплатными обновлениями на 3 месяца — $22.
  • Sothink SWF Decompiler – можно пользоваться на незащищённых проектах, если под рукой не оказалось ASV. Стоимость лицензии — $79.99.

Дизассемблеры (для работы с байткодом):

  • ASV и Sothink умеют показывать байткод, но этого не всегда достаточно.
  • Nemo440 – «Advanced ActionScript 3/ABC2/Flex 2/Flex 3/Flex 4/AIR disassembler». Бесплатен.
  • Yogda – «AVM2 bytecode workbench» – позволяет ассемблировать, патчить байткод, есть встроенная документация по байткоду, иногда падает при анализе защищённых SWF, однако периодически обновляется и обрастает функционалом. Бесплатен.
  • RABCDAsm – «Robust ABC (ActionScript Bytecode) [Dis-]Assembler» – замечательный консольный ассемблер\дизассемблер байткода. Бесплатен (+доступен исходный код).

Протекторы\обфускаторы:

  • secureSWF — из всей массы продуктов этой категории, что мне удалось попробовать, он единственный сумел качественно позаботиться о целостности и работоспособности всех подопытных приложений и при этом качественно выполнить свою основную задачу. Конечно же, не бывает идеальных продуктов в этой области, но secureSWF даёт очень хороший контроль над всем процессом защиты и позволяет тонко настроить различные параметры. Например, Вы можете настроить переопределяющие правила для переименования, установить уровень «замусоривания» кода и т.д. В самой дорогой редакции, Вы получаете также возможность «упаковывать» SWF или привязать её к домену. К сожалению, цена на этот продукт весьма высока: стоимость Standard редакции составляет $199.
  • irrFuscator — может Вам приглянуться за его возможности по обфускации исходного кода перед компиляцией, однако, я считаю, что такой подход значительно хуже по своему качеству, чем байткод обфускация, т.к. не позволяет использовать запрещённые компилятором символы и различные трюки с байткодом. Этот продукт также умеет работать на уровне байткода, но проекты, которые я пробовал им «накрывать» довольно часто оставались неработоспособными. Стоимость Standard редакции составляет 79 евро.
  • OBFU – пожалуй, это самый дорогой обфускатор для flash, который мне доводилось видеть ( стоимость – 1500 евро ). Автор обфускатора — Николя Канасье, создатель haXe. Не ясно – поддерживает ли он AS3, т.к. примеры, выложенные на сайте проекта, написаны на as2 и датированы 2005 годом. К сожалению, попробовать его в действии мне пока не довелось, поэтому если вдруг Вы его когда-то пробовали, то не поленитесь, напишите отзыв о нём в комментариях.

Также прошу обратить внимание, что Amayeta SWF Encrypt, DComSoft SWF Protector, Mochi Encryption – это не то, чем Вам стоило бы «защищать» свои проекты (на данный момент), вы потратите Ваши деньги на бесполезную защиту.
Более того, Вы можете и самостоятельно реализовать простейшую обфускацию, как, например, это сделано в примере от makc3d.

Депротекторы\декрипторы и т.д.:

  • SWF Reader – проект одного польского умельца — многофункциональный редактор, позволяет работать со структурами, тэгами и т.д. Также имеет встроенные декрипторы\депротекторы для некоторых известных продуктов (в частности, распаковщики для doSWF, secureSWF). Cтоимость лицензии – 10 евро.
  • SWF Decrypt – поможет Вам избавиться от Amayeta SWF Encrypt и DComSoft SWF Protector (Mochi Encryption также в планах разработчика). Бесплатен.

Разное:

  • SWiX – отличная утилита для редактирования тэгов SWF файла в удобном XML представлении. Бесплатна.

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

— эпилог

Резюмируя, можно сказать, что, умело пользуясь подручными средствами для защиты своих проектов, Вы сможете отсеять некоторую аудиторию злоумышленников. Однако, если за исследование вашего SWF файла возьмётся профессионал, то, вероятно, он не остановится перед препятствиями и доведёт дело до конца, особенно, если он мотивирован интересной задачей или достаточным денежным вознаграждением. Поэтому всегда здраво оценивайте свой вклад в защиту своих проектов – не тратьте на это слишком много времени и средств, если это того не стоит.
И ещё — не компилируйте SWF с отладочной информацией, т.к. она содержит множество полезных потенциальному взломщику данных, не говоря уже о снижении производительности.

Спасибо, что прочитали этот нелёгкий для восприятия материал. Надеюсь, Вы нашли что-то новое для себя. Любые пожелания, замечания и конструктивные предложения Вы можете оставить в комментариях, буду Вам весьма благодарен.

Материалы для изучения и источники информации для этой статьи (беспорядочно):

  1. Презентация Claus Wahlers «Hacking SWF» с FITC Amsterdam 2010.
  2. Доклад Симонова Валентина (valyard) «Кто и как взламывает наши игры» с FlashGAMM 2010
  3. Статья Никиты Лещенко на английском о том, как по-простому защитить ресурсы и код, используя шифрование.
  4. Статья от romamik «Защита своими руками».
  5. Статья от Nautilus «Как защитить вашу игру от ребрендинга».
  6. Статья от puzzlesea «Robolander, 25 days later. Защита, борьба с китайцами».
  7. Статья от flashco «Обфускаторы: от бесплатного до €1500».
  8. Alexis’ SWF Reference — описание тэгов всех версий формата, описание заголовка SWF файла и многое другое.
  9. OWASP – в некотором роде вики по вопросам безопасности, относящихся к flash (ссылки на статьи, инструменты и т.д.).
  10. Очень впечатляющая статья о модели безопасности во flash от senocular под названием «Security Domains, Application Domains, and More in ActionScript 3.0».
  11. Статьи от Adobe о безопасности во flash.
  12. Официальная статья от Adobe о безопасности во FP 10 (White Paper).

Также в данной статье и кодам к ней могут быть использованы различные материалы из неуказанных тут источников, о которых я не вспомнил.

Чем декомпилироать и редактировать .swf и .fla фаилы

SWF Decompiler — это мощный конвертер SWF файлов в FLA, который позволяет декомпилировать Flash видеоролики, экспортировать SWF элементы в разнообразные форматы и редактировать SWF ролики (динамические тексты, гиперссылки и др.) . С помощью одного клика мыши можно сохранить звуки, видео, картинки, шейпы, морф-объекты, шрифты, тексты, кнопки, спрайты и ActionScript из любого SWF файла непосредственно на жесткий диск.

SWF Decompiler позволяет экспортировать Flash видео в AVI, MPEG, FLV и FLA, сохранять звуки как WAV или MP3, изображения — как PNG, JPEG и BMP, текст — как RTF, TXT и HTML. SWF Decompiler позволяет конвертировать весь SWF файл во FLA или экспортировать отдельные Flash источники во FLA формат. SWF Decompiler предоставляет детальную информацию о всем Flash ролике, шейпах, изображениях, морфах и т. д. , а также отслеживает их расположение во фреймах и спрайтах и даже сахраняет оригинальные названия фреймов, ActionScripts и спрайтов.

swf_shapefillsol >(PHP 4)

swf_shapefillsolid — Set the current fill style to the specified color

Описание

Sets the current fill style to solid, and then sets the fill color to the given color.

Список параметров

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

НОВОСТИ ФОРУМА
Рыцари теории эфира
01.10.2020 — 05:20: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Youtube]69vJGqDENq4[/Youtube][/center]
[center]14:36[/center]
Osievskii Global News
29 сент. Отправлено 05:20, 01.10.2020 г.’ target=_top>Просвещение от Вячеслава Осиевского — Карим_Хайдаров.
30.09.2020 — 12:51: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Ok]376309070[/Ok][/center]
[center]11:03[/center] Отправлено 12:51, 30.09.2020 г.’ target=_top>Просвещение от Дэйвида Дюка — Карим_Хайдаров.
30.09.2020 — 11:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Youtube]VVQv1EzDTtY[/Youtube][/center]
[center]10:43[/center]

интервью Раввина Борода https://cursorinfo.co.il/all-news/rav.
мой телеграмм https://t.me/peshekhonovandrei
мой твиттер https://twitter.com/Andrey54708595
мой инстаграм https://www.instagram.com/andreipeshekhonow/

[b]Мой комментарий:
Андрей спрашивает: Краснодарская синагога — это что, военный объект?
— Да, военный, потому что имеет разрешение от Росатома на манипуляции с радиоактивными веществами, а также иными веществами, опасными в отношении массового поражения. Именно это было выявлено группой краснодарцев во главе с Мариной Мелиховой.

[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

Что такое код swf_shapefillsolid

swf_shapefillsolid — Set the current fill style to the specified color

Description void swf_shapefillsolid ( float r, float g, float b, float a )

The swf_shapefillsolid() function sets the current fill style to solid, and then sets the fill color to the values of the rgba parameters.

Пред. Начало След.
swf_shapefilloff Уровень выше swf_shapelinesolid

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

Получение класса из внешнего swf файла

Создание сайтов
Красивый дизайн и удобное управление.

Создание интернет магазинов
Эффективный инструмент для расширения вашего бизнеса.

Продвижение сайтов
Эффективная интернет реклама — новые возможности для вашего бизнеса.

Отдел Архитектурной визуализации

Отдел 3D и 2D анимации

Иногда бывает необходимость создавать объекты внутри основного flash-модуля на основе классов, которые находятся в подгружаемом swf-файле. Это может быть изменчивый скин, различные анимированные икноки и т.п. Назвать этот процесс можно по разному, например аттач мувика из подгружаемого swf-файла или клонирование объектов из внешних файлов.

Для исполнения этого фокуса необходимо извлечь классы из загружаемого swf. А затем легко и непринужденно создавать на их основе объекты там где это Вам необходимо.

А делается это следующим образом:

1. Создаем swf файл содержащий в себе все необходимые классы. Делаем:

  • Создаем новый fla файл
  • Добавляем/создаем произвольный мувик
  • Переходим в библиотеку (Ctrl + L)
  • Щелкаем правой кнопкой на созданном мувике и выбираем из списка Properties
  • Ставим галочки «Export for ActionScript» и «Export in first frame»
  • Запоминаем (плохая память — записываем) имя класса в поле Class (в нашем примере: MyClass)

2. В основном модуле, например в классе Main, который цепляется к fla исходнику с основным содержимым добавляем:

PS. Один маленький нюанс.

obj:My >
работать не будет и мы получим страшный еррор. Так что смело пишите

Илон Маск рекомендует:  Что такое код pg_lo_tell
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL