Jump to content
СофтФорум - всё о компьютерах и не только

Вопрос по Flash


Recommended Posts

1. Как можно защитить флеш-ролик от скачивания(или через файл/сохранить как... ;или вообще от любого (телепорт например) - что было-бы отлично). Только ее защитить, отдельно. Страничку (содержимое) можно скачивать, а флешку нет-если так можно.

2. И как защитить всю страничку от скачивания( что, собственно, и включает флешку, картинки и т.п. ).

Помогите кто, если не трудно и если кто знает!

Заранее благодарен.

Link to comment
Share on other sites

_Sash@: Интересно, а как их тогда просматривать, если их скачать нельзя будет? Возможность скачивания браузером должна быть, как минимум. А все остальное (менеджеры закачек и пр.) можно отсечь по User-agent. Правда, все такие программы умеют маскироваться под популярные браузеры, так что - не судьба.

МА топик уходит в "Веб-строительство"
Link to comment
Share on other sites

Flash можно защитит если пользуеш stream, т.е. у тебя .swf которий визуализируеть .swf или .flv в реального времени :) но так у тебя тоже нет гарантия, что ее не запишут, просто будет на много труднее

Насчет страничку - нельзя... но можеш сделать код нечитимий ;-)

Link to comment
Share on other sites

Защитить флешку полносьтю от скачиваний нельзя к сожалению.

Но секреты конечно есть.

-Пиши в программе, в защите от импорта код в перемешку с

кирилицей

-Вставляй в кадры код проверки URL адреса на котором у тебя сайт

Веб дизайн,создание сайтов

Link to comment
Share on other sites

volgiss А не подскажешь как он пишется, я то в Action Script то и не разбираюсь, а надо теперь. Если не трудно и код не большой. Буду очень благодарен. ;)

Link to comment
Share on other sites

В смысле код проверки URL. Первое для меня совсем не понятно.

Я так понимаю этот код будет проверять url, и если он не совпадает - то просто ролик не будет проигрываться, а если совпадает, то будет дана команда play. И ролик поставить на пароль при открытии (что б не изменить). Я так понял? Не судите строго, если глупо написал...

А так же всем спасибо за ответы.

Link to comment
Share on other sites

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

Конечно полной защиты нет.

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

Но, я думаю не на столько мой ролик кому-то нужен будет, чтобы тратить нна него столько времени.

Еще раз спасибо.

Link to comment
Share on other sites

<-=RamZeS=->

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

А как это, я просто не очень силен во флеше.

Link to comment
Share on other sites

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

я просто не очень силен во флеше

Я извиняюсь конечно, но что ты тогда защищать собрался?

Link to comment
Share on other sites

<-=RamZeS=-> я немного не правильно выразился.

Я извиняюсь конечно, но что ты тогда защищать собрался?

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

Я больше по части графики.

Большое спасибо.

Link to comment
Share on other sites

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

194788[/snapback]

Ни чё не понял из выше сказанного.

1Создать символ где? Во флеше и что, вооще смысла нет, swf в браузере показывается с помощью блокнота.

Причём здесь капирайт? :(

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

<-=RamZeS=->:

Ты какими-то загадками говоришь, что значит- "ломат символ"

Выходной файл всё равно будет виден в браузере, и я тебе его всё равно открою. А вот чтоб не было видно, это запрет на кэширование.

Веб дизайн,создание сайтов

Link to comment
Share on other sites

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

Link to comment
Share on other sites

volgiss, че за х*йню ты несешь? Я тебе говорю, что не надо ничего защищать от скачивания, пусть качают как хотят и сколько хотят. Нужен неотделимый копирайт, чтобы никакая с#ка не смогла выставить твое произведение исскуства за собственное.

Link to comment
Share on other sites

Я вижу это ты несёшь детский лепет, такое ощущение что ты не соображаещь в этой теме не чего, и любую swfку я вскрою, будет там капирайт или нет, и этот капирайт твой выкину на хрен, понял

Link to comment
Share on other sites

Нашел интересную статью по защите флешки. Но интересна она не только этим!

Чем? Сможете посмотреть здесь http://www.flashteacher.ru/cgi-bin/forum/topic.cgi?forum=4&topic=197.

В общем опубликую, рискуя получитьзамечание, только часть ее.

А заодно вопрос: когда флешку (с паролем на сам файл swf) разбиваеш, какой-то прогой я слышыл, в кадрах остается код?

А вот статья:

Автор - qwent

А потом, я заинтересовался проблемой безопасности своих программ на флэшке, стал искать способы

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

защитить свой флэш-ролик. Предлагалось подобно платным прогам прописаться в своеобразном реестре,

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

При этом флэш-ролик сам писал этот файл и ПОМЕЩАЛ туда свои данные!!! Работает это хорошо только

в flash5, но думаю можно помудрить и переделать под более новые версии.

Мне вдруг стало интересно.

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

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

Пара слов о command.com

...

пропущено...

Представьте ситуацию: вы во Flash’e создали необычайно красивый мувик (или сверхполезную прогу) и с помощью специальной программы — например, SWF Studio — конвертировали его в скринсейвер или исполняемый файл (далее — просто «мувик»). Ваше творение поселилось на компьютерах всех ваших знакомых, и вы, опьяненные успехом, решили его продавать. А для этого мувик нужно оснастить функцией проверки и записи серийного номера, используя для этого какую-то специальную программу или сам же Flash. Первый вариант отпадает (своих глюков хватает, к тому же еще и деньги надо платить), а второй… Наверняка заинтересует.

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

Делать защиту мы будем во Flash 5, так как во Flash 4 и Flash MX это не очень-то будет работать (в четвертом совсем не будет). То есть, если из-под Flash MX опубликовать .swf-файл как Flash Player 5, то все работать будет, а вот в exe-проекторе не будет.

Записывать значение переменной в файл мы будем с помощью Flash’овой fscommand’ы exec и «интерпретатора команд Windows» command.com. Считывать будем командой loadVariables().

Итак, в первом фрейме пишем:

loadVariablesNum ("file:///C:\\Windows\\System\\srtab.txt", 0); // загружаем содержимое файла srtab.txt

loadVariablesNum ("file:///F:\\Windows\\System\\srtab.txt", 0);

loadVariables (url ,location [, variables]), где url — путь к файлу, location — путь (target) или уровень (level), в который записываются полученные значения. При использовании пути (например: "_root.serial", с кавычками) пишется путь к муви-клипу. При использовании уровня (например, 0 — без кавычек), loadVariables заменяется на loadVariablesNum), указывается глубина его размещения. Нулевой уровень идентичен пути _root

[variables] — необязательный аргумент, указывающий HTTP-метод передачи переменных — GET или POST.

\\ — escape-последовательность, во Flash’e так представляется обратный слеш \. Для хранения переменных вы можете использовать любое допустимое имя файла с любым расширением в любой папке. В нашем случае чем секретнее будет имя и путь к файлу, тем лучше. Так как мы не знаем, на каком разделе у пользователя установлена Виндовс, а %WINDIR% Flash не понимает, мы пишем несколько путей, самые вероятные — с C:\ по F:\.

Далее пишем в пятом фрейме:

if (Number(serial) == 0) {

gotoAndStop (10); // этот скрипт я объясню чуть позже

} else {

gotoAndStop (14);

}

Скрипт для 10 фрейма (он выполнится только при первом запуске мувика):

a = 1+random(9); // генерируем число от 1 до 8 и добавляем 1, чтобы число не начиналось с нуля

b = random(10);

c = random(10);

d = random(10);

e = random(10);

f = random(10);

g = random(10);

h = random(10);

j=”&” // присваиваем переменной j значение &

randomSerial = a add b add c add d add e add f add g add h add j; // складывая переменные (add), создаем восьмизначное число, оканчивающееся на &

serial = a add b add c add d add e add f add g add h; // это нам пригодится в 17 фрейме

Записать значение переменной в файл можно так:

fscommand ("exec", "command.com\t/c\techo\t&variable=1&>>c:\\file.txt";

fscommand("exec", "путь_к_файлу" запускает внешнюю программу, в примере это command.com, с параметром /с, который значит, что после выполнения команд окно command.com закроется.

\t — escape-последовательность — знак табуляции, в данном случае используется вместо пробелов.

echo — вывод сообщений на экран или в файл (если файла не существует, он автоматически создается). Для справки запустите command.com (Пуск > Выполнить > command.com), введите echo/?, или command.com/? и нажмите Enter.

variable=1>>c:\\file.txt — запись строки &variable=1& в файл c:\\file.txt. >> означает перезапись содержимого файла — чтобы дописать строку в конец файла, используется >.

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

Как видите, все довольно просто. Но только не у нас :-). Нам ведь надо записать в файл значение переменной randomSerial, а не просто строку, поэтому будем мудрить (дописываем в 10 фрейме):

begin = "command.com\t/c\techo\t&serial="; // записываем первый «кусок», до значения randomSerial

end = ">%WINDIR%\\System\\srtab.txt"; // второй «кусок», «после»

all = begin + randomSerial + end; // складываем первый и второй «куски», и между ними записываем значение randomSerial

fscommand ("exec", all); // записываем в файл

gotoAndStop (17);

Так как в этот раз мы складывали строки, то можно использовать +, вместо add.

Теперь разберем скрипт 5 фрейма.

Number (expression); — функция, конвертирующая аргумент expression в число и возвращающая значение:

1) если expression — число, то его значение;

2) если Boolean, то 1, при expression = true; и 0 при false;

3) если строка, то пытается анализировать expression как десятичное число;

4) если не определено, то 0.

Так как Flash при чтении переменных из файла считает их строками, для того чтобы мы могли работать с ними как с числовыми значениями мы используем Number().

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

В 17 фрейме давайте создадим два поля: одно — Dynamic (вверху по центру), а второе — Input, пониже. В полях Variable напишите соответственно randomSerialPole и inputSerialPole. А в Frame Actions укажите randomSerialPole=serial;.

Теперь в верхнем поле будет отображаться значение переменной serial, взятое из 10 фрейма при первом запуске, или же из файла — при последующих запусках.

Далее создайте кнопку возле поля Input и напишите для нее следующий скрипт:

on (release) {

if (inputSerialPole == Math.floor(randomSerialPole / 2)) {

fscommand ("exec", "command.com\t/c\techo\t&check=1&>>%WINDIR%\\System\\srtab.txt"; // дописываем в конец файла строку &check=1&

gotoAndStop (18);

} else {

demo._visible = true

gotoAndStop (18);

}

}

Например, сгенерированный номер — 87654321. Поделив его на два, получаем 43827160.5. Для того чтобы получить целое число, используется метод Math.floor(число), который возвращает самое близкое целое число, меньшее или равное. В нашем случае это 43827160.

Деление на два взято для примера — чем сложнее будет формула, тем лучше.

Теперь в 14 фрейме напишите:

if (Number(check) == 1) {

gotoAndStop (18);

} else {

gotoAndStop (17);

}

При каждом запуске мувика будет проверяться значение переменной check (оно записывается в файл в 17 фрейме), и если оно равно единице, то регистрация будет пропускаться.

Создайте еще один слой, и в 14 фрейм этого слоя поместите муви-клип (в поле Name, закладка Instance, напишите demo), в котором находится, например надпись «Пожалуйста, зарегистрируйтесь».

Скрипт для муви-клипа:

onClipEvent (load) {

_visible = false;

}

Этот клип будет виден только в том случае, если в 17 фрейме будет введен неправильный серийный номер.

Вот и все. Теперь все слои со всеми фреймами вашего мувика засуньте в один муви-клип и поместите его в 18 фрейм этого мувика.

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

Стоить заметить, что рассмотренный в статье способ обладает не самым удобным вариантом проверки и записи номера — просто так легче объяснить принцип его работы. Лучше содержимое 1, 5, 10 и 17 фреймов переместить в отдельный мувик (естественно, немного изменив скрипт), а в мувик с вашим проектом поместить содержимое 1 и 14 фреймов, изменив 14 фрейм так, чтобы при неравенстве единицы мувиклип demo был виден. И вместе с главным мувиком поставляйте еще и этот «регистрационный модуль».

Экспериментируйте и создавайте! Запись/считывание в файл можно использовать во многих направлениях — это и игры, и программы, и Flash-сайты.…В Flash’e еще много кажущихся скрытыми возможностей, главное — их раскрыть и использовать на полную мощь.

Link to comment
Share on other sites

volgiss: просто надо сделать так чтобы во время редактирования копирайт был над фоном, и можно было его редактировать

а в конечном файле копирайт обьединяется с фоном, и все тут :)

больше его никак оттуда, только перерисовывать :)

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...