Вопрос

Я написал (большую часть) приложения на Flex и беспокоюсь о защите исходного кода.Я запустил демо-версию Декомпилятор Trillix SWF и открыл SWF-файл, который был установлен в каталоге Program Files.Я увидел, что все пакеты ActionScript, которые я написал, были там.Меня не слишком интересуют пакеты, несмотря на значительный объем кода, потому что без файлов mxml он по-прежнему кажется совершенно непригодным для использования.Я думаю, что они преобразованы в ActionScript, или, по крайней мере, я надеюсь.Тем не менее, я все равно хотел бы изучить обфускацию.

Есть ли у кого-нибудь опыт работы с обфускаторами Flash/Actionscript 3/Flex?Можете ли вы порекомендовать хороший продукт?

Это было полезно?

Решение

Вот что бы я сделал.

  • Скомпилируйте приложение в SWF-файл.Затем зашифруйте SWF с помощью AES.

  • Создайте приложение-оболочку, которое загружает зашифрованный SWF в ByteArray с помощью URLLoader.

  • Использовать as3crypto библиотека для расшифровки SWF во время выполнения.

  • После расшифровки используйте Loader.loadBytes для загрузки расшифрованного SWF-файла в приложение-оболочку.

Это значительно усложнит получение вашего кода.Не невозможно, но сложнее.

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

Также вот ссылка на обфускатор AS3.Хотя я не уверен, насколько хорошо это работает.http://www.ambiera.com/irrfuscator/index.html

Другие советы

Процедура, предложенная maclema, на самом деле не помешает любому злоумышленнику получить исходный код - «приложение-оболочка» должно быть незашифровано, чтобы злоумышленник мог узнать, что вы используете AES (или любой другой алгоритм), и он получит ключ дешифрования аналогичным образом (потому что он должен быть где-то в открытом тексте).Получив это, он сможет легко расшифровать ваш SWF-файл.

Единственное надежное решение (ну...) — это какой-нибудь обфускатор — мы используем Amayeta, которая работает для Flex в последней версии — см. http://www.amayeta.com/software/swfencrypt/ .

Ну, на мой взгляд, самое простое и безопасное решение — это смесь маклемы и ответа Борека:

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

Так:Если вы используете решение maclema для своего большого приложения и используете обфускацию в своей оболочке (которая представляет собой небольшое приложение, которое, вероятно, очень легко запутать), ваш код будет самым безопасным и наименее хлопотным.Только очень злой пират сможет потратить время на перепроектирование обфускации, чтобы затем расшифровать пакет...Ну, если кому-то так сильно нужен код вашего приложения, то это либо связано с ЦРУ, либо вы уже очень богаты (или и то, и другое)

спасибо всем за ваши ответы

Недавно я выпустил игру для iOS и Android с использованием Flash.Я поискал в Интернете хорошую бесплатную программу для защиты исходного кода моего SWF, но ничего не нашел, поэтому написал ее.Он все еще находится в разработке и используется «на свой страх и риск», но у меня это сработало.

Он выпущен на github.Проверьте это и дайте мне знать, что вы думаете.

https://github.com/Teesquared/flasturbate

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

Этот обфускатор работает непосредственно с SWF-файлом.В настоящее время он переименовывает только символы, но построен на платформе, которая может поддерживать изменение байт-кодов в будущем.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top