Содержание приложения Protect Air - PullRequest
1 голос
/ 14 марта 2012

В Mac OS я вижу, что все содержимое моего приложения может быть читаемым (mxml и в виде файлов). Действительно, щелкнув правой кнопкой мыши приложение, вы можете увидеть весь контент приложения и все файлы. Поэтому очень опасно для компании распространять подобные приложения. Есть решение для защиты этих файлов.

Спасибо

Ответы [ 2 ]

1 голос
/ 14 марта 2012

Невозможно 100% защитить ваш код. В конце концов, если компьютер может запустить его, он может быть декомпилирован, независимо от языка. Тем не менее, вы можете сделать это более сложным.

Один из способов - зашифровать SWF, как указано в другом ответе. Но все, что нужно «злоумышленнику», - это найти ключ, и тогда он сможет расшифровать все ваши swfs.

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

Например, если у вас есть метод saveInvoice (), то обфускатор переименует его в aa1 () или что-то в этом роде, так что будет затруднительно угадывать, что делает эта функция. В основном все превращается в спагетти-код.

Вы можете использовать декомпилятор, чтобы увидеть, что можно получить из SWF-файла (который много), и поиграть с обфускаторами, чтобы проверить, соответствуют ли они вашим ожиданиям.

Примером является http://www.kindi.com/, который я не одобряю, кстати, он просто быстро появляется в Google.

1 голос
/ 14 марта 2012

Хотя есть множество декомпиляторов, которые могут читать весь ваш код. Есть один парень, который придумал решение для шифрования, которое стоит попробовать. (Это для приложений Desktop AIR)

Посмотрите на этот пост: http://forums.adobe.com/message/3510525#3510525

Текст в кавычках (в случае удаления страницы)

Метод, который я использую, позволит вам кодировать большую часть исходного кода, используя ключ, который уникален для каждого компьютера. Первоначальная загрузка моего Программное обеспечение представляет собой простое воздушное приложение, которое не содержит реальной программы. Это больше похоже на оболочку, которая сначала получает список клиентов Mac адреса и пользователь ввел код активации, созданный во время покупки Это отправляется на сервер и регистрируется. Код активации сохраняется на стороне файлового клиента. На сервере MAC-адрес и Ключ активации используется для создания ключа шифрования. Основная часть Код программы затем шифруется с использованием этого ключа, а затем делится на части и отправили обратно клиенту. Клиент складывает части вместе и сохраняет зашифрованный файл. Во время выполнения оболочка находит мак список адресов и ключ активации, затем используя тот же метод, что и сервер получает ключ шифрования и расшифровывает файл программы. Беги просто проверьте, чтобы убедиться, что он загружен. Для шифрования я нашел метод AES, который работает в php и javascript.

Далее я использую этот код для загрузки программы

var loader = air.HTMLLoader.createRootWindow(true, options, true, windowBounds);
loader.cacheResponse=false;
loader.placeLoadStringContentInApplicationSandbox=true;
loader.loadString(page);

Этот метод очень затрудняет копирование. на другой компьютер, хотя, так как я написал это, я знаю, что есть некоторые Еженедельно в безопасности, но сделать это сложнее, я обв. оболочка код. Это по крайней мере удерживает большинство от пиратства. Однако есть проблемы с этим, что я нашел. Сначала я использовал networkInfo, чтобы получить список MAC-адресов, но это не удалось на тестовом компьютере с Windows XP. Когда беспроводная связь была выключена, она не возвращала MAC. Я не мог воссоздать это в VISTA или 7. Не уверен, что это может произойти. Не было проверено на компьютере Mac. Чтобы исправить это (по крайней мере, для окон). я написал простой bat-файл, который получает список MAC, затем преобразовал его в exe, который включен. Это заставляет вас создавать нативные монтажники. позвоните exe с этим

var nativeProcessStartupInfo = new air.NativeProcessStartupInfo();
var file = air.File.applicationDirectory.resolvePath("findmac.exe");
nativeProcessStartupInfo.executable = file;
process = new air.NativeProcess();
process.start(nativeProcessStartupInfo);
process.addEventListener(air.ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
process.addEventListener(air.ProgressEvent.STANDARD_ERROR_DATA, onErrorData);
process.addEventListener(air.NativeProcessExitEvent.EXIT, onExit);
process.addEventListener(air.IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError);
process.addEventListener(air.IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError);

собрать список вместе в событии onOutputData, используя array.push и продолжить событие onExit с помощью findmac.exe вернет та же информация каждый раз (что я знаю) остерегайтесь мысли, что с помощью Нативная установка нарушит стандартный процесс обновления приложения, поэтому вам придется написать свой. Мои обновления обрабатываются одинаково как указано выше. Это содержимое файла .bat для получения списка mac

@Echo off
SETLOCAL SET MAC = SET Media  = Connected
FOR /F "Tokens=1-2 Delims=:" %%a in ('ipconfig /all^| FIND "Physical Address"') do @echo %%b ENDLOCAL

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

...