Alex.sys |
02-12-2008 23:53 970582 |
Помогите ограничить срок роботы программы
Доброе время суток. Короче пишется программа на Delphi 7. Надо сделать так что б она прожила 6 месяцев. А потом что б не запустилась. Например форма проекта. Помогите пожалуйста
|
Admiral |
03-12-2008 03:48 970674 |
Доброго.
Простенькую тайм бомбу можно организовать с помощью сравнений дат (установки и времени окончания работы) в реестре.
|
Delirium |
03-12-2008 07:17 970736 |
И добавить в прогу на проверочку условие: если вдруг кто нить удалит ветку реестра, то сразу не запускать прогу.
|
причём лучше зашифровать дату, чтоб не догадались, и ключ назвать не expiration date, а license key. Только не нарвись на проблемы с законодательством. Если не ты работаешь в конторе, которой прогу ставишь, программа должна отработать срок, уквзвнный в договоре (если не указан - лучше пусть не отключается). Если работаешь и разрабатывал её в рабочее время - можно отсудить у тебя эту программу и она должна тогда работать вечно.
|
Alex.sys |
03-12-2008 19:52 971469 |
Admiral, Delirium, pva, спасибо вам. - Лучшим на этом форуме !!! Весьма вам благодарен
|
Arrest |
03-12-2008 21:38 971579 |
И еще - код программы желательно чем-нибудь зашифровать(имеется в виду готовый exe'шник). Алгоритм шифрования иначе легко находится. А еще посчитать контрольную сумму файла и записать ее куда-нибудь в инсталлятор. При установке просчитывать какой-нибудь хэш(да хоть тот же MD5) от (контрольная сумма проги + дата инсталляции) и писать в экзешник. При запуске пересчитывать CRC файла, читать дату инсталляции, хэшировать и сверять с необходимым хэшем в файле. Таким образом программа не запустится если изменится дата инсталляции или изменится хоть один байт в коде. Дату в реестре можно и не шифровать - открытым текстом. Пущай крякер помучается.
|
Alex.sys |
03-12-2008 22:26 971639 |
Arrest, учту. Спасибо
|
detrin |
03-12-2008 23:00 971673 |
Имхо, если программа небольшая, то зачем мусорить в реестре? Ведь по-хорошему придется еще делать деинсталлятор, для удаления всех этих записей в реестре...
В одной из своих программ использовал вот такой код:
Код:
program Fasad;
uses
Forms,
Sysutils,
Dialogs,
FasadNC in 'FasadNC.pas' {Form1},
Options in 'Options.pas' {OptionsForm};
const
YearExp = 2008;
MonthExp = 2;
DayExp = 15;
function CheckDate(y, m, d: Integer): Boolean;
begin
Result := True;
if (Date > EncodeDate(y, m, d)) then
begin
ShowMessage('Закончилось время использования программы');
Result := False;
end;
end;
{$R *.res}
begin
if CheckDate(YearExp, MonthExp, DayExp) then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TOptionsForm, OptionsForm);
Application.Run;
end;
end.
|
Alex.sys |
03-12-2008 23:26 971704 |
detrin, эт то что надо!!! :jester: Спасибо большое!!! :)
|
Jurist_Juristov@fb |
12-04-2012 16:11 1898332 |
Умники, а что вы будете делать если дату на системных часах переведут?
|
Jurist_Juristov@fb, ты бы сначала на дату постов внимание обратил, а потом умничал. 3 года назад человеку это было актуально.
|
Цитата:
Цитата Jurist_Juristov@fb
Умники, а что вы будете делать если дату на системных часах переведут? »
|
это вопрос того насколько хорошо защищаться. тут уж тогда стоит задуматься а что если ктото дизасемблит и тупо выкинет код проверок на дату время или будет работать в какой нить супер мега песочнице.. фантазия большая.. но настолько ли это все надо автору поста
раз уж он спросил почему бы не ответить
|
Время: 05:24.
© OSzone.net 2001-