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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
21
0
8 318
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

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

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

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

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

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

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

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

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

Декомпилятор JPEXS имеет функцию «Поиск SWF-файлов в памяти», которая мгновенно обнаруживает расшифрованный SWF-файл. Шаг шифрования больше не применим, чтобы затруднить получение кода.

CausingUnderflowsEverywhere 27.02.2021 18:43

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

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

Я думаю, что это ответ, который следует принять.

Snow Blind 22.08.2013 11:07

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

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

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

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

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

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

https://github.com/Teesquared/flasturbate

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

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

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