Как бы я усилил защиту моего файла .swf? - PullRequest
1 голос
/ 25 декабря 2010

Я все еще начинаю во флэш-памяти в целом, и я пытаюсь усилить защиту моего файла .swf.

Одна из моих идей заключалась в том, чтобы разбить файл .swf натак сказать;создание нового SWF-файла с чувствительными, но жизненно важными функциями и значениями, сохранение его на моем веб-сервере и запуск программы запроса файлов после прохождения нескольких процессов проверки.Единственный недостаток в этой идее, я не знаю, как добавить класс (если это правильный термин?) В мой проект.Я перевернул другой файл .swf, который включал тот же метод с использованием шифрования Base64, но я не очень уверен, как добавить внешний файл .as для выполнения в моем проекте.

Конечно, я также нашелдополнительные методы, такие как использование DCOMSoft SWF Protector (который не принесет много пользы) и программы запутывания (которые тоже можно изменить).Недавно я узнал о .SWC под названием AS3Crypto, который я понятия не имею, как его использовать.Я добавил файл в свои свойства AS3, но это все, что я получил.Остальная часть AS3Crypto и его загадки остаются для меня расплывчатыми, и я не могу найти какую-либо полезную информацию через Google.

Мне бы очень хотелось разделить .swf на части, разделяющие их на различные области, чтобы сделать его болеетрудно повернуть вспять, но я не слишком уверен, насколько это будет эффективно, не говоря уже о том, как на самом деле это сделать.Что касается внешнего класса (терминологии?), Так как я не смог найти, как реализовать его с моим проектом, я подумал о том, чтобы спасти функции из обратного .swf, который я нашел, и добавить их во внутренний сценарий.Даже тогда пакет начинается с public class $Base64 extends Object - extends Я предполагаю, что просто добавляет дополнительные функциональные возможности к объектам, но я не считаю, что это абсолютно необходимо.

Ответы [ 4 ]

0 голосов
/ 27 декабря 2010

Лучшее, что вы должны делать при создании флэш-файлов (или других клиентских файлов, таких как xml и т. Д.), - это сделать его как можно более тупым. Не храните в нем пароли, идентификаторы, направляющие или важные данные, но создайте серверный сервис / API, который доставляет все данные во флэш / клиент на основе пользовательского ввода. Сделать безопасный API проще, чем создавать защищенные SWF-файлы.

Также рекомендуется отслеживать http-трафик вашего проекта с помощью 'charles proxy' или fiddler (для этого есть также плагины firefox / chrome). Посмотрите, как передаются данные и насколько они предсказуемы и легко ли ими манипулировать.

Кстати, если ты все равно хочешь запутать, я знаю крутой трюк с запутыванием: в swf можно встроить swf как bytearray. Создайте новый flashproject и пометьте этот класс как Main-document. Поместите оригинальный файл .swf в проект. Убедитесь, что настройки документа (размер сцены и т. Д.) Совпадают с настройками входного SWF-файла.

    package 
    {
        import flash.display.Loader;
        import flash.display.Sprite;

        /**
         * @author Mark Knol
         */
        public class ByteArrayLoader extends Sprite
        {
            [Embed(source='../swf/myFlashFile.swf', mimeType='application/octet-stream')]
            private static const bytes:Class;

            public function ByteArrayLoader()
            {
                Loader( addChild( new Loader() ) ).loadBytes( new bytes() );
            }
        }
    }
0 голосов
/ 25 декабря 2010

По сути, если кто-то достаточно предан, он расшифрует и соберет информацию. Я понимаю вашу миссию, у меня было то же чувство, когда я начал AS3.

Наиболее распространенные способы защиты SWF:

  1. Запутывание - хорошо против случайных декомпиляторов / хакеров.
  2. Снаряды, как моти - бесполезны против декомпиляторов, но хорошо, если они тоже добавляют запутывание
  3. Код на стороне сервера - ЛУЧШАЯ ЗАЩИТА доступна, но она все еще не идеальна, она замедляет ваш SWF-файл и требует доступа в Интернет для использования SWF.

Если вы серьезно относитесь к защите своего кода, вы должны сделать это на стороне сервера.

0 голосов
/ 25 декабря 2010

Вы можете защитить свой код ActionScript с помощью AS3 Obfuscator

AS3Obfuscator - это приложение, которое позволяет запутывать исходный код ActionScript, затрудняя его чтение при декомпиляции.

Вы можете увидеть пример здесь

Не забывайте, что вы можете Заблокировать свой SWF для определенного доменного имени

function pageDomainCheckInit(event:Event):void {
    if (url != "http://www.domainName.com/siteFolder/sitePage.html") {

        warning_txt.text="This file is running on the wrong URL. Content Access Restricted!";
        closeBoxTop.x = 0
        closeBoxTop.visible = true;
        closeBoxTop.height= stage.stageHeight/2
        Tweener.addTween(closeBoxTop,{width:stage.stageWidth, alpha: 0.8, time:1, transition:"easeInOutExpo"});

        closeBoxBottom.x = stage.stageWidth
        closeBoxBottom.visible = true;
        closeBoxBottom.height= stage.stageHeight/2
        Tweener.addTween(closeBoxBottom,{width:stage.stageWidth, time:1, alpha: 0.8, transition:"easeInOutExpo"});
    } else {

        warning_txt.text=" ";
        closeBoxTop.visible = false;
        closeBoxBottom.visible = false;
    }
    stage.removeEventListener(Event.ENTER_FRAME, pageDomainCheckInit);
}

stage.addEventListener(Event.ENTER_FRAME, pageDomainCheckInit);

Для получения дополнительной информации нажмите здесь

0 голосов
/ 25 декабря 2010

Если вы хотите защитить свой SWF-файл, чтобы никто не смог его скомпилировать и просмотреть код ActionScript, вам следует зашифровать SWF-файл с помощью SWF-инструмента шифрования, такого как Amayeta SWF Encrypt. Вы можете взглянуть на http://www.amayeta.com/ и получить некоторые полезные сведения.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...