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

Вниз

условно-бесплатная программа   Найти похожие ветки 

 
brus   (2008-02-13 22:59) [0]

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


 
Семеныч   (2008-02-13 23:48) [1]

Один из возможных способов.

1. Незарегистрированная программа поднимает диалог, где просит юзера ввести ключевое слово и пароль. Без них не работает, или работает с неполной функциональностью.

2. Ключевое слово - любое. Юзер придумывает его сам и сообщает Вам.

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

4. Теперь юзер имеет и ключевое слово, и пароль. Он вводит их в программу. Программа по тому же алгоритму проверяет соответствие ключевого слова и пароля. Если все ОК, то программа саморегистрируется на машине юзера (например, что-то прописывает в своем теле, в реестре, в теле како-то DLL и т.п.).

ПыСы.

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


 
Семеныч   (2008-02-14 00:11) [2]

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


 
Семеныч   (2008-02-14 00:12) [3]

Дополнение к дополнению.
:о)

> его должна сгенерить сама программа, случайным образом

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


 
Германн ©   (2008-02-14 01:20) [4]


> brus   (13.02.08 22:59)
>
> Помогите примером для создания условно-бесплатной программы
> чтобы требовала какую-либо регистрацию в системе
>

В системе в смысле ОС? Или на сайте автора?
Может речь идет о триал-версиях? Тогда смотри тут http://sourceforge.net/projects/tponguard/
Сия библиотека идет с исходниками. Не хочешь пользовать её саму, можешь посмотреть как реализованы специалистами те или иные варианты.


 
Thrasher ©   (2008-02-21 12:06) [5]

Предлагаю такие варианты:
1. кусок кода шифруй, а в качестве ключа используй кусочек из регистрационного номера. (Хотя если кто-то купит и выложит номер в сеть - до одного места)
2. Сделай демку, в которой урезан функционал. Именно урезан, а не выполняется в зависимости от условия зарегестрирован/незарегестрирован. Если не хочешь, чтобы файл результатов записывался - убери этот участок кода из тела программы.

3. Не используй связку Имя/регистрационный номер. Находится в течении от 2 минут до 2 часов. Используй проверку самого регистрационного номера
Например:

if (RegNum[1]=RegNum[5]) and (Ord(RegNum[2])=Ord(RegNum[7])+Ord(RegNum[1]) then Registration=True;


4. Используй файл лицензий. Начинающему крекеру тяжело работать с файлами.

5. Не используй готовых решений типа ASProtect, Armadillo, и иже с ними. Снимается если не автоматически, то руками за 30 мин. ВСЕ КОММЕРЧЕСКИЕ ЗАЩИТЫ разобраны по полочкам. Вплоть до того, что есть генераторы ключей для них.

6. Проверку на зарегестрированность сделать как можно запутаннее. Вызывать системные функции (но их на самом деле не использовать), сделать и т.д.

7. Процедуру регистрации выполнять на виртуальной машине. Конечно придется написать ее, но это того стоит поверь. Я сам написал такую Forth-подобную. Копатся в ней - это ужасный гемор, особенно в дельфевых программах.

8. Проверку на регистрацию сделать не одной процедурой, а несколькими.

9. НЕ использовать глобальную переменную для определения регистрации.

10. НЕ использовать булевые переменные для определения зарегестрирована программа или нет. Лучше всего чтобы она возвращало какое-то значение, которое потом использовать в качестве параметра.

11. В случае неправильной регистрации - не сообщай сразу об этом... Потом... Например при закрытии диалога регистрации.


 
Eraser ©   (2008-02-21 12:19) [6]

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

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



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

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

Наверх





Память: 0.47 MB
Время: 0.007 c
15-1203941482
Незнайка...
2008-02-25 15:11
2008.04.06
Что такое командная работа в Delphi ?


15-1203608629
Новости кино
2008-02-21 18:43
2008.04.06
Булгаковского Воланда сыграет Аль Пачино


2-1204823340
JanMihail
2008-03-06 20:09
2008.04.06
Как вытащить текст из компонента TTextEditor


2-1204972863
kiber-pilot
2008-03-08 13:41
2008.04.06
Замена TMemo


2-1205258821
HITMAN
2008-03-11 21:07
2008.04.06
Как зделать выборку по дате???





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