PDA

Просмотр полной версии : Как получить доступ из swf к сведениям о подключенном оборудовании


Myrka777
14.04.2010, 14:42
Хотелось бы защитить свой swf таким образом, чтобы он воспроизводился только на компе, к которому подключены например колонки (или другое устройство) с определенным уникальным номером (типа "КОД ЭКЗЕМПЛЯРА УСТРОЙСТВА", который можно посмотреть в диспетчере устройств).
Как это можно реализовать? В каком направлении двигаться? Помогите, Великие Умы!

Tails
14.04.2010, 15:04
поставте пароль на флешку

VVall
14.04.2010, 16:00
Flash - мультиплатформенная технология, поэтому прямого доступа к устройствам и функциям ОС он не предоставляет. Их просто может не быть на другой платформе.

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

Myrka777
15.04.2010, 08:29
поставте пароль на флешку
Каким образом я могу поставить пароль на флешку? И какова вероятность того, что его сломают?

Добавлено через 15 минут
Flash - мультиплатформенная технология, поэтому прямого доступа к устройствам и функциям ОС он не предоставляет. Их просто может не быть на другой платформе.

Устройств с уникальным идентификатором вообще очень немного, и привязываться к ним неправильно - если устройство сломается и будет заменено, программа не должна переставать работать. Для не-Flash программ с подобной защитой делаются специальные устройства-ключи, прилагающиеся к программе.
VVall, в том то и дело, что есть такое устройство и 100% того, что у него имеется уникальный идентификатор. И флешка впринципе предназначена для использования этого устройства. И если устройство ломается или меняется я без проблем заменю идентификатор в исходнике, чтобы флешка работала с новым устройством.
Если я просто поставлю пароль, то эта флешка сможет использоваться без устройства, т.е. не по назначению - этого уж точно мне не нужно.

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

ЗА ПОМОЩЬ ОТБЛАГОДАРЮ!!!

in4core
15.04.2010, 13:05
А толку то с твоим устройством? Кому надо декомпилит твою флешку и получит исходник - с проверкой на ID , во флешке все равно будет прописан ID устройста иначе сверка не произойдет. Взломать флешку - проблем нету. Что с паролем что с ID

orcpochta
15.04.2010, 14:00
я без проблем заменю идентификатор в исходнике, чтобы флешка работала с новым устройством

это предложение вернее будет записать так:

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

Myrka777
15.04.2010, 14:16
Господа, как защитить свою флешку от декомпиляции - это отдельный вопрос. Установить сверку с серийником - это лишь один из нескольких слоев ее защиты. Помогите...

udaaff
15.04.2010, 14:22
Смотрите в сторону оболочек http://www.flasher.ru/forum/forumdisplay.php?f=94

orcpochta
15.04.2010, 14:26
Господа, как защитить свою флешку от декомпиляции - это отдельный вопрос.

на него есть единственный ответ - НИКАК!

Установить сверку с серийником - это лишь один из нескольких слоев ее защиты. Помогите...

декомпиляция флешки выполняется двумя кликами - один чтобы открыть декомпилятор, второй - нажать кнопку "Декомпилировать"

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

in4core
15.04.2010, 14:46
Ну ну! Перестань - кнопка декомпелировать не поможет, если прописать в кадрах где нужно запретить декомпил небольшой код....http://www.flasher.ru/forum/showthread.php?t=81224&page=1 но тоже не везде поможет )))

udaaff
15.04.2010, 14:48
декомпиляция флешки выполняется двумя кликами - один чтобы открыть декомпилятор, второй - нажать кнопку "Декомпилировать"
Есть обфускаторы различные, и некоторые из них очень даже неплохо выполняют свою работу.

orcpochta
15.04.2010, 15:12
in4core, согласен, погорячился

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

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

in4core
15.04.2010, 15:19
Надо двигаться в строну php.... может когда нибудь выучу его заодно с С++ чтобы не скучно жилось)

udaaff
15.04.2010, 15:20
udaff обфускатор от декомпила не спасет - просто сделает малочитаемым код, но все равно строки с паролями или адресами выдрать-то можно без особых проблем
Собрал небольшой пример. Кому интересно, попробуйте пароль найти.
Само приложение до безобразия простое: на сцене лежит текстовое поле tf. Код в первом кадре:
var s:String = "некий пароль";

tf.addEventListener(Event.CHANGE, tf_changeHandler);

function tf_changeHandler(event:Event):void
{
if (tf.text == s)
tf.text = "ok";
}

upd: для особых хитрецов небольшое изменение :)
tf.addEventListener(Event.CHANGE, tf_changeHandler);

function tf_changeHandler(event:Event):void
{
if (tf.text == "некий пароль")
tf.text = "ok";
}

Myrka777
15.04.2010, 17:05
Господа, пусть я полностью не смогу защитить свою флешку от декопилляции, но поставив пароль, сломав код, добавив нужные строки, использовав шифровку с помощью спец программ, заверну флешку в ехе и пр. Я СУЩЕСТВЕННО УСЛОЖНЮ ЖИЗНЬ ее обладателю, который так и подумает, что ЭТА ФЛЕШКА НЕ СТОИТ ТОГО, ЧТОБЫ ТАК ДОЛГО ПЫХТЕТЬ НАД НЕЙ. НО! Это и есть моя цель!

Поэтому, господа, не будем отходить от темы!
Напоминаю, что готова отблагодарить за дельный совет или готовое решение!

Добавлено через 6 минут
Кому интересно, попробуйте пароль найти.

Мой декомплитер ни скрипт не показывает, не конвертирует, вырубает и все тут)

udaaff
15.04.2010, 18:12
Хотелось бы защитить свой swf таким образом, чтобы он воспроизводился только на компе, к которому подключены например колонки (или другое устройство) с определенным уникальным номером (типа "КОД ЭКЗЕМПЛЯРА УСТРОЙСТВА", который можно посмотреть в диспетчере устройств).
Как это можно реализовать? В каком направлении двигаться?
Флеш самостоятельно не может работать с системой на таком уровне, поэтому
Смотрите в сторону оболочек http://www.flasher.ru/forum/forumdisplay.php?f=94

etc
15.04.2010, 18:36
Собрал небольшой пример. Кому интересно, попробуйте пароль найти.
Само приложение до безобразия простое: на сцене лежит текстовое поле tf. Код в первом кадре:
var s:String = "некий пароль";

tf.addEventListener(Event.CHANGE, tf_changeHandler);

function tf_changeHandler(event:Event):void
{
if (tf.text == s)
tf.text = "ok";
}

u5asdf

udaaff
15.04.2010, 18:49
u5asdf
:) Ты через декомпил вычислил, или каким-то другим способом?

etc
15.04.2010, 18:51
:) Ты через декомпил вычислил, или каким-то другим способом?

Не скажу :p

Myrka777
15.04.2010, 19:44
Не скажу :p
Поделитесь опытом...

etc
15.04.2010, 19:48
Вы меня простите, но опытом в подобных вещах делиться не принято.

in4core
15.04.2010, 20:04
Да компилил он что тут неясного

udaaff
15.04.2010, 21:40
Можно запросто и без декомпилера узнать в данном случае :)

in4core
15.04.2010, 22:12
незнаю я флешку не открывал. Но чисто по коду написанному в ТЕМЕ именно. узнать невозможно

Myrka777
16.04.2010, 10:00
Одно дело найти номер (скажем через hex-редактор или блокнот), а ДРУГОЕ - ЗАМЕНИТЬ ЕГО И СОХРАНИТЬ ИЗМЕНЕНИЯ. Попробуете, уважаемый ets?

etc
16.04.2010, 10:12
А зачем его менять?

Myrka777
16.04.2010, 10:16
Проверить уязвимость данного способа защиты.

etc
16.04.2010, 10:20
А вы денег мне заплатите за работу?
Сменить реально, но сейчас у меня нет на это времени.
И потом, не вижу смысла менять, если пароль мне уже известен.

Myrka777
16.04.2010, 10:32
По всей видимости заменить код не так легко как его узнать. Это мне и хотелось выяснить.
А ПО ПОВОДУ ДЕНЕГ... Я ПИСАЛА, ЧТО ОТБЛАГОДАРЮ ЗА КОНКРЕТНОЕ ИЛИ ГОТОВОЕ РЕШЕНИЕ МОЕЙ ПРОБЛЕМЫ (СМ.ТЕМУ)

etc
16.04.2010, 10:38
Только не нужно истеричного капс-лока, ага?
Заменить непросто, но зачем это может потребоваться — мне непонятно.

Myrka777
16.04.2010, 10:52
Если будет возможным заменить часть кода AS, то пользователь сможет редактировать любую часть моего swf, чего бы не хотелось.

etc
16.04.2010, 10:54
Это возможно, при соответствующих знаниях.

AzagThoth
16.04.2010, 11:02
Может конечно не из той оперы, но по моему это всё обходится при помощи OLEdbg. На WASM есть неплохие статьи про крекинг вообще. Я правда осилил не все пока, но вообще-то очень интересно.

Myrka777
16.04.2010, 16:41
Господа, какие еще будут предложения ПО ТЕМЕ - как организовать доступ из swf (или ехе) к серийному номеру устройства. Используемый драйвер D2XX. Вот кое-какая инфо по нему во вложении.

alexcon314
16.04.2010, 16:55
Начинаете снова?
Ну, так давайте повторим пройденный материал:
- непосредственно к драйверу доступ из swf получить нельзя, по определению, следует воспользоваться оболочкой.
- хранить что-то конфиденциальное в свф имеет смысл только для самоуспокоения.
Предложение такое: изучаете вопрос про оболочку, задействуете ее. Одновременно вы сможете решить и вторую проблему на ином качественном уровне. Способ защиты, предложенный вами не имеет смысла, если вы пишете что-то серьезное, нужен другой. Если вы пишете что-то несерьезное, смысла такая защита не имеет тем более.
И, да, вы тут все время деньги предлагаете - это в Вакансии.

Myrka777
28.04.2010, 16:07
Да, начинаю снова. И буду начинать пока вопрос не будет решен. В вакансиях размещала 2 раза - отзывов нет.

Кто-нибудь подскажет: могу ли я получить сведения о подключенном оборудовании задействуя loadVariables() или loadVariablesNum()? Я поняла, что так можно получить доступ к файлу с данными на компе. Так если мои сведения об оборудовании лежат в этом файле, почему могу ли я взять их используя AS, а не через оболочку?

etc
28.04.2010, 19:54
Кто-нибудь подскажет: могу ли я получить сведения о подключенном оборудовании задействуя loadVariables() или loadVariablesNum()?
Не можете.

Я поняла, что так можно получить доступ к файлу с данными на компе. Так если мои сведения об оборудовании лежат в этом файле, почему могу ли я взять их используя AS, а не через оболочку?
Можете, если этот файл существует, путь к нему известен и разрешен доступ.