Страница: 1 |
Страница: 1 |
Вопрос: Чем сделать лицензию на прогу? Share-Ware
Добавлено: 25.05.06 16:21
Автор вопроса: ZXC
Оказываеться на .NET практически не чего нету, нужно сделать лицензию на прогу, чтобы под каждый комп 1 копия, подскажите софт, платный/бесплатный неважно
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
Эндрю
ICQ: 303-304-826
Вопросов: 24
Ответов: 103
Web-сайт:
Профиль | | #1
Добавлено: 26.05.06 01:40
Вот пример из учебника Падре
На форме 2 текст. поля, первое текст. поле это с/н, при первом запуске программы в заныканый файл(или реестр) записывается случайный с/н(RND). Второе текстовое поле, это ключ. Он высчитывается в зависимости от с/н, по определенной формуле(например ключ = с/н * 3/555+1). Так вот, чел присылает тебе свой с/н(а он на каждом компе свой) + бабло, а ты ему ключ. Идею понял?? Ну тогда начнем`с:
Как я уже и говорил, на форму кинь кнопку(Caption = "Регистрация", 2 текст. поля(в ряд), 2 метки(у первой Caption = "Серийный номер", она находится напротив первого текст. поля, у второй: Caption = "Ключ", напротив второго текст. поля).
Теперь подайдем к коду:
Dim SNPath As String ' В этой переменной будет храниться путь к заныканому файлу с с/н
Dim GetReestr As String ' В эту переменную будет читаться данные из реестра
Dim Serial As String ' А эта переменная, будет загружать в текст. поле 1 с/н из файла
Function Start() ' Эта функция будет выполняться если программа зарегистрирована
End ' Я написал End, а ты можешь сюда что - нбудь по умнее вставить
End Function
Private Sub Form_Load() Randomize ' Этот оператор нужен для того, чтоб всегда генерировались случайные числа(RND(ты что забыл??))
On Error Resume Next ' Если происходит ошибка, то игнорируем ее
GetReestr = GetSetting("proga", "serial", "serial" ' Читаем из реестра значение параметра serial(если serial = 0, значит программа не зарегистрированая, а если 1 то зарег-на)
SNPath = Environ("windir" & "\key.sn" ' В переменную SNPath - записываем путь к заныканому в папке windows файлу key.sn
f = FreeFile
If Val(GetReestr) <> 1 Then ' Если GetReestr не равен 1, то продолжаем регистрацию, если же = 1, то программа уже зарегистрирована
If Dir(SNPath) = "" Then ' Если файла с с/н не существует, то:
Text1.Text = Fix(Rnd * 8000000000#) ' Генерируем случайное число(в любом пределе, можно вместо 8 с деветью нулями написать любое число), и округляем его(Fix())
Serial = Text1.Text ' Это число записываем в перем. Serial
Open SNPath For Output As f ' Открываем заныканный файл
Print #f, Text1.Text ' Записываем в него с/н из текст. поля 1
Close #f ' Закрываем
SaveSetting "proga", "serial", "serial", 0 ' Записываем в реестр параметр Serial со значением 0(ноль означает что программа не зарегистрирована)
Else ' Если же файл существует, то читаем из него с/н
Open (SNPath) For Input As f
Serial = Val(Input(LOF(f), f))
Text1.Text = Serial ' В текс. поле помещаем с/н
Close #f
End If
Else ' Если же в реестре параметр Serial = 1(программа зарег-на), то запускаем функцию Start
Start
End If
End Sub
Private Sub Command1_Click() ' При нажатии на кнопку:
Text1.Text = Serial ' Копируем в текст. поле значение переменной serial(на случай, если чел изменил текст в текст. поле 1)
If Text2.Text = Fix(Val(Serial) * 3 + 333 / 2) Then ' Вот самое интересное , если текст. поле 2(ключ) равен с/н умноженному на 3 + 333 / 2
SaveSetting "proga", "serial", "serial", 1 MsgBox "Программа зарегистрирована" Start ' Запускаем функцию Start
Else
MsgBox "Введен не правильный ключ!!! Для регистрации отправь автору программы с/н и $, а он вышлет тебе ключ" End If
End Sub
Ну вот и все, чтобы узнать ключ с/н * 3 + 333 / 2. Для этого лучше написать программу
автор учебника: Падре
Дата создания: 12 декабря 2003 года
Номер ответа: 2
Автор ответа:
ZXC
Вопросов: 30
Ответов: 106
Профиль | | #2
Добавлено: 26.05.06 06:55
Во первых это VB6 а во вторых эту "защиту" сломать можно поправив пару байт, нужен профессиональный софт, именно для .NET что ни кто не чего не знает?
Номер ответа: 3
Автор ответа:
ZXC
Вопросов: 30
Ответов: 106
Профиль | | #3
Добавлено: 26.05.06 06:56
хуясе защита...считывает с реестра, зарегана она или нет
Номер ответа: 4
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #4
Добавлено: 26.05.06 07:18
какая разница откуда считывать? если в реестре указан уникальный ключ, проверяемый при каждом запуске - то нормально. ну а если правда 0 - незарег. 1- зарег то это фыгня
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 26.05.06 18:06
AVPACK
Номер ответа: 6
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #6
Добавлено: 26.05.06 19:12
by the way
http://www.vbnet.ru/forum/show.aspx?id=68451 !!!!!!!
Номер ответа: 7
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #7
Добавлено: 26.05.06 22:53
заблуждаешься..
Ищи инфу по:
System.ComponentModel.LicenseProvider
System.ComponentModel.LicenseManager
Лично не юзал, но часто в книгах встречал главы по их использованию...
Номер ответа: 8
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #8
Добавлено: 29.05.06 23:11
Защиту МОжно так сделать:
Декларируешь в своей проге текстовую Вариаблю
Dim strLicense as string = "XXX"
Компилишь свою прогу в ехе
затем создай другую прогу которая читает ету первую в потоке и найди порядковый номер бита например первого Икса в ХХХ.
Теперь если ключ правильный заменяем ХХХ на УУУ
а если не правильный на ХУN
При старте твоя прога смотрит Вариаблю strLicense и если она ХУN то прога не работает.
Недостаток - после каждой компиляции надо проверять порядковый номер бита.
Номер ответа: 9
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #9
Добавлено: 29.05.06 23:12
ПОд комп - можно считать МАК-адрес сетевухи, дату биоса, сер номер винта и зашифровать это всё в один салат.
Номер ответа: 10
Автор ответа:
LeX
ICQ: 301424893
Вопросов: 28
Ответов: 277
Web-сайт:
Профиль | | #10
Добавлено: 31.05.06 17:44
Статья про шареваре проги. Может найдешь что-нибудь полезное для себя