Что такое код swf_enddoaction

Содержание

Вызов стороннего swf

Братцы нужна помощь.

Дайте код (кто может) AS2 для открытия .swf объекта из папки.

а именно. чтоб при нажатии на кнопку открывался банер.

Раньше это выполнял XML Обычной ссылкой. а теперь задача открыть банер из нутри проекта.

мне нужен скрипт который можно будет вставить на обычную кнопку. и чтоб он открыл swf объект.

З,Ы,
Файл который нужно открыть лежит в «./baner/mine.swf»
сам проект в корне.
кнопку назвал btn

01.07.2011, 16:43

Вызов приватной функции из swf
Всем привет! Появился вопрос. Через PreloadSwf подгружаю свою swf , задача постоянно вызывать.

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

SWF внутри SWF + передача данных в JS
Здравствуйте, уважаемые форумчане! Если вы не против, перейду сразу к сути: Сам я, к.

Загрузка swf в контейнер другой swf
Подскажите, как в as3 сделать, чтобы подгружаемая флешка появлялась не на тойже сцене, а в окошке.

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

do_action() — создаёт хук (крючок), на месте которого в коде можно выполнить произвольную функцию

Принцип работы do_action() очень похож на принцип работы функции apply_filters() — всё начинается с кода, изменять который пользователю/разработчику сайта не стоит, и в этом коде есть место в котором потенциально будет нужно выполнить какой-то код. И в это место при помощи do_action() ставится хук, который позволяет это осуществить

Функция ничего не возвращает.

Пример использования do_action()

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

В это место кода вы вставляете функцию do_action()

Как открыть файл 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

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

do_action() WP 1.2.0

Создает событие (зацепку для произвольной функции). Чтобы функция сработала в момент события её нужно подключить к этому событию с помощью функции add_action().

Кроме событий в WP есть еще фильтры (filters), принцип работы такой же. Разницы лишь в том, что фильтр должен вернуть полученную переменную, т.е. он фильтрует (изменяет) данные, а событие позволяет запустить пользовательскую функцию в момент срабатывания этого события. Фильтры запускаются функцией apply_filters()

Возвращает

Null. Ничего не возвращает.

Использование

Примеры

#1. Пример использования

Эту функцию можно использовать в плагинах, темах и т.д., когда нужно внедрится в процесс выполнения кода, откуда-нибудь из другого места. Например, «зацепку» (хук) (do_action) мы установили в плагине, а «цепляться» за нее будем из файла functions.php в тот момент, когда будет срабатывать наша «зацепка».

Допустим, мы использовали такой код в плагине:

Теперь мы может сделать какое-нибудь действие в момент срабатывания функции do_action и при этом описать наше действие можно, например, из файла functions.php, разместив в нем такой код:

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

Обзор программ для работы с 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-файлы.

Илон Маск рекомендует:  Тег tt

Программа 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-файлы, что дает возможность изучить послойную структуру документа.

Способы «защиты» 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. Скрытые элементы. Они могут быть где угодно. От таких водяных знаков зачастую невозможно избавиться, т.к. никто кроме их создателей не будет знать, где искать. Такие метки должны быть уникальными, дабы была возможность доказать в суде, что это действительно метки, и что их невозможно повторить.
Илон Маск рекомендует:  Использование extmysqli обзор и подготовленные выражения

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

— 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).

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

FPublisher

Web-технологии: База знаний

Документация PHP

swf_enddoaction

swf_enddoaction — End the current action

Описание

void swf_enddoaction ( void )

Ends the current action started by the swf_startdoaction() function.

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

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

Смотрите также

Последние поступления:

ТехЗадание на Землю

Размещена 14 марта 2020 года

Пpоект Genesis (из коpпоpативной пеpеписки)

Шпаргалка по работе с Vim

Размещена 05 декабря 2020 года

Vim довольно мощный редактор, но работа с ним не всегда наглядна.
Например если нужно отредактировать какой-то файл например при помощи crontab, без знания специфики работы с viv никак.

Ошибка: Error: Cannot find a val >Размещена 13 сентабря 2020 года

Если возникает ошибка на centos 5 вида
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/

Илон Маск рекомендует:  Тег progress

Linux Optimization

Размещена 30 июля 2012 года

Linux.yaroslavl.ru

Шаг 4: Обновите драйверы устройств на вашем компьютере

Ошибки Action.swf могут быть связаны с повреждением или устареванием драйверов устройств. Драйверы с легкостью могут работать сегодня и перестать работать завтра по целому ряду причин. Хорошая новость состоит в том, что чаще всего вы можете обновить драйверы устройства, чтобы устранить проблему с SWF.

В связи с временными затратами и общей сложностью обновления драйверов мы настоятельно рекомендуем использовать утилиту обновления драйверов, например DriverDoc (разработана Microsoft Gold Partner), для автоматизации этого процесса.

Пожалуйста, учтите: Ваш файл action.swf может и не быть связан с проблемами в драйверах устройств, но всегда полезно убедиться, что на вашем компьютере установлены новейшие версии драйверов оборудования, чтобы максимизировать производительность вашего ПК.

Шаг 5: Используйте Восстановление системы Windows, чтобы «Отменить» последние изменения в системе

Восстановление системы Windows позволяет вашему компьютеру «отправиться в прошлое», чтобы исправить проблемы action.swf. Восстановление системы может вернуть системные файлы и программы на вашем компьютере к тому времени, когда все работало нормально. Это потенциально может помочь вам избежать головной боли от устранения ошибок, связанных с SWF.

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

Чтобы использовать Восстановление системы (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. В строке поиска введите «Восстановление системы» и нажмите ENTER.
  3. В окне результатов нажмите Восстановление системы.
  4. Введите пароль администратора (при появлении запроса).
  5. Следуйте инструкциям Мастера для выбора точки восстановления.
  6. Восстановить ваш компьютер.

Шаг 6: Удалите и установите заново программу Sun Solutions CD, связанную с Action.swf

Инструкции для Windows 7 и Windows Vista:

  1. Откройте «Программы и компоненты», нажав на кнопку Пуск.
  2. Нажмите Панель управления в меню справа.
  3. Нажмите Программы.
  4. Нажмите Программы и компоненты.
  5. Найдите Sun Solutions CD в столбце Имя.
  6. Нажмите на запись Sun Solutions CD.
  7. Нажмите на кнопку Удалить в верхней ленте меню.
  8. Следуйте инструкциям на экране для завершения удаления Sun Solutions CD.

Инструкции для Windows XP:

  1. Откройте «Программы и компоненты», нажав на кнопку Пуск.
  2. Нажмите Панель управления.
  3. Нажмите Установка и удаление программ.
  4. Найдите Sun Solutions CD в списке Установленные программы.
  5. Нажмите на запись Sun Solutions CD.
  6. Нажмите на кнопку Удалить справа.
  7. Следуйте инструкциям на экране для завершения удаления Sun Solutions CD.

Инструкции для Windows 8:

  1. Установите указатель мыши в левой нижней части экрана для показа изображения меню Пуск.
  2. Щелкните правой кнопкой мыши для вызова Контекстного меню Пуск.
  3. Нажмите Программы и компоненты.
  4. Найдите Sun Solutions CD в столбце Имя.
  5. Нажмите на запись Sun Solutions CD.
  6. Нажмите Удалить/изменить в верхней ленте меню.
  7. Следуйте инструкциям на экране для завершения удаления Sun Solutions CD.

После того, как вы успешно удалили программу, связанную с action.swf (например, Sun Solutions CD), заново установите данную программу, следуя инструкции Sun Microsystems.

Совет: Если вы абсолютно уверены, что ошибка SWF связана с определенной программой Sun Microsystems, удаление и повторная установка программы, связанной с action.swf с большой вероятностью решит вашу проблему.

Шаг 7: Запустите проверку системных файлов Windows («sfc /scannow»)

Проверка системных файлов представляет собой удобный инструмент, включаемый в состав Windows, который позволяет просканировать и восстановить поврежденные системные файлы Windows (включая те, которые имеют отношение к action.swf). Если утилита проверки системных файлов обнаружила проблему в SWF или другом важном системном файле, она предпримет попытку заменить проблемные файлы автоматически.

Чтобы запустить проверку системных файлов (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите «command» в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите «sfc /scannow» и нажмите ENTER.
  8. Проверка системных файлов начнет сканирование на наличие проблем action.swf и других системных файлов (проявите терпение — проверка может занять длительное время).
  9. Следуйте командам на экране.

Шаг 8: Установите все доступные обновления Windows

Microsoft постоянно обновляет и улучшает системные файлы Windows, связанные с action.swf. Иногда для решения проблемы SWF нужно просто напросто обновить Windows при помощи последнего пакета обновлений или другого патча, которые Microsoft выпускает на постоянной основе.

Чтобы проверить наличие обновлений Windows (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите «update» в строке поиска и нажмите ENTER.
  3. Будет открыто диалоговое окно Обновление Windows.
  4. Если имеются доступные обновления, нажмите на кнопку Установить обновления.

Шаг 9: Произведите чистую установку Windows

Предупреждение: Мы должны подчеркнуть, что переустановка Windows займет очень много времени и является слишком сложной задачей, чтобы решить проблемы action.swf. Во избежание потери данных вы должны быть уверены, что вы создали резервные копии всех важных документов, изображений, программ установки программного обеспечения и других персональных данных перед началом процесса. Если вы сейчас е создаете резервные копии данных, вам стоит немедленно заняться этим (скачать рекомендованное решение для резервного копирования), чтобы защитить себя от безвозвратной потери данных.

Пожалуйста, учтите: Если проблема action.swf не устранена после чистой установки Windows, это означает, что проблема SWF ОБЯЗАТЕЛЬНО связана с аппаратным обеспечением. В таком случае, вам, вероятно, придется заменить соответствующее оборудование, вызывающее ошибку action.swf.

Учебник РНР
Назад Вперёд

swf_enddoaction — заканчивает текущую акцию.

Описание

void swf_enddoaction (void)

Заканчивает текущую акцию , начатую функцией swf_startdoaction() .

Что такое Action.swf и как его исправить?

Совместима с Windows XP, Vista, 7, 8 и 10

Обзор Action.swf

Что такое Action.swf?

Action.swf представляет собой разновидность файла SWF, связанного с Sun Solutions CD, который разработан Sun Microsystems для ОС Windows. Последняя известная версия Action.swf: 1.0.0.0, разработана для Windows 98 98. Данный файл SWF имеет рейтинг популярности 1 звезд и рейтинг безопасности «Неизвестно».

Почему у меня наблюдаются ошибки в файлах типа SWF?

Если Windows не может нормально загрузить файл Action.swf, или файл SWF заражен вирусом или вредоносным ПО, вы увидите сообщение об ошибке. Для получения дополнительной информации см. «Причины ошибок Action.swf» ниже.

В каких случаях появляются ошибки в файлах типа SWF?

Ошибки SWF, например, связанные с action.swf, чаще всего появляются во время запуска компьютера, запуска программы или при попытке использования специфических функций в вашей программе (например, печать).

Распространенные сообщения об ошибках в Action.swf

Наиболее распространенные ошибки action.swf, которые могут возникнуть на компьютере под управлением Windows, перечислены ниже:

  • «Ошибка в файле Action.swf.»
  • «Отсутствует файл Action.swf.»
  • «Action.swf не найден.»
  • «Не удалось загрузить Action.swf.»
  • «Не удалось зарегистрировать action.swf.»
  • «Ошибка выполнения: action.swf.»
  • «Ошибка загрузки action.swf.»

Такие сообщения об ошибках SWF могут появляться в процессе установки программы, когда запущена программа, связанная с action.swf (например, Sun Solutions CD), при запуске или завершении работы Windows, или даже при установке операционной системы Windows. Отслеживание момента появления ошибки action.swf является важной информацией при устранении проблемы.

Причины ошибок в файле Action.swf

Проблемы Action.swf могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с Action.swf, или к вирусам / вредоносному ПО.

Более конкретно, данные ошибки action.swf могут быть вызваны следующими причинами:

  • Поврежденные ключи реестра Windows, связанные с action.swf / Sun Solutions CD.
  • Вирус или вредоносное ПО, которые повредили файл action.swf или связанные с Sun Solutions CD программные файлы.
  • Другая программа злонамеренно или по ошибке удалила файлы, связанные с action.swf.
  • Другая программа находится в конфликте с Sun Solutions CD и его общими файлами ссылок.
  • Поврежденная загрузка или неполная установка программного обеспечения Sun Solutions CD.

Как исправить ошибки в Action.swf

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

Пожалуйста, учтите: Нажмите на изображение [ ] , чтобы развернуть инструкции по устранению проблем по каждому из шагов ниже. Вы также можете использовать изображение [ ], чтобы скрывать инструкции по мере их выполнения.

Шаг 1: Исправить записи реестра, связанные с Sun Solutions CD

Иногда ошибки action.swf и другие системные ошибки SWF могут быть связаны с проблемами в реестре Windows. Несколько программ может использовать файл action.swf, но когда эти программы удалены или изменены, иногда остаются «осиротевшие» (ошибочные) записи реестра SWF.

В принципе, это означает, что в то время как фактическая путь к файлу мог быть изменен, его неправильное бывшее расположение до сих пор записано в реестре Windows. Когда Windows пытается найти файл по этой некорректной ссылке (на расположение файлов на вашем компьютере), может возникнуть ошибка action.swf. Кроме того, заражение вредоносным ПО могло повредить записи реестра, связанные с Sun Solutions CD. Таким образом, эти поврежденные записи реестра SWF необходимо исправить, чтобы устранить проблему в корне.

Редактирование реестра Windows вручную с целью удаления содержащих ошибки ключей action.swf не рекомендуется, если вы не являетесь специалистом по обслуживанию ПК. Ошибки, допущенные при редактировании реестра, могут привести к неработоспособности вашего ПК и нанести непоправимый ущерб вашей операционной системе. На самом деле, даже одна запятая, поставленная не в том месте, может воспрепятствовать загрузке компьютера!

В связи с подобным риском мы настоятельно рекомендуем использовать надежные инструменты очистки реестра, такие как WinThruster (разработанный Microsoft Gold Certified Partner), чтобы просканировать и исправить любые проблемы, связанные с action.swf. Используя очистку реестра, вы сможете автоматизировать процесс поиска поврежденных записей реестра, ссылок на отсутствующие файлы (например, вызывающих ошибку action.swf) и нерабочих ссылок внутри реестра. Перед каждым сканированием автоматически создается резервная копия, позволяющая отменить любые изменения одним кликом и защищающая вас от возможного повреждения компьютера. Самое приятное, что устранение ошибок реестра может резко повысить скорость и производительность системы.

Предупреждение: Если вы не являетесь опытным пользователем ПК, мы НЕ рекомендуем редактирование реестра Windows вручную. Некорректное использование Редактора реестра может привести к серьезным проблемам и потребовать переустановки Windows. Мы не гарантируем, что неполадки, являющиеся результатом неправильного использования Редактора реестра, могут быть устранены. Вы пользуетесь Редактором реестра на свой страх и риск.

Перед тем, как вручную восстанавливать реестр Windows, необходимо создать резервную копию, экспортировав часть реестра, связанную с action.swf (например, Sun Solutions CD):

  1. Нажмите на кнопку Начать.
  2. Введите «command» в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите «regedit» и нажмите ENTER.
  8. В Редакторе реестра выберите ключ, связанный с action.swf (например, Sun Solutions CD), для которого требуется создать резервную копию.
  9. В меню Файл выберите Экспорт.
  10. В списке Сохранить в выберите папку, в которую вы хотите сохранить резервную копию ключа Sun Solutions CD.
  11. В поле Имя файла введите название файла резервной копии, например «Sun Solutions CD резервная копия».
  12. Убедитесь, что в поле Диапазон экспорта выбрано значение Выбранная ветвь.
  13. Нажмите Сохранить.
  14. Файл будет сохранен с расширением .reg.
  15. Теперь у вас есть резервная копия записи реестра, связанной с action.swf.

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

Мы не несем никакой ответственности за результаты действий, совершенных по инструкции, приведенной ниже — вы выполняете эти задачи на свой ​​страх и риск.

Шаг 2: Проведите полное сканирование вашего компьютера на вредоносное ПО

Есть вероятность, что ошибка action.swf может быть связана с заражением вашего компьютера вредоносным ПО. Эти вредоносные злоумышленники могут повредить или даже удалить файлы, связанные с SWF. Кроме того, существует возможность, что ошибка action.swf связана с компонентом самой вредоносной программы.

Совет: Если у вас еще не установлены средства для защиты от вредоносного ПО, мы настоятельно рекомендуем использовать Emsisoft Anti-Malware (скачать). В отличие от других защитных программ, данная программа предлагает гарантию удаления вредоносного ПО.

Шаг 3: Очистить систему от мусора (временных файлов и папок) с помощью очистки диска (cleanmgr)

Со временем ваш компьютер накапливает ненужные файлы в связи с обычным интернет-серфингом и повседневным использованием компьютера. Если такие ненужные файлы иногда не удалять, они могут привести к снижению быстродействия Sun Solutions CD или к ошибке action.swf, возможно вследствие конфликтов файлов или перегрузки жесткого диска. Удаление таких временных файлов при помощи утилиты Очистка диска может не только устранить ошибку action.swf, но и существенно повысить быстродействие вашего компьютера.

Совет: Хотя утилита Очистки диска является прекрасным встроенным инструментом, она удаляет не все временные файлы с вашего компьютера. Другие часто используемые программы, такие как Microsoft Office, Firefox, Chrome, Live Messenger, а также сотни других программ не поддаются очистке при помощи программы Очистка диска (включая некоторые программы Sun Microsystems).

Из-за недостатков утилиты Windows Очистка диска (cleanmgr) мы настоятельно рекомендуем использовать специализированное программное обеспечение очистки жесткого диска / защиты конфиденциальности, например WinSweeper (разработано Microsoft Gold Partner), для очистки всего компьютера. Запуск WinSweeper раз в день (при помощи автоматического сканирования) гарантирует, что ваш компьютер всегда будет чист, будет работает быстро и без ошибок action.swf, связанных с временными файлами.

Как запустить Очистку диска (cleanmgr) (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите «command» в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите «cleanmgr» и нажмите ENTER.
  8. Программа Очистка диска приступит к подсчету занятого места на диске, которое вы можете освободить.
  9. Будет открыто диалоговое окно Очистка диска, содержащее флажки, которые вы можете выбрать. В большинстве случаев категория «Временные файлы» занимает большую часть дискового пространства.
  10. Установите флажки напротив категорий, которые вы хотите использовать для очистки диска, и нажмите OK.

Имя файла: action.swf Последняя известная версия: 1.0.0.0
Разработчик: Sun Microsystems Размер файла (байтов): 109225
Программное обеспечение: Sun Solutions CD Операционная система: Windows 98 98
Описание: 1 2002
MD5: 1F002B830E23513CBAEF346B57563244
SHA1: 8B7C3AD75EEF9BFCC38D539172B470873FE22753

Информация об операционной системе

Сообщения об ошибках Action.swf могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:

  • Windows 10
  • Windows 8
  • Windows 7
  • Windows Vista
  • Windows XP
  • Windows ME
  • Windows 2000

Проблема с Action.swf все еще не устранена?

Обращайтесь к нам в любое время в социальных сетях для получения дополнительной помощи:

Об авторе: Джей Гитер (Jay Geater) является президентом и генеральным директором корпорации Solvusoft — глобальной компании, занимающейся программным обеспечением и уделяющей основное внимание новаторским сервисным программам. Он всю жизнь страстно увлекался компьютерами и любит все, связанное с компьютерами, программным обеспечением и новыми технологиями.

Отобразить файлы SWF в алфавитном порядке:

Вы загружаете пробное программное обеспечение. Подписка на один год стоимостью $39,95 необходима для разблокировки всех функций приложения. Подписка обновляется автоматически по завершению (Узнать больше). Нажав на кнопку «Начать загрузку» и установив «Софт»», я подтверждаю, что прочитал(а) и согласен(на) с Пользовательским соглашением и Политикой конфиденциальности Solvusoft.

do_action() WP 1.2.0

Создает событие (зацепку для произвольной функции). Чтобы функция сработала в момент события её нужно подключить к этому событию с помощью функции add_action().

Кроме событий в WP есть еще фильтры (filters), принцип работы такой же. Разницы лишь в том, что фильтр должен вернуть полученную переменную, т.е. он фильтрует (изменяет) данные, а событие позволяет запустить пользовательскую функцию в момент срабатывания этого события. Фильтры запускаются функцией apply_filters()

Возвращает

Null. Ничего не возвращает.

Использование

Примеры

#1. Пример использования

Эту функцию можно использовать в плагинах, темах и т.д., когда нужно внедрится в процесс выполнения кода, откуда-нибудь из другого места. Например, «зацепку» (хук) (do_action) мы установили в плагине, а «цепляться» за нее будем из файла functions.php в тот момент, когда будет срабатывать наша «зацепка».

Допустим, мы использовали такой код в плагине:

Теперь мы может сделать какое-нибудь действие в момент срабатывания функции do_action и при этом описать наше действие можно, например, из файла functions.php, разместив в нем такой код:

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

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