Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   флеш и безопасность готовых продуктов (http://www.flasher.ru/forum/showthread.php?t=179097)

wlad 06.05.2012 16:59

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

Дамы и господа!

Мало-мальски завершил програмно-дизайнерскую часть своего творения и даже повел переговоры с сетью "В Контакте", дабы те мое творение выставили (пользуясь случаем, искренняя благодарность всем ответившим, было минимум два полезных ответа)... Теперь немного думаю о массовом рынке...

Здесь я вижу два блока проблем: дистрибутив и уже заинсталированный продукт...

1. Дистрибутив: его защита - решаемый вопрос (как создалось впечатление от общения со старыми программистами)

2. Заинсталированный продукт - вот тут веселее..

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

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

С уважением
Влад

XimiKDeniS 07.05.2012 00:48

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

wlad 07.05.2012 07:55

Весьма занятно. А как я эти данные к среде Flash привязываю? Где почитать бы об этом?

Astraport 07.05.2012 10:09

Цитата:

Робкая попытка поднять тему...
Цитата:

даже повел переговоры с сетью "В Контакте"
Плачу:)
Цитата:

Насколько я понимаю, это или некий блок, который времени от времени передает на сервер производителя данные о покупателе продукта
У вас, я так понял, AIR? Привязывайтесь к железу, сделайте серверный генератор ключей (PHP) в зависимости от параметров - электронка, железо, дата. При запуске делайте запрос к БД на сервере, там скриптом проверяете железо юзеро с данными купленных ключей. Если все нормально, то ничего не делаем, если нет в базе, то блокируем ключ и лишаем приложение функционала.
Я делал не сразу блокировку, а если таких запросов будет несколько (ну может ошибка какая), в моем случае 5 - тогда это прямо говорит, что ключ утек в паблик и нужно блокировать.

Добавлено через 2 минуты
http://code.google.com/p/codegenas3/
Вот можете это использовать как простейший генератор ключей. Но активация на сервере все равно должна быть.

wlad 07.05.2012 13:14

Дорогой Astraport!
Теряюсь в догадках в свази с Вашим упоминанием сети "В Контакте"... Персонально Вас попытаюсь поставить в известность в случае хоть какого-то результата: как хорошего, так и плохого.
Теперь по сути... Да, в случае собственного сервера и серверного варианта игры так все и произойдет. В случае безинтернетного варианта игры... Пока вопрос открыт...

Кстати, сделал все без AIR...

С уважением
Влад

Astraport 07.05.2012 13:38

Цитата:

Теряюсь в догадках в свази с Вашим упоминанием сети "В Контакте"
Так это не я, а вы упомянули ВКонтакт.
Код AS3:

В случае безинтернетного варианта игры... Пока вопрос открыт...

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

wlad 07.05.2012 19:56

Итак...

Он-лайн-серверная версия игры:
Если стянули дистрибутив - защита есть (щит и на пароле, и на активации)...
Индивидуальная версия игры:
Если стянули дистрибутив - то же самое, защита есть...
Стянуть, скопировав уже заинсталированый продукт из директории... Вот это действительно слабое место. Разве что наступающая время от времени блокировка..(к примеру: каждые три месяца: "Подтвердите Ваши собственности на продукт" или "проверьте Вашу версию продукта")...

Не так ли?

Влад

Astraport 07.05.2012 20:51

Зачем время от времени? Каждый раз при старте приложение сверяет какой-то уникальный идентификатор машины юзера (например, генерируемый с помощью указанной выше либы) с сохраненными где-то на машине данными (реестр, база данных, SharedObject). Если false, то блокируете функционал. Такая защита без активации ломается на 1-2-3. Но, думаю, вам лучше сосредоточить свое внимание на продукте чем на защите. Не хочется вас огорчать, но то, что вы ранее показывали, даже ради спортивного интереса ломать не будут.

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

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

Больше ничего не нужно, 80% злодеев вы уже победили:) Ну код ещё можно обфусцировать в легком режиме, чтобы глюков не было. Чтобы грохнуть ещё 15% редисок, нужна серверная активация. Тоже по сути ничего сложного.

wlad 08.05.2012 00:58

Осталось просто: взять и сделать....
Жаль лишь немного, во флеше нельзя на компе сохранять файлы, только на сервере...

Astraport 08.05.2012 01:06

Цитата:

Жаль лишь немного, во флеше нельзя на компе сохранять файлы, только на сервере...
Да ну?
Цитата:

Объект FileReference представляет файл данных на клиентском компьютере или на сервере. Методы класса FileReference позволяют приложению загружать и сохранять файлы данных на жестком диске, а также передавать данные файла на удаленные серверы и обратно.


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

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