Опять про контроль запущенных программ
От: marty33  
Дата: 02.08.11 20:22
Оценка: 1 (1)
Добрый день Господа форумчане!

Прошу Вас не пинайте сразу, подобная тема уже обсуждалась не раз.

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

Опишу суть задачи — Разработал программу для продажи. Программа разработана на .NET и работает с MSSQL Server 2008. Продавать собираюсь через инет. Мне необходимо иметь контроль по кол-ву запущенных копии на каждую фирму. Как я вижу это:
1) Для каждой фирмы внутри программы нужно зашить какой-то GUID
2) Есть хостинг с MySQL где есть табличка в которой прописаны все GUID моих клиентов и кол-ва предоставленных копий.
3) Программа при запуске формирует зашифрованную строку и отправляет ее на сервер для определения — попадает ли эта копия в допустимый интервал разрешенных лицензий.
а) если лимит превышен — закрываем прогу с сообщением
б) если все впорядке — программа работает и каждую минут дает о себе знать на MySQL.
4) Кроме того в порграмме имеется автообновление которое выкладывается на хостинге.

Но задался вопросом — а что если в фирме стоит например 4 копии и вдруг отключили инет на день (поломка на линии например)? тогда до появления инета программа просто не запуститься. Как тогда контролировать кол-во запущенных копии в режиме off-line?
Думаю что нужно к основной программе создать маленькое приложение типа "Сервер контроля запущенных программ" и устанавливать непосредственно в офисе клиента на любой одной машине. А при доступе в инет — сверяться с данными на MySQL. Разумно ли это?

Может есть готовые проверенные продукты/решения для моей задачи?
Очень прошу совета!
С уважением.
Re: Опять про контроль запущенных программ
От: BrutForce США Streamline | Demand Planning Software
Дата: 02.08.11 22:14
Оценка:
Думаю http://desktopmetrics.com/ вам в помощь.
Streamline | IBP Software,
Streamline | Sales and Operations Planning Software
Re: Опять про контроль запущенных программ
От: BrutForce США Streamline | Demand Planning Software
Дата: 02.08.11 22:18
Оценка:
Ошибочка, тот платный. Вот бесплатный http://deskmetrics.com/
Streamline | IBP Software,
Streamline | Sales and Operations Planning Software
Re: Опять про контроль запущенных программ
От: мыщъх США http://nezumi-lab.org
Дата: 03.08.11 00:33
Оценка:
Здравствуйте, marty33, Вы писали:

M>Добрый день Господа форумчане!



M>Опишу суть задачи — Разработал программу для продажи. Программа разработана на .NET и работает с MSSQL Server 2008. Продавать собираюсь через инет. Мне необходимо иметь контроль по кол-ву запущенных копии на каждую фирму. Как я вижу это:


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

в принципе, активация с привязкой к HW ID это вполне распростаненный вариант (хотя юзерам он не очень нравится и покупателей отбивает).

в рамках локальной сети очень просто написать программу, которая не сможет работать при наличии своей копии (поиск своих копий в сети, использование жестко прошитых портов при коннекте на сервер). вообще, наличие централизованной базы все упрощает.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[2]: Опять про контроль запущенных программ
От: marty33  
Дата: 03.08.11 11:33
Оценка:
Здравствуйте, BrutForce, Вы писали:

BF>Ошибочка, тот платный. Вот бесплатный http://deskmetrics.com/


Спасибо. Изучаю.
Re[2]: Опять про контроль запущенных программ
От: marty33  
Дата: 03.08.11 12:08
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>Здравствуйте, marty33, Вы писали:


M>>Добрый день Господа форумчане!



M>>Опишу суть задачи — Разработал программу для продажи. Программа разработана на .NET и работает с MSSQL Server 2008. Продавать собираюсь через инет. Мне необходимо иметь контроль по кол-ву запущенных копии на каждую фирму. Как я вижу это:


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


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

М>в принципе, активация с привязкой к HW ID это вполне распростаненный вариант (хотя юзерам он не очень нравится и покупателей отбивает).

О привязке в этом разделе писали, в основном про отрицательные стороны. Как и Вы пишите. Наверное привязку не стоит трогать из-за неудобства и проблем при обслуживании?

М>в рамках локальной сети очень просто написать программу, которая не сможет работать при наличии своей копии (поиск своих копий в сети, использование жестко прошитых портов при коннекте на сервер).

Вас не затруднит указать на пример? или вкратце описать принцып работы такой програмки? Думаю в дальнейшем это многим будет полезно.
Сегодня наткнулся на подобный пост в этом форуме — человек создал компонент для слежки за копией запусков. Называется VALLA. Стоит ее использовать как доплнение?

М>вообще, наличие централизованной базы все упрощает.


А что именно упрощает централизованная база? Я так полагаю, в программе прописать функции которые заносят инфу (предварительно собрав какую-то HWID) в одну талицу о запустившейся копии и с интервалом времени в эту же таблицу дают о себе знать. так же в программе прописать проверку на кол-во запущенных копий? Или же все гораздо проще чем я пологаю?
Re[2]: Опять про контроль запущенных программ
От: alex95  
Дата: 03.08.11 18:33
Оценка:
М>в рамках локальной сети очень просто написать программу, которая не сможет работать при наличии своей копии (поиск своих копий в сети, использование жестко прошитых портов при коннекте на сервер).

Да очень интересно как это сделать, по крайней мере хотя бы знать куда начинать копать.
У меня есть Lingvo, дак она примерно секунд через 10 после запуска ругается, что копия с точно таким же ключём уже запущенна, и типа это противоречит соглашениям и всё такое. Вот так бы сделать и ладно.
Re[3]: Опять про контроль запущенных программ
От: Cyberax Марс  
Дата: 03.08.11 18:37
Оценка:
Здравствуйте, alex95, Вы писали:

A>Да очень интересно как это сделать, по крайней мере хотя бы знать куда начинать копать.

A>У меня есть Lingvo, дак она примерно секунд через 10 после запуска ругается, что копия с точно таким же ключём уже запущенна, и типа это противоречит соглашениям и всё такое. Вот так бы сделать и ладно.
Стандартный вариант — broadcast'ом рассылать сообщение с кодом лицензии.
Sapienti sat!
Re[4]: Опять про контроль запущенных программ
От: anonimus Россия  
Дата: 03.08.11 18:58
Оценка:
Здравствуйте, Cyberax, Вы писали:

C> A>Да очень интересно как это сделать, по крайней мере хотя бы знать куда начинать копать.

C> A>У меня есть Lingvo, дак она примерно секунд через 10 после запуска ругается, что копия с точно таким же ключём уже запущенна, и типа это противоречит соглашениям и всё такое. Вот так бы сделать и ладно.

C> Стандартный вариант — broadcast'ом рассылать сообщение с кодом лицензии.


да, но админы в корпоративной среде за это бьют обычно
и это не одна проблема, броадкаст работает только в пределе ...*, то есть 255 штук
у меня у самого сделана проверка на броадкастах — есть клиент (ы? наверное уже да), который пишет, что у него на работе все пучком, а у жены дома не получается
avalon 1.0rc3 rev 416, zlib 1.2.3
R2ZJT
Re[5]: Опять про контроль запущенных программ
От: marty33  
Дата: 03.08.11 19:04
Оценка:
Здравствуйте, anonimus, Вы писали:

A>Здравствуйте, Cyberax, Вы писали:


C>> A>Да очень интересно как это сделать, по крайней мере хотя бы знать куда начинать копать.

C>> A>У меня есть Lingvo, дак она примерно секунд через 10 после запуска ругается, что копия с точно таким же ключём уже запущенна, и типа это противоречит соглашениям и всё такое. Вот так бы сделать и ладно.

C>> Стандартный вариант — broadcast'ом рассылать сообщение с кодом лицензии.

А не стандартный, но надежный вариант предложить можете?

A>да, но админы в корпоративной среде за это бьют обычно

A>и это не одна проблема, броадкаст работает только в пределе ...*, то есть 255 штук
A>у меня у самого сделана проверка на броадкастах — есть клиент (ы? наверное уже да), который пишет, что у него на работе все пучком, а у жены дома не получается
А как Вы решили эту проблему? Начали использовать какой-то другой механизм проверки?
Re[3]: Опять про контроль запущенных программ
От: мыщъх США http://nezumi-lab.org
Дата: 03.08.11 19:04
Оценка:
Здравствуйте, alex95, Вы писали:

М>>в рамках локальной сети очень просто написать программу, которая не сможет работать при наличии своей копии (поиск своих копий в сети, использование жестко прошитых портов при коннекте на сервер).


A>У меня есть Lingvo, дак она примерно секунд через 10 после запуска ругается,

A>что копия с точно таким же ключём уже запущенна, и типа это противоречит
A>соглашениям и всё такое. Вот так бы сделать и ладно.
конкретно как работает лингво не скажу, но можно сделать, например, широковещательную UDP рассылку (правда, может порезать фаер), можно создавать скрытые шары в локальной сети и смотреть сколько их уже создано и с какими ключами (фаеру сложно будет это заблокировать, т.к. SMB внутри локалки обычно открыт). и это все без выделенного сервера. и без сканирования локальной сети на предмет обнаружения своих копий.

DNS протокол так же редко блокируют. и потому можно слать DNS запросы, используя, например, поле TXT (тут правда, вам нужен ваш DNS сервер за пределами локальной сети).

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

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

конечно, все это отламывается хакерами, но будем считать, что хакеров нет, т.к. создание серьезной защиты, взлом которой не окупится, это десятки килобаксов -- дешевле готовый электронный ключ купить. а попытки создания защиты без опыта либо приносят геморой юзерам, либо ломаются хакерами влет, либо вызывают конфликты и ругательства со стороны антивирусов и новых версий винды.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[6]: Опять про контроль запущенных программ
От: anonimus Россия  
Дата: 03.08.11 19:29
Оценка:
Здравствуйте, marty33, Вы писали:

m> А не стандартный, но надежный вариант предложить можете?


увы, нет

m> А как Вы решили эту проблему? Начали использовать какой-то другой механизм проверки?


оставил броадкаст
этот софт продается обычно по "советам друзей" — это спасает
avalon 1.0rc3 rev 416, zlib 1.2.3
R2ZJT
Re[5]: Опять про контроль запущенных программ
От: Cyberax Марс  
Дата: 03.08.11 20:01
Оценка:
Здравствуйте, anonimus, Вы писали:

A>да, но админы в корпоративной среде за это бьют обычно

A>и это не одна проблема, броадкаст работает только в пределе ...*, то есть 255 штук
A>у меня у самого сделана проверка на броадкастах — есть клиент (ы? наверное уже да), который пишет, что у него на работе все пучком, а у жены дома не получается
А сильно лучше не получится. Ну можно пытаться изращаться с попыткой определить внешний IP-адрес и учётом лицензий на нём.

Но тут стоит задуматься что важнее: клиенты или учёт лицензий?
Sapienti sat!
Re[6]: Опять про контроль запущенных программ
От: anonimus Россия  
Дата: 03.08.11 20:21
Оценка:
Здравствуйте, Cyberax, Вы писали:

C> А сильно лучше не получится. Ну можно пытаться изращаться с попыткой определить внешний IP-адрес и учётом лицензий на нём.


C> Но тут стоит задуматься что важнее: клиенты или учёт лицензий?


согласен
avalon 1.0rc3 rev 416, zlib 1.2.3
R2ZJT
Re[4]: Опять про контроль запущенных программ
От: Banned by IT  
Дата: 04.08.11 03:48
Оценка:
Здравствуйте, мыщъх, Вы писали:

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

Обычно в локалке прокатывали mailslotы.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.