Сведения о вопросе

Martincow

16:03, 1st July, 2020

Теги

Flex / Air обфускация

Просмотров: 499   Ответов: 4

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

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



  Сведения об ответе

lats

18:03, 1st July, 2020

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

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


  Сведения об ответе

park

18:03, 1st July, 2020

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

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

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

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

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

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

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

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


  Сведения об ответе

lats

18:03, 1st July, 2020

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

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

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

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


  Сведения об ответе

LAST

18:03, 1st July, 2020

Недавно я выпустил игру iOS и Android, используя Flash. Я поискал в интернете хорошую бесплатную программу для защиты исходного кода в моем SWF и ничего не нашел, поэтому написал ее. Он все еще находится в разработке, и это "use at your own risk", но он работал для меня.

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

https://github.com/Teesquared/flasturbate

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться