Как убедиться, что SWF-файл из моего проекта AIR нельзя открыть как обычный SWF-файл? - PullRequest
0 голосов
/ 07 июля 2011

Я делаю игру с Flash CS5.5 и экспортирую ее в файл APK (AIR для Android).

Проблема в том, что файл APK на самом деле представляет собой ZIP-файл, поэтому вы можетеИзвлеките содержимое, и внутри будет моя игра в виде обычного SWF-файла.Любой желающий может загрузить это на любой веб-сайт и играть в игру там.

Я не хочу, чтобы SWF-файл работал, если он не открыт, как следует, внутри APK-файла через Android.

Есть лилюбой способ узнать через код ActionScript 3, был ли SWF-файл извлечен из APK-файла и был открыт как обычный SWF-файл?

Ответы [ 3 ]

1 голос
/ 07 июля 2011

SWF «откроется», несмотря ни на что.Тем не менее, вы можете проверить в своем классе документов, что такое ОС, прежде чем решить, разрешать ли на самом деле SWF запускать больше кода.Посмотрите на flash.system.Capabilities, и вы найдете инструменты, которые позволят вам прослушать ОС.

0 голосов
/ 08 июля 2011

Первое, что нужно отметить: технически нет абсолютно никаких способов помешать пациенту и выделенному человеку распаковывать вещи и пытаться использовать ваш SWF в Интернете.

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

  • В вашем кодеотметьте все, что можете, чтобы обнаружить запуск в среде Android.ОС, например, предлагаемый scripttocalypse и / или доступность Android API.Запретить запуск приложения в неподходящей среде.Или, если хотите, измените поток приложения так, чтобы он запускался, но работал с серьезными нарушениями, если он не запущен на Android.
  • используйте обфускатор, например secureSWF или SWFEncrypt

Лично я использую secureSWF, но их много - выбирайте по своему вкусу.

0 голосов
/ 08 июля 2011

Capabilities.os не очень надежен, так как пользователь Linux может просматривать его в веб-браузере / на рабочем столе (My HTC androic сообщает об ОС Linux).

Насколько я видел, версия зависит от версии проигрывателя и всегда должна сообщать "И [строка версии]" - пример "И 10,2 150,60"

if( flash.system.Capabilities.version.slice(0,3).toUpperCase() != 'AND' ){
    // ....oh noes! hide and destroy everything!
}

Ps I + 1'd вам сценарий для flash.system.Capabilities:)

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/Capabilities.html#version

Это было некоторое время (см. Плеер 9 / воздух 1.0 / и т. Д.) И являетсяопределено в ссылке на API, поэтому это не просто хак

свойство версии
версия: строка [только для чтения] Язык версии: версии среды выполнения ActionScript 3.0: Flash Player 9, AIR 1.0, Flash Lite 4 УказываетFlash Player или платформа Adobe® AIR® и информация о версии.Формат номера версии: платформа majorVersion, minorVersion, buildNumber, internalBuildNumber.Возможные значения для платформы: «WIN», «MAC», «LNX» и «AND».Вот несколько примеров информации о версии:

 WIN 9,0,0,0  // Flash Player 9 for Windows
 MAC 7,0,25,0   // Flash Player 7 for Macintosh
 LNX 9,0,115,0  // Flash Player 9 for Linux
 AND 10,2,150,0 // Flash Player 10 for Android
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...