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

Вниз

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

 
Man   (2003-08-06 13:21) [0]

Привет всем! Такая вот проблема:необходимо сделать для проги защиту от несанкционированного копирования. Задумана следующая схема: при инсталяции собираютя данные об оборудовании, которые преобразуются в последовательность символов. Эта последовательность передаётся нам и на основе её выдаём ключ активации,который прописывается допустим в реестре. При запуске программы снова получается последовательность из данных об оборудовании,преобразовывается и сравнивается с ключом активации. Вопрос в преобразовании последовательности для получения ключа активации. Каким образом её выполнять,какие есть стандартные алгоритмы,подходы. Зараннее всем большое спасибо!


 
PVOzerski   (2003-08-06 13:22) [1]

А потом юзер апгрейд железа сделает...


 
Карелин Артем   (2003-08-06 13:29) [2]

Хэш-функция поможет нам. Ищи на торри по секьюрити. А вообще баловство это.


 
pasha676   (2003-08-06 13:30) [3]

2Man

Разработка и сопровождение любой защиты примерно в 1000 раз дешевле взлома.
Подумай об этом.


 
Anatoly Podgoretsky   (2003-08-06 13:32) [4]

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


 
Digitman   (2003-08-06 13:40) [5]


> защита от несанкционированного копирования


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


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


 
kull   (2003-08-06 13:50) [6]


> Digitman © (06.08.03 13:40)
> Ну и где ж тут защита от копирования ?

Это наверное шутка такая? Очевидно, что Man имеет в виду защиту от нелицензионного (бесплатного, если хотите) использования...

Хотя к железу привязываться - гиблое дело.
Вариант: Можно попробовать использовать внешние ключи типа HardLock, Hasp и т.п. Правда email- ом здесь уже не обойдешься, прийдется к клиенту выезжать...


 
Man   (2003-08-06 14:02) [7]

Да,гм...

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


 
Anatoly Podgoretsky   (2003-08-06 14:10) [8]

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


 
PVOzerski   (2003-08-06 14:11) [9]

2Man ©:
Так что, по Вашему, юзер должен делать, если он решит поменять комп или какие-то комплектующие, а Вы в это время в отпуске будете?


 
Digitman   (2003-08-06 14:19) [10]


> kull


> Очевидно, что


Не очевидно. Копирование есть копирование, это - одно, а использование копии - иное. С т.з. "очевидности" тема/вопрос д.б. прозвучать иначе : "Защита от несанкционированного использования копии".


 
kull   (2003-08-06 15:07) [11]


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

Тогда вполне подойдут Hasp или Hardlock.


> Digitman © (06.08.03 14:19)

Другим это почему-то очевидно...
Да, вопрос не совсем корректно поставлен, но у нас не филологический форум...


 
Anatoly Podgoretsky   (2003-08-06 15:14) [12]

kull © (06.08.03 15:07)
Это цивильное решение, используется аппратная защита и она должна поставляться с программой. К тому же должна выдаваться определенная гарантия на это железо, в течении которой ремонт/замена делается за счет продавца.


 
xShadow   (2003-08-06 15:18) [13]

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

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


 
PVOzerski   (2003-08-06 15:26) [14]

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


 
Anatoly Podgoretsky   (2003-08-06 15:35) [15]

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


 
Man   (2003-08-06 15:43) [16]

>xShadow ©
Так и пусть улавливают,код активации на другом железе не такой будет.
>PVOzerski ©
Можно поподробней,интересно.


 
PVOzerski   (2003-08-06 15:57) [17]

2Man: элементарно. Часть функций вынес в dll-и. Обозвал их именами длиннее 8 символов при совпадении 1-х 8. А потом подключал dll-и динамически по коротким именам. Притом и public names функций сделал в разных dll-ях одинаковыми. Фишка в том, что короткое имя генерится операционной системой автоматически, а число после тильды в этой ситуации зависит от порядка копирования файлов на диск. И уже остается, даже если меньший номер потом освобождается. А при несанкционированном копировании эти короткие имена на новом носителе автоматически же замещаются другими.





 
Man   (2003-08-06 16:14) [18]

>PVOzerski ©
Честно говоря не совсём доехал про длинные и короткие имена,~ и т.п. Если несложно поподробней,раз уж всё элементарно(с точки зрения реализация - да,но принцип?).


 
PVOzerski   (2003-08-06 16:35) [19]

2Man © (06.08.03 16:14):
Простейший пример:

файл: library001.pas
library a;
function Plus(x1,x2:longint):longint;export;
begin
Result:=x1+x2;
end;
exports
Plus name "Func";
begin
end.

файл: library002.pas
library b;
function Minus(x1,x2:longint):longint;export;
begin
Result:=x1-x2;
end;
exports
Minus name "Func";
begin
end.

файл: caller.pas
{$apptype console}
program Caller;
function Plus(x1,x2:longint):longint;
external "librar~3.dll" name "Func";
function Minus(x1,x2:longint):longint;
external "librar~1.dll" name "Func";
var
x,y:longint;
begin
readln(x,y);
writeln(Plus(x,y));
writeln(Minus(x,y));
end.

файл: setup.bat

md c:\protdemo
copy library002.dll c:\protdemo
copy library002.dll c:\protdemo\library003.dll
copy library001.dll c:\protdemo
copy caller.exe c:\protdemo
del c:\protdemo\library003.dll
c:
cd protdemo

Скомпилируй, проинсталлируй, проверь, как работает.
Потом скопируй установленное куда-нибудь еще и запусти оттуда :^)
Я, правда, сейчас FreePascal употребил почему-то, но Delphi сойдет тоже.


 
Man   (2003-08-06 17:16) [20]

Понятно,а если было "санционированное" копирование...


 
PVOzerski   (2003-08-06 17:24) [21]

А для санкционированного надо инсталлятором пользоваться


 
Man   (2003-08-06 17:37) [22]

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


 
PVOzerski   (2003-08-06 17:43) [23]

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


 
Man   (2003-08-06 17:50) [24]

Такой вот ещё вопрос:вышеописанную идея хочу реализовать т.о.:
прога состоит из модуля загрузки и рабочих dll-ек.При инсталяции они зашифровываются с public ключом(данные железа).При запуске они расшифровываются в память,используя приватный ключ,который берётся из реестра(Здесь загвоздка:как расшифровать не в файл а в память и сразу юзать).


 
TButton   (2003-08-06 17:59) [25]

IMHO забей ты на эту защиту. единственная реальная защита, которую я встречал, это защита компашки "Америка" (продолжение казаков) там прога сверяет серийный номер диска или что-то такое.... еще порадовала защита на музыкалке the Eminem show я весь вечер всяко разно пытался его на mp3 перекатать так нифига и не вышло.


 
PVOzerski   (2003-08-06 18:05) [26]

2Man: см. исходники и доки по UPX и т.п. программам. Там же найдешь предупреждение, что такой подход ухудшает эффективность использования оперативной памяти.


 
Man   (2003-08-06 18:28) [27]

А взять то их где?


 
HolACost ( nickname )   (2003-08-06 18:37) [28]

http://sourceforge.net/projects/upx/


 
Man   (2003-08-06 19:03) [29]

>PVOzerski ©
Я тут подумал,можно попроще чуток:использовать 1 ключевую библиотеку с шифруемым именем. Т.е. при инсталяции шифрую имя dll,а при запуске пытаюсь динамически зачитать её с расшифрованным именем.


 
TButton   (2003-08-06 20:30) [30]

2 PVOzerski
вот я не знаю как другие, а я таким извращензмом как копирование установленой проги не занимался. имхо если копировать то сетап.


 
Igor Popov   (2003-08-07 03:29) [31]

ну блин.... дитЁ...

Выписывай ключики на ИМЯ ПОЛЬЗОВАТЕЛЯ, а при запуске сравнивай

Как хранить ключик у юзера - твое право.

Sincerelly yours, "IGP Systems"
Visit our forum: http://forum.igp.org.ua/


 
Man   (2003-08-07 12:42) [32]

>Igor Popov
Декомпилировал,место сравнения ключей нашёл по выводимой ошибке,поменял комнанду условного перехода - всё будет работать...



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

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

Наверх




Память: 0.52 MB
Время: 0.007 c
3-68222
VID
2003-07-26 23:07
2003.08.21
Надо сохранить значение ЛЮБОГО поля TpFIBQuery в поток(Stream)


14-68496
Математ
2003-08-04 19:12
2003.08.21
Математическая бибилиотека


3-68187
Fantasy
2003-07-28 18:25
2003.08.21
ДВА ДЖОЙНА С ОДНОЙ ТАБЛИЦЫ


1-68360
Relaxxx
2003-08-07 10:58
2003.08.21
MonthCalendar и выходные дни


14-68464
Basja
2003-08-06 13:24
2003.08.21
Старая мессага





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский