Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Защита флэш. (http://www.flasher.ru/forum/showthread.php?t=131033)

nataly_1 11.10.2009 16:32

Защита флэш.
 
Делаю флэш без предоплаты, насколько эффективно пустить сверху строку с текстом?
Или это ничего не защитит и её всё равно можно будет убрать?

incoob 11.10.2009 16:39

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

Zik. 11.10.2009 16:45

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

alecsisk 11.10.2009 16:57

Пользуюсь SWF Maestro. Указываете файл запуска проекта и дополнительные файлы(если используете). Компилируется один exe'шник. Не знаю насколько защитит от мастеров, но стандартные программы для декомпиляции ругаются что этот файл не прожектор.

Mur4ik 11.10.2009 20:15

Через [Embed] можно вполне себе нормально защитить от декомпиляции, на сегодняшний день ни один из декомпиляторов не сможет просмотреть ни скрипты ни ресурсы(картинки, клипы, музыку и т.д). Вообщем "самый дешевый способ".

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

AL.exe 12.10.2009 01:32

Пардон, как это не может? Нормально все смотрится даже при включении флешки через [embed] или я вас не понял.

Mur4ik 12.10.2009 04:36

Вложений: 1
Наверное не поняли ;)
Или что-то делаете не так...

Я имею ввиду компилируете свое приложение, потом swf который получаете нужно "заембедить" в отдельном классе и скомпилировать этот класс. Дополнительно можно базовый swf взять как ByteArray и зашифровать. А при "ембединге", вернее перед добавлением в дисплей лист расшифровать.

Попробуйте просмотреть ресурсы этой флешки.

alecsisk 12.10.2009 10:44

2 декомпилятора обломали зубы. Можно взять на вооружение). Спасибо.

etc 12.10.2009 12:34

Это на раз-два ломается.

Mur4ik 12.10.2009 19:11

На раз-два это единицы, а рядовому флешеру это на раз-два-...надцать... "да ну его нафик, лучше свое напишу" :)

Тем более процесс можно еще усложнить шифрованием, тогда точно мало кому будет интересно.

Tr1te 12.10.2009 19:29

Действительно вскрылась, а я когда читал, обрадовался, надеялся что есть хоть какой нить способ. Жаль.

Zik. 12.10.2009 21:55

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

incoob 13.10.2009 00:32

Цитата:

Сообщение от ZIK68 (Сообщение 857314)
еще можно быдлокодить и писать вообще нечитабельный код
тогда чувакам расхочется разбираться, что вы там накалякали

Вам тоже не захочется с таким кодом разбираться и поддерживать его. А быдлокод надо еще уметь написать...
В данном случае тогда уж лучше поступить стандартно - обфусцировать код.

relevance4 13.10.2009 18:41

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

Artic 13.10.2009 19:31

он видео декомпильнет ^^ гг

Mur4ik 14.10.2009 02:04

Цитата:

Сообщение от relevance4 (Сообщение 857496)
декомпилить вашу флэшку будет стоить в разы дороже, чем написать новую, такую-же.

совсем не факт :)

СлаваRa 14.10.2009 15:31

вот такие вопросы поднимаются часто, что ж вы такое пишете, что так боитесь того, что вас декомпилируют?

switcher! 14.10.2009 15:59

Цитата:

Сообщение от СлаваRa (Сообщение 857768)
что ж вы такое пишете, что так боитесь того, что вас декомпилируют?

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

Psycho Tiger 14.10.2009 16:37

Если игра будет представлять собой новый и интересный жанр - клонов наплодят без декомпиляции. Просто держа в голове идею.

VVall 14.10.2009 16:47

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

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

Люди боятся декомпиляции не из-за клонов, а из-за штук типа взаимодействия с сервером (типа отправки лучших результатов) или привязки к домену (куча сайтов с чужим контентом и своей рекламой).

switcher! 14.10.2009 17:09

Цитата:

Сообщение от Psycho Tiger (Сообщение 857793)
Если игра будет представлять собой новый и интересный жанр - клонов наплодят без декомпиляции. Просто держа в голове идею.

Безусловно! Но на это уйдет драгоценное время, а код там -- 80% игры. За пару дней не напишешь. Да и движок сторонний подобрать будет очень тяжело (поверьте наслово), это не говоря о том, что на этом движке код писать так же нужно

Задача лишь - выйграть время, на большее расчитывать не приходится :)

Цитата:

Новый и интересный жанр - это вообще очень маловероятно
но возможно :)

Цитата:

Главное - идея, которая в любом случае не патентуется и не защищается, а код легко пишется свой
смотрим выше

Zebestov 14.10.2009 17:33

думал о такой схеме:

1. контейнер внутри имеет ключ
2. генерируется и кодируется запрос на основании неких ID-данных (если надо) и/или некоего случайного числа (хоть миллисекунды)
3. выдается результат (swf, jpg, прочее), который генерится динамически (тупо транслируется из какого-то недоступного или путаного места в поток)

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

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

Alex Lexcuk 14.10.2009 19:46

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

Zebestov 14.10.2009 21:04

Спорить не стану... ведь я эту мысль обдумывал все же для подгрузки изображений, аудио- и видео-контента. В этом случае подобные сложности оправданы. Просто сама схема универсальна и применима к swf файлу.

switcher! 14.10.2009 21:18

Цитата:

Сообщение от Alex Lexcuk (Сообщение 857859)
и еще битых байтов в ебедную флешку понасовывать

если не секрет как ? ))

ramshteks 14.10.2009 22:30

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

Alex Lexcuk 14.10.2009 22:37

Цитата:

Сообщение от switcher! (Сообщение 857881)
если не секрет как ? ))

По разному можно. Самый простой, на флеше файлреференсом загрузить флешку в байтАррай, в байт аррай выбрать (вариантов немеряно) первый байт в один байтАррай, второй в другой, байтАрраи сохранить как два файла, заембедить их и потом склеить. Так будет склеивать долго, можно каждый 1000 байт сохранить в отдельный файл, а в флешке прировнять его к нулю, то-же два файла, причем флешка с неправильными нулями будет работать, эксепшенов не будет, контент, естественно никто не увидит, будут предупреждения в логе:"Неизвестный тип загрузщика";

switcher! 14.10.2009 23:53

Alex Lexcuk, первый вариант понял - спасибо!
Почему-то такая банальная вещь (что декомпилятор код не выполняет, а восстанавливает его из swf файла) - в голову не пришла ))))

А второй вариант можно подробнее?
Цитата:

можно каждый 1000 байт сохранить в отдельный файл, а в флешке прировнять его к нулю, то-же два файла
Не совсем понял кого "его" нужно прировнять к нулю и какие "два файла"?

ramshteks,
Цитата:

ну к примеру берешь и добавляешь 10 байт с рандомным значением каждые 3 байта
Т.е. в ByteArray через каждых 3 нужных байта "мусорить" на 10-ть?

gloomyBrain 15.10.2009 00:35

Теория:
1) Байткод swf формата должен начинаться с буковок SWF (3 байта)
2) В байткоде флешки должен содержаться её размер (в определенном тэге)
3) Размер, указанный в тэге включает буковки SWF

Практика:
Обрезаем первые 3 байта

Следствие:
1) Больше мы не swf. т.к. начинаемся не с того тэга
2) Указанный размер swf не соответствует действительности

switcher! 15.10.2009 01:21

gloomyBrain, круто! Благодарствую :drinks:

Mur4ik 15.10.2009 03:00

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

Да и декомпилируют в большинстве те (хотя бывают и исключения), кому влом или вещества серого не хватает писАть свое. И могу предположить, когда увидят в декомпиляторе не то что ожидают, дальше просто рыть не станут.

gloomyBrain 15.10.2009 03:48

По поводу метода AlexLexcuk -
Цитата:

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

По этому, все же, проще и элегантнее просто разрезать на N частей и юзеру (через https и только по секрету) передавать их последовательность. Более того, сохранить эти ByteArra'и в виде файлов с расширением *.quesswho =)

Felicast 15.10.2009 12:41

Цитата:

1) Байткод swf формата должен начинаться с буковок SWF (3 байта)
2) В байткоде флешки должен содержаться её размер (в определенном тэге)
у меня почему то термин "байткод" ассоциируется с другим

gloomyBrain 15.10.2009 14:10

2 Felicast
http://ru.wikipedia.org/wiki/Байткод - То есть не с вот этим?

etc 15.10.2009 14:13

Цитата:

Сообщение от gloomyBrain (Сообщение 858070)
2 Felicast
http://ru.wikipedia.org/wiki/Байткод - То есть не с вот этим?

Именно с ним. А вот про то, что вы говорите, не байткод.

gloomyBrain 15.10.2009 14:32

Сорри, согласен, имелась ввиду структура swf формата

nikolik 24.06.2010 20:53

а можно например чтобы флэш ролик только на одном url работал, а на другом нет?

Psycho Tiger 24.06.2010 20:58

Можно =)


Часовой пояс GMT +4, время: 00:30.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.