Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

Защита программы от несанкционированного копирования   Найти похожие ветки 

 
Vlad ©   (2004-04-05 17:55) [0]

Возникла задача защитить программу от несанкционированного копирования. Есть мысль привязаться к серийному номеру тома на жестком диске и прочим параметрам, к-рые можно получить с помощью ф-ции GetVolumeInformation.
Хотелось бы узнать Ваши мнения, насколько это надежно, какие м.б. подводные грабли ;-) и/или возможно кто нибудь посоветует более грамотное решение задачи ?
Спасибо.


 
alless ©   (2004-04-05 18:07) [1]

> серийному номеру тома на жестком диске и прочим параметрам
a esli u celoveka vint umer i kupil novii, cto delati?


 
Vlad ©   (2004-04-05 18:18) [2]


> alless ©   (05.04.04 18:07) [1]

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


 
YurikGl ©   (2004-04-05 19:05) [3]

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

При запуске прога проверяет наличие этой дискеты (компашки) в приводе.

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

Сделать полностью идентичный диск нормальному юзеру не под силу.


 
Anatoly Podgoretsky ©   (2004-04-05 19:12) [4]

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


 
Vlad ©   (2004-04-05 19:26) [5]


> Anatoly Podgoretsky ©   (05.04.04 19:12) [4]

Алгоритм примерно такой.
Программа считывает информацию о серийном номере тома и другие характеристики. На основе них генерирует некий уникальный ключ.
При первом запуске этой программы пользователю предлагается этот ключ как запрос, и он(пользователь) должен ввести ответный ключ. Ответный ключ он получает только у администратора.  
Как только ответ введен (и если он правильный), то ключ записывается в реестр (или базу) и каждый раз при новом запуске программы сравнивается с параметрами жесткого диска пользователя. Как только параметры не совпали, значит была попытка копирования или форматирования диска и программа снова выдает запрос ввиде нового ключа.
Вроде бы на первый взгляд должно защитить. Где могут быть дыры ?


 
Sergey_Masloff   (2004-04-05 19:31) [6]

Vlad ©   (05.04.04 19:26) [5]
Дыра вот здесь
>Как только параметры не совпали
Очень легко найти это место и поменять HEX-редактором JZ -> JNZ
или наоборот. Это сейчас умеют, можно считать, все... ИМХО не катит.


 
YurikGl ©   (2004-04-05 19:31) [7]

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


 
Vlad ©   (2004-04-05 19:33) [8]


> Sergey_Masloff   (05.04.04 19:31) [6]

Защита от хакеров не предусматривается ;-)
Нужна защита от "особо умных" юзеров.


 
Vlad ©   (2004-04-05 19:34) [9]


> YurikGl ©   (05.04.04 19:31) [7]
> Если программа будет проверять корректность ключа только
> при запуске

Согласен. Достоверность ключа можно проверять периодически...


 
Anatoly Podgoretsky ©   (2004-04-05 19:34) [10]

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

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

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


 
YurikGl ©   (2004-04-05 19:36) [11]

Против "обычных" юзеров поступаешь проще. Создаешь в каталоге /windows/system32/.... dll-ку со страшным названием и содержанием и проверяещь ее наличие.

Аналогично, можно сделать ключ в реестре и не париться с серийными номерами.


 
Vlad ©   (2004-04-05 19:40) [12]


> Anatoly Podgoretsky ©   (05.04.04 19:34) [10]

Да, вопрос поставлен некорректно. Имелось ввиду несанкционированное использование программы при копировании.

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


> YurikGl ©   (05.04.04 19:36) [11]

Это решается простым копированием всего диска.


 
YurikGl ©   (2004-04-05 19:43) [13]

>>Меня беспокоит другое. Нет ли каких нибудь программ, которые позволяют полностью копировать образ диска, включая серийные номера томов ?

Проще [6] сотворить, чем диск копировать или прогу какую-то искать.


 
Anatoly Podgoretsky ©   (2004-04-05 19:44) [14]

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


 
Vlad ©   (2004-04-05 20:01) [15]


> Anatoly Podgoretsky ©   (05.04.04 19:44) [14]

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


 
panov ©   (2004-04-05 20:10) [16]

>Vlad ©   (05.04.04 20:01) [15]
Необязательно привязываться к серийным номерам.
Получи информацию о конфигурации другого оборудования, параметров компонентов.
Получишь уникальный набор.


 
Anatoly Podgoretsky ©   (2004-04-05 20:11) [17]

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


 
Vlad ©   (2004-04-05 20:16) [18]


> panov ©   (05.04.04 20:10) [16]

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


> Anatoly Podgoretsky ©   (05.04.04 20:11) [17]

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


 
Vlad ©   (2004-04-05 20:28) [19]

Вот еще вопрос, касательно поста Сергея Маслова [6]
Если все-таки проверять достоверность ключа не только при начальном запуске программы, а периодически, перед любой операцией, ну или скажем отдельный поток раз в N секунд будет сверять ключ, уменьшит ли это вероятность хака программы ?
(это уже из любопытства, в реальной задаче это не столь важно)


 
YurikGl ©   (2004-04-05 21:33) [20]

Влад, если хочешь, я тебе скину статью, в которой популярно объясняется как взламывают программы. Пиши YurikGl@newmail.ru


 
VMcL ©   (2004-04-06 00:20) [21]

>>YurikGl ©  (05.04.04 21:33) [20]

Я могу и так рассказать, где смотреть: http://www.wasm.ru/


 
YurikGl ©   (2004-04-06 12:37) [22]

re [21] не стал писать т.к.

Запрещается:

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

Просто статейка мне попалась, которую потом удалили, где пошагово взламывался Accent Word Password Recovery

:)


 
serge35   (2004-04-06 12:42) [23]

1C что только не делала для защиты - все равно ломают
Консультант+ каждые 2 месяца выпускает новый ехе.
Лично я был бы рад, что мою программу копируют.
Если ее копируют, значит она нужна людям, значат я написал
нужную и полезную программу.


 
LaidBack   (2004-04-06 13:23) [24]


> serge35   (06.04.04 12:42) [23]
> 1C что только не делала для защиты - все равно ломают
> Консультант+ каждые 2 месяца выпускает новый ехе.
> Лично я был бы рад, что мою программу копируют.
> Если ее копируют, значит она нужна людям, значат я написал
>
> нужную и полезную программу.


Ты был бы рад, если бы не собирался делать на этой программе деньги, в противном случае, это мало бы тебя веселило :)


 
serge35   (2004-04-06 13:32) [25]

А что, программа написана на лицензионном ПО?


 
Anatoly Podgoretsky ©   (2004-04-06 13:36) [26]

serge35   (06.04.04 13:32) [25]
А у тебя что есть сомнения, как основания думать так плохо, менталитет?


 
Vlad ©   (2004-04-06 13:55) [27]


> serge35   (06.04.04 13:32) [25]

Программа написана на лицензионном ПО


 
Иксик ©   (2004-04-06 15:07) [28]

Мне как-то Игорь Шевченко посоветовал http://www.guardant.com/, мы воспользовались и оказались очень довольны. :) Хорошая вещь!



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.03 c
1-1082287224
ASvencim
2004-04-18 15:20
2004.05.02
Как внести изменения в реестр?


1-1081798973
Nekto
2004-04-12 23:42
2004.05.02
Excel


14-1081485626
Rouse_
2004-04-09 08:40
2004.05.02
Утро добрым не бывает...


14-1081759781
Lexer
2004-04-12 12:49
2004.05.02
Характеристика программиста


3-1080827019
Max_
2004-04-01 17:43
2004.05.02
TDataSetProvider, TClientDataSet и округление групповых фун-ий





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский