Как предотвратить декомпиляцию кода ActionScript - PullRequest
1 голос
/ 09 апреля 2009

Есть ли надежный способ предотвратить копирование моего кода ActionScript (as2 или as3) (например, если в нем есть какой-нибудь IP)? Я знаю, что есть инструменты, которые могут декомпилировать флэш-код, поэтому его легко перепроектировать, и я также видел несколько инструментов, которые утверждают, что способны запутывать код ActionScript таким образом, что он не может быть украден, но мне интересно, насколько надежным они есть... Вы знаете? Спасибо!

Ответы [ 2 ]

2 голосов
/ 10 апреля 2009

Это по определению невозможно предотвратить.

Причина проста: код должен выполняться на клиенте, поэтому клиент должен иметь возможность его читать.

Лучшее, что вы можете сделать, - это сделать так тяжело (требует времени), чтобы это было не выгодно. Flash имеет встроенную функцию для защиты от декомпиляции с помощью пароля. Я не уверен, как именно это работает, я думаю, какая-то форма шифрования.

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

Но, в конце концов, ты ничего не можешь сделать. Если вы не хотите, чтобы пользователи вводили ключ шифрования (пароль или файл). Во Flash нет встроенного шифрования, но есть несколько бесплатных библиотек, таких как crypto lib http://code.google.com/p/as3crypto/.

2 голосов
/ 10 апреля 2009

Я не нашел надежного и надежного способа запутать код. Если есть способ запутать код, держу пари, что:

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

Я не считаю хорошей практикой полагаться на безопасность вашего клиентского кода. Даже если код не может быть декомпилирован, swf запускается на клиенте и связывается с Интернетом через сетевое соединение, к которому у пользователя есть доступ. Пакеты можно прослушать, и все данные, которые передаются, могут быть легко проанализированы.

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

...