Действительно ли возможно защитить swf файлы?

Нет индексации с использованием целых чисел, только с использованием String.Index. В основном с линейной сложностью. Вы также можете создавать диапазоны из String.Index и получать подстроки, используя их.

Swift 3.0

let firstChar = someString[someString.startIndex]
let lastChar = someString[someString.index(before: someString.endIndex)]
let charAtIndex = someString[someString.index(someString.startIndex, offsetBy: 10)]

let range = someString.startIndex..<someString.index(someString.startIndex, offsetBy: 10)
let substring = someString[range]

Swift 2.x

let firstChar = someString[someString.startIndex]
let lastChar = someString[someString.endIndex.predecessor()]
let charAtIndex = someString[someString.startIndex.advanceBy(10)]

let range = someString.startIndex..<someString.startIndex.advanceBy(10)
let subtring = someString[range]

Обратите внимание, что вы никогда не сможете использовать индекс ( или диапазон), созданный из одной строки в другую

let index10 = someString.startIndex.advanceBy(10)

//will compile
//sometimes it will work but sometimes it will crash or result in undefined behaviour
let charFromAnotherString = anotherString[index10]
8
задан 23 June 2009 в 20:12
поделиться

4 ответа

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

Что касается того, что я бы сделал, я бы разбрызгал свои код с битами вроде этого:

// in a display object
if ( loaderInfo.url != "http://example.com/my/real/content.swf" ) {
    // blow up
}

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

4
ответ дан 5 December 2019 в 13:01
поделиться

1- Обфускируйте свой ActionScript с помощью расширенного обфускатора, такого как secureSWF .

2- Блокируйте свои SWF-файлы доменом.

3- Создайте фиктивный загрузчик, переименуйте исходные файлы SWF и измените их расширение, а затем загрузите исходные файлы SWF с помощью фиктивного загрузчика.

4- Убедитесь, что предотвращены горячие ссылки. (это будет зависеть от вашего веб-сервера)

5- Зашифруйте конфиденциальные строки в своем ActionScript; либо вручную в коде, либо для этого можно использовать secureSWF.

6
ответ дан 5 December 2019 в 13:01
поделиться

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

1
ответ дан 5 December 2019 в 13:01
поделиться

Это в основном зависит от программного обеспечения вашего веб-сервера. Если PHP, вы можете использовать readfile (). См. Пример здесь . Сохраните сам .swf над корневым веб-каталогом, затем используйте некоторую аутентификацию перед вызовом readfile. В этой настройке вы вызываете php-файл с помощью вызова readfile () вместо .swf.

Таким образом, это может выглядеть в очень упрощенном виде примерно так: fakeswf.php:

if (authenticate()) {
    header("Content-Type: application/flash");
    readfile("../realswf.swf");
    }
else {
    header("Content-Type: text/html");
    echo "Nothing to see here.";
    }

index.html:

<a href="fakeswf.php">Click here to play my game</a>

Что касается браузера (если вы правильно настроили заголовки в соответствии с примером), fakeswf.php является файлом .swf.

ВАЖНОЕ ПРИМЕЧАНИЕ: I на самом деле не удалось найти правильный тип содержимого для файла .swf. Обязательно найдите его и измените соответствующим образом.

0
ответ дан 5 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: