Я написал (большую часть) приложение на 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
Процедура, предложенная маклемой, на самом деле не помешает злоумышленнику получить исходный код - «приложение-оболочка» должно быть незашифрованным, чтобы злоумышленник мог узнать, что вы используете AES (или любой другой алгоритм), и он получит ключ дешифрования аналогичным образом (потому что он должен быть где-то в виде открытого текста). Как только он получит это, он сможет легко расшифровать ваш SWF-файл.
Единственное надежное решение (ну ...) - это какой-то обфускатор - мы используем Amayeta, которая работает с Flex в последней версии - см. http://www.amayeta.com/software/swfencrypt/.
Я думаю, что это ответ, который следует принять.
Что ж, на мой взгляд, самое простое и безопасное решение - это смесь маклема и ответа Борека:
Обфускация кода может быть большой головной болью, если вы не включили его в свой процесс с самого начала и если ваше приложение довольно велико: вполне вероятно, что запутывание приведет к повреждению вашего приложения, если вы использовали удаленные пакеты (и не заявили об этом обфускатору) если вы использовали много нетипизированных переменных в объектах или динамических классах ....
Итак: если вы используете решение Maclema в своем большом приложении и используете обфускацию в своей оболочке (это небольшое приложение, которое, вероятно, будет очень легко запутать), ваш код будет самым безопасным и минимальным. Только очень разгневанный пират потратит время на перепроектирование обфускации, чтобы затем расшифровать пакет ... Что ж, если кому-то так нужен код вашего приложения, это либо связано с ЦРУ, либо вы уже очень богаты (или и то, и другое)
спасибо всем за ваши ответы
Недавно я выпустил игру для iOS и Android с использованием Flash. Я поискал в Интернете хорошую бесплатную программу для защиты исходного кода в моем SWF-файле и ничего не нашел, поэтому написал ее. Он все еще в разработке и «используйте на свой страх и риск», но у меня это сработало.
Он выпущен на гитхабе. Проверьте это и дайте мне знать, что вы думаете.
https://github.com/Teesquared/flasturbate
Я загрузил двоичный файл Windows, но я рекомендую вам создать его самостоятельно, следуя инструкциям, если вы хотите попробовать.
Этот обфускатор работает непосредственно с файлом SWF. В настоящее время он только переименовывает символы, но построен на платформе, которая может поддерживать изменение байт-кодов в будущем.
Декомпилятор JPEXS имеет функцию «Поиск SWF-файлов в памяти», которая мгновенно обнаруживает расшифрованный SWF-файл. Шаг шифрования больше не применим, чтобы затруднить получение кода.