Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Дата: Вс, 06 Сентября 2009, 01:59 | Сообщение # 91
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Просто я тут обдумываю алгоритмы системы управления лицензиями для программы и валидации триальности на vbscript... затык в том, что где бы и как бы ни хранилась инфа о триале ее легко можно отковырять или сбросить... (речь именно о триале, а не урезанных демо-версиях)
Quote (sp3d)
вот и применялось запароленная архивность т.к. нет шифратора
Дата: Вс, 06 Сентября 2009, 02:15 | Сообщение # 92
Необукер
Проверенные
Сообщений: 4238
Offline
Quote (DEMBEL)
а шифратор файлов он вам сильно нужен?
Вадиму уж очень, у него (я так понял по работе) есть тесты в тектовиках чтоли им разработанные, т.е. вопросы и варианты ответов и симуляция поведения, короче дабы мне не напутать, он завтра сам об'яснит. ну мне тоже иногда требуется, но больше как "защита от дурка", секретной инфы нет, но данные программы иногда необходима немного шифровать, от любопытных юзеров, пытающих изменить
Добавлено (06 Сентябрь 2009, 02:15) --------------------------------------------- По началу тоже использовал запароленные архивы , а потом делал свой архив-Нбшный
Сообщение отредактировано sp3d - Вс, 06 Сентября 2009, 02:15
Дата: Вс, 06 Сентября 2009, 14:24 | Сообщение # 93
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (DEMBEL)
Эээ, еле осилил все вышенаписанное, и хочу спросить, как в итоге решился вопрос о создании триальных версий. Если хранить все триал-данные в запароленном архиве... я так понял что программа создает его при первом запуске, а что делать если этот файл просто удалить/подменить? также как отмониторить реестр? для "обычного" юзера это давно не проблема...
Quote (DEMBEL)
Просто я тут обдумываю алгоритмы системы управления лицензиями для программы и валидации триальности на vbscript... затык в том, что где бы и как бы ни хранилась инфа о триале ее легко можно отковырять или сбросить... (речь именно о триале, а не урезанных демо-версиях)
Пока что я остановился на таком варианте (уже реализовал): запароленный архив (ключевой файл) выкладывается из "багажа" в момент инсталляции проги. Далее, количество запусков фиксируется параллельно в реестре и в ini-файле, который в запароленном архиве и лежит. При запуске прога сравнивает значения в архиве и в реестре. Если есть разница, то делает вывод, что была попытка вмешательства в реестр и исправляет значения в реестре с выводом сообщения для пользователя о том, что "возможно без его ведома..." была такая-то попытка вмешательства...(априори считаем, что вскрыть зип со сложным паролем из 15 символов - лет 20 надо, простым перебором, на современных машинах и программах... если я правильно понял инфу в сети на тему взлома архивов). Если же удалить архив, то прога создаст его заново, но пропишет в нем, что его удаляли, на том и закончится триал-версия. При следующем запуске проги будет выведено сообщение о серьезном вмешательстве в файлы программы и о вынужденном в связи с этим завершении триал-версии, и будет предложена активация программы. Так что исправлять реестр - бесполезно. Удалять ключевой файл - бессмысленно.
Однако, можно на очередное допустимое кол-во запусков продлить триальность почистив реестр и полностью переустановив триал-версию программы. Честно говоря, меня такой вариант не совсем устраивает, хотя и является допустимым.
Если есть предложения о том, как можно улучшить защиту, буду признателен. Да, забыл добавить. Активация происходит по активационному паролю, при активации в архиве прописывается номер жесткого диска, так что скопировать активированную программу и просто перенести ее на другой комп тоже не получится. Перенесенная версия заработает, но именно как триал-версия. Чтобы копия заработала без ограничений запусков потребуется ввести активационный пароль. Однако никакого управления лицензиями тут конечно же нет, все на совесть пользователя... Если есть идеи по этой теме - тоже интересно! Но сам я еще даже толком не думал на эту тему. Хотя придется. Очевидно, что тут потребуется интернет-решение. Например, прога при установке (или регистрации по выбору пользователя) передает на сервер зашифрованный серийник и получает регистрационный ключ активации, в базе на сервере отмечается, что прога установлена под таким-то серийником, выдан такой-то регключ, на такой-то e-mail. E-mail+серийник позволяют контролировать кол-во лицензий для конкретного пользователя, купившего прогу.
Quote (sp3d)
Вадиму уж очень, у него (я так понял по работе) есть тесты в тектовиках
Да, это было бы очень полезно! В будущем я планирую создание тестов с пополняемыми/обновляемыми базами вопросов/ответов и пр. Соответственно, надо делать отдельные файлы, которые можно передавать пользователю при обновлении программы, и эти файлы не должны быть доступны для чтения, в том числе и как "защита от дурака", Сергей прав. Это пригодится для создания пситестов, для создания предметных тестов, тестов для аттестации персонала организаций и т.п. Да и кроме того, иметь возможность создавать шифрованные файлы поддержки/обеспечения проекта - это очень полезная вещь. Универсальная, как плагин смены раскладки клавиатуры.
Добавлено... Поскольку архив запаролен, то я пока не шифрую ini-файл, который в нем лежит. Не вижу в этом пока смысла. Хотя, допускаю, что смысл таки в этом есть...
Дата: Вс, 06 Сентября 2009, 14:33 | Сообщение # 94
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (VadimLevkin)
Очевидно, что тут потребуется интернет-решение.
это будет наилучший вариант, т.к. очевидно что любую триал-инфу с локального компа можно отмониторить и сковырять. Но тут потребуется настраивать сервер и пхп-скрипт на нем... Хотя есть возможность несколько повысить надежность защиты и на локальном компе используя весь комплекс методов (реестр+файлы+проверка дат и т.д.) Как задавать вопросы
Дата: Вс, 06 Сентября 2009, 15:08 | Сообщение # 95
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (DEMBEL)
потребуется настраивать сервер и пхп-скрипт на нем...
Да. Иначе придется каждому вручную регключ выдавать... В принципе вполне реально на локальном компе генератор ключей сделать и пользовать, и это даже вполне надежный вариант (ведь серверный еще надо как-то защитить от взлома...), но это не совсем красивое решение... Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Дата: Вс, 06 Сентября 2009, 16:32 | Сообщение # 96
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (VadimLevkin)
но это не совсем красивое решение...
ну почему, лицензионный ключ вполне можно и вручную выслать после подтверждения оплаты... а если делать все автоматизированно, то такая система уже сама по себе денег будет стоить... речь пока идет всего лишь о том чтобы отправлять триал данные на сервер и обратно, и верифицировать их в программе. Если не связываться с этим, то единственный более-менее вариант это решения на уровне самой программы - показ всяких напоминаний о необходимости регистрации триала или ограничение функционала (демо-версия)
Дата: Вс, 06 Сентября 2009, 18:56 | Сообщение # 97
Необукер
Проверенные
Сообщений: 4238
Offline
Quote (VadimLevkin)
лет 20 надо
или 200т.л. можно еще такой вариант, сделать програмку, которая считывает ид хдд и отправляет тебе, ты допустим делаешь сним какие нибудь математические оперции и высылаешь ему, он вводит в прогу(у нее тоже должен быть этот математический расчет) и прога сверяет, если савпадает, то все ок. Получается номер только привязывается к одной машине, ну и пусть переустанавливает, клю то к другой тачке не подойдет
Дата: Вс, 06 Сентября 2009, 19:20 | Сообщение # 98
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
этот вариант уже есть... мы тут думаем как и где запрятать инфу о триале чтоб ее сложнее найти было и как организовать проверку триала... Как задавать вопросы
Дата: Вс, 06 Сентября 2009, 19:25 | Сообщение # 99
Необукер
Проверенные
Сообщений: 4238
Offline
Quote (DEMBEL)
мы тут думаем как и где запрятать инфу о триале чтоб ее сложнее найти было и как организовать проверку триала...
никак, злые хацкеры, все найдут, все исправят, а если простые юзеры, то и этих предосторожностей хватит, не думаете же что все юзеры хорошо разбираются в принцепе триальности?!
Сообщение отредактировано sp3d - Вс, 06 Сентября 2009, 19:25
Дата: Вс, 06 Сентября 2009, 19:33 | Сообщение # 102
Ветеран форума
Проверенные
Сообщений: 487
Offline
Quote (sp3d)
ну тогда мона прятать запасной файлик с зашифрованной инфой где нить в недрах сустем32, вариант дурацкий, но как раз от дураков
А не проще ли использовать просто зашифрованную БД? Взломать ее, как пишут разработчики НБ, нереально трудно, а если юзер ее удалит, то срок триальности закончится досрочно
Дата: Вс, 06 Сентября 2009, 19:48 | Сообщение # 105
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (Bodi)
А не проще ли использовать просто зашифрованную БД?
Quote (DEMBEL)
затык в том, что где бы и как бы ни хранилась инфа о триале ее легко можно отковырять или сбросить...
вы читаете предыдущие посты? проблема решается переустановкой программы или просто подменой БД. Нужно чтоб программа не просто хранила триал. инфу, а запоминала что уже была однажды установлена, что инфа уже собиралась, а пользователь пытался ее нагло сковырять. Если не хранить эти данные на стороннем сервере и не обращаться к ним по инету, а хранить на локальной машине, то где и как это сделать, вот в чем вопрос. потому что юзеры щас в состоянии проверять куда и зачем лезет программа, будь то реестр или недра сустем32, и просто все вычистить. Как задавать вопросы
Дата: Вс, 06 Сентября 2009, 19:59 | Сообщение # 106
Ветеран форума
Проверенные
Сообщений: 487
Offline
Quote (DEMBEL)
Нужно чтоб программа не просто хранила триал. инфу, а запоминала что уже была однажды установлена, что инфа уже собиралась, а пользователь пытался ее нагло сковырять.
Хм... я как-то не подумал об этом Выходит что без использования стороннего сервера не получится....
Дата: Вс, 06 Сентября 2009, 22:20 | Сообщение # 109
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (sp3d)
прятать запасной файлик с зашифрованной инфой где нить в недрах сустем32
Где-то читал, что Виндовс все более рьяно защищает свои папки, от версии к версии... Если это действительно так (хотелось бы услышать на этот предмет компетентное мнение) значит, скоро в "систем" ничего не запишешь лишнего... Да и промониторить все "телодвижения" программы можно.
Quote (Bodi)
А не проще ли использовать просто зашифрованную БД?
В принципиальном смысле это тоже, что и запароленный архив - триал-версию я и так уже могу завершить досрочно, если архив будет удален.
Quote (DEMBEL)
проблема решается переустановкой программы или просто подменой БД.
Quote (DEMBEL)
юзеры щас в состоянии проверять куда и зачем лезет программа, будь то реестр или недра сустем32, и просто все вычистить
Это действительно так. Например, есть бесплатная утилита Procmon (от Microsoft). Достаточно простого любопытства, чтобы научиться этому. Конечно далеко не все юзеры обладают любопытством подобного свойства, но тем не менее, рассчитывать на незнание - это в любом случае не лучшая стратегия, скорее так, поиск оправданий.
Quote (sp3d)
100% защиты нет
Конечно, это нам всем хорошо понятно. Защита должна быть такой, чтобы дешевле было купить, чем ломать. Вот это реальная стратегия. Соответственно, чем выше стоимость программы, тем лучше должна быть защита. В этом плане адекватная защита и есть 100%-я защита, образно говоря.
Quote (DEMBEL)
Quote (DEMBEL) лицензионный ключ вполне можно и вручную сгенерировать и выслать после подтверждения оплаты.
ну так как тебе такой вариант?
Это вполне рабочий вариант! Получить на мыло серийник, потом у себя на локальном создать регистрационный ключ и отправить его на мыло пользователю. Минусы этого варианта в том, что нет автоматизации - пользователю придется ждать письма, а это не есть гуд, в наше время. Да и не для того разве программы, чтобы снимать с нас рутинную работу? Хотя тут можно подумать...
Вот, в порядке размышлений, предлагаю к обсуждению такой вариант:
Можно сделать так, чтобы прога на компьютере пользователя отсылала серийник на мой сайт, делая там запись в файле на сервере (записывая серийник+мыло+имя пользователя) (или отправляла бы электронным письмом в конкретную папку почтового ящика, если доступ к файлу на сервере будет организовать не просто...), а программа на моем локальном компьютере бы периодически мониторила содержимое этого файла (или папки) и при получении новой записи проводила бы проверку на корректность (покупалась ли программа с использованием такого е-mail как указано в полученных данных). Для этого, правда, надо как-то допустить программу к базе данных скрипта автоматизации платежей, который я уже использую, чтобы узнать список адресов состоявшихся покупателей (но наверное в этом нет ничего невозможного). Итак, если проверка на корректность пройдена успешно, то программа на моем компе сгенерирует регистрационный ключ и отправит его по указанному e-mail (за одно это защитило бы от простой подстановки ложного e-mail - ведь регистрационный ключ придет на мыло реальному покупателю). Такая система позволила бы автоматизировать отправку регистрационных ключей. От меня требовалось бы лишь оставлять компьютер подключенным к интернет (а если было отключение, то ключи будут выданы сразу как только произойдет включение).
Вот, в порядке размышлений, предлагаю к обсуждению такой вариант:
ты так имеешь ввиду
-------1этап 1-клиент установил прогу 2-запустил(1 раз) 3-Прога отсылает запрос скрипту 4-скрипт делает запрос в БД 5-если нет серийника делает запись(если серийник есть-игнор) -------2этап | 1вариант | 1-авторская прога запрашивает данные, если новая запись, то | 2-серийник+манипуляция=код активации | 3-отправка кода активации клиенту | 2вариант 1-скрипт(серверный) на получении нового серийника генерирует код активации 2-отправляет клиенту код активации
Дата: Вс, 06 Сентября 2009, 23:32 | Сообщение # 113
Необукер
Проверенные
Сообщений: 4238
Offline
Quote (VadimLevkin)
Ну, как-то же человек выходит в интернет
я бы не говорил за всех, не все выходят в инет, имеется ввиду у кого есть комп, некоторым он просто ненужен
Добавлено (06 Сентябрь 2009, 23:32) --------------------------------------------- а бывают что у тех кого есть инет, банально не могут скопировать код и вставить в программу, не думаю что у всех твоих клиентов знание пк на уровне, но поживем как говорится увидем, может я и сгущаю...
Дата: Пн, 07 Сентября 2009, 00:28 | Сообщение # 114
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (sp3d)
я бы не говорил за всех, не все выходят в инет, имеется ввиду у кого есть комп, некоторым он просто ненужен
а бывают что у тех кого есть инет, банально не могут скопировать код и вставить в программу, не думаю что у всех твоих клиентов знание пк на уровне, но поживем как говорится увидем, может я и сгущаю...
Да нет, нисколько не сгущаешь. Дела именно так и обстоят. Даже с молодыми, не говоря уже о возрастниках... Половина моих студентов, к примеру, не знают, что значит слово "браузер", хотя пользуются им ежедневно... Чего уж говорить о кадровых работниках, многие из которых, к примеру, используют компьютер как пишущую машинку с возможностью хранения и распечатки записанного... Это, к сожалению, статистическая норма. Однажды придет время, когда и с такими "знаниями" человек сможет работать в интернете успешно, но пока интернет еще не дошел до такой степени совершенства, чтобы влет адаптироваться под любого чайника.
Красивое решение не должно грузить пользователя... Тем более честного пользователя, который и не собирается ничего ломать или обходить...
Что касается триальности, то, возможно, что это решение презентации программы само по себе скоро вымрет, как класс. Ведь средства мониторинга развиваются и уже доступны простому пользователю - отследить что и куда прога пишет не трудно. Вместе с тем, развиваются и средства визуализации, создания мультимедиа-презентаций различных проектов. Очень может быть, что вместо триал-версии для демонстрации плюсов программы нужно создать хорошую флеш-презентацию программы и подробный красочный справочный файл... Собственно, я слышал, что многие производители начинают поступать именно так. Если исходить из цели - дать пользователю ясное представление о возможностях программы - то мультимедиа-презентация даже намного лучше триал-версии, поскольку сразу показывает логику работы с программой, а триал-версию ведь еще надо пользователю самостоятельно освоить... А тут он видит куда пополз указатель мыши, какая кнопка и зачем нажимается, все комментируется голосом, все плюсы демонстрируются (и мы уверены, что пользователь о них узнает, в отличие от триал-версии, где он многое просто не заметит с первых запусков вообще...).
А если исходить из цели создать именно защищенную триал-версию, то задача, конечно, не простая... Не выдавать же аппаратные ключи для триал-версий, в конце концов...
если делать автоматом, то тут все сводится к программированию серверного скрипта, вряд ли это будет бесплатно...
Почему обязательно нужен серверный скрипт? Если через сервер бесплатной почты делать, через тот же Mail.ru, то пусть себе прога мониторит эту папку (на которую можно поставить пароль и прога будет этот пароль знать).
Все же не отказываясь от идеи триал-версии, предлагаю вот такую версию к размышлению (назовем ее "Демо-Триал"):
1. Прога на компе пользователя (при первом запуске) на основе серийника генерит триал-запрос (назовем его так) и предлагает подключиться к интернет, чтобы нажатием кнопки "запросить доступ к триал-версии" отправить триал-запрос письмом мне на мыло (при этом прога открыто показывает мой e-mail и сам триал-запрос (код), который надо мне на мыло отправить - это для того, чтобы можно было отправить через кого-то, кто имеет доступ в сеть или просто с другого компа, например, попросив друга по SMS). Пока триал-ключ не получен прога работает в режиме "Демо" - т.е. без какой-то важной функции.
2. Моя прога "Герератор триал-ключей и активационных паролей" мониторит папку, куда фильтруются письма содержащие определенную последовательность символов (она будет встречаться в коде любого "триал-запроса"). При получении нового письма, она сравнивает в своей БД - есть ли такой e-mail и серийник как те, что переданы письмом. Если есть и этот адрес в базе "покупателей", то высылается активационный пароль (т.е. после оплаты триал-запрос воспринимается как запрос на активацию). А если адрес есть, но он находится в базе "знакомящихся с программой", то высылается триал-ключ под указанный серийник (соответственно сколько серийников придет от одного e-mail, столько и триал-ключей прога выдаст, тут можно не ограничивать человека числом компьютеров на которых может быть установлена триал-версия, главное, чтобы на одном компьютере триал-версия отработала ровно назначенное кол-во раз). Если в базе такого e-mail`a и серийника нет, то они заносятся в базу и выдается триал-ключ на указанный адрес. Этим мы достигаем того, что прога может без ограничений передаваться людьми любыми путями друг другу, но мы обязательно фиксируем все инсталлированные триал-версии и активированные версии (не учтенными остаются только демо).
Минус этого варианта: Пользователю придется нажать на кнопку "запросить доступ к программе" и всё, если у него есть доступ в сеть. А в случае, если у него нет интернета, то придется еще и вручную выслать код на мыло (например попросив кого-то об этом и сообщив код и адрес), а потом вставить полученный ключ в прогу... Кроме того, многие просто не любят "регистрироваться" где бы то ни было, и это дополнительное препятствие на пути покупки программы.
Мне лично обе цели интересны. И практическая - создать "удачную презентацию" и программерская - "понять как можно организовать удачную триальность". И если первой я могу достичь с помощью Camtasia Studio, Snagit и др. известных прог, то вторая остается страшной тайной...
Дата: Пн, 07 Сентября 2009, 00:34 | Сообщение # 115
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (VadimLevkin)
А в случае, если у него нет интернета,
пусть по смс отправит, проверишь все и сгенеришь вручную и вышлешь код) - а что ты имеешь ввиду под мониторингом папки маил.ру? и вообще, если вести базу данных у себя на компе, то задача становится вполне разрешимой (лично для меня, т.к. я в серверных технологиях всяких не шарю), достаточно лишь выработать стандарты операций (куда что копировать, где проверять базу и т.п.) Как задавать вопросы
Дата: Пн, 07 Сентября 2009, 00:48 | Сообщение # 116
Необукер
Проверенные
Сообщений: 4238
Offline
по мне так, на сервере будет быстрей все происходитьб а ежели автор в камандировке или он юбилей неделю( )празднует или же на багамах, и комп не включает, то клиент ждать будет(ну всякое ведь могет быть?!), а сервер всегда работает(если его эст... хацкеры не роняют, будет аут, но не надолго)
Сообщение отредактировано sp3d - Пн, 07 Сентября 2009, 00:49
Дата: Пн, 07 Сентября 2009, 00:58 | Сообщение # 118
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (DEMBEL)
пусть по смс отправит
Да, такая мысль мне тоже приходила. Тоже вариант, причем понятный, хотя тоже не всем... Не все умеют СМС-ками пользоваться...
Quote (DEMBEL)
что ты имеешь ввиду под мониторингом папки маил.ру
Я имел ввиду проверку на новые записи и считывание таковых, если они есть, чтобы автоматом отправить триал-ключ или активационный пароль. Вроде бы эта тема как раз параллельно обсуждается - парсинг, если я правильно понимаю...
Quote (DEMBEL)
если вести базу данных у себя на компе
Я в серверных вообще не шарю, но главное правильный алгоритм найти, а уж реализовать его - всего лишь дело времени. Скрипт платежей я покупал, ставил по инструкции и он работает себе, без моего участия. В моем случае придется решить проблему связи базы данных скрипта и локальной. Иначе автоматизации не будет. А если в общем размышлять, то решение с СМС можно автоматизировать - подключить мобилу к компьютеру, задать синхронизацию мобилы с компьютером, а прогу научить читать СМС-ки из компьютера. Наверное можно научить и отправлять их с компьютера через SMS-клиент бесплатно обратно, но тут я только фантазировать могу, я пробовал прогу бесплатной отправки СМС - smsdv, но там каптча - надо вводить символы перед отправкой каждой СМС, хотя есть и другие проги, может там нет такого препятствия...
Добавлено... Кстати! С соседней темы инфа - может быть указанная Юрой программа может быть полезной в деле создания какой-то новой схемы триальности?
Дата: Пн, 07 Сентября 2009, 01:06 | Сообщение # 119
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (VadimLevkin)
Не все умеют СМС-ками пользоваться...
и после этого:
Quote (VadimLevkin)
А если в общем размышлять, то решение с СМС можно автоматизировать - подключить мобилу к компьютеру, задать синхронизацию мобилы с компьютером, а прогу научить читать СМС-ки из компьютера.
юзер должен обладать гигамозгом для этой операции.
Quote (VadimLevkin)
решить проблему связи базы данных скрипта и локальной.
это уж точно, иначе и скрипт лицензий прикупить придется.
Quote (VadimLevkin)
Я имел ввиду проверку на новые записи и считывание таковых, если они есть, чтобы автоматом отправить триал-ключ или активационный пароль. Вроде бы эта тема как раз параллельно обсуждается - парсинг, если я правильно понимаю...
ну а где письма лежать будут, на страничке маилру? тогда парсить ее без авторизации не выйдет. я подумал что у тебя почтовый клиент и письма скачиваешь к себе на комп в папку. Как задавать вопросы