2008-08-07 9 views
21

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

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

ответ

13

Вот что я буду делать.

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

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

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

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

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

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

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

20

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

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

+1

Я думаю, что это ответ, который должен быть принят. – 2013-08-22 07:07:54

3

Ну, на мой взгляд, самым простым и безопасным решением является сочетание maclema и Borek ответ:

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

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

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

0

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

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

https://github.com/Teesquared/flasturbate

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^