Войти

Показать полную графическую версию : [решено] Помогите ограничить срок роботы программы


Alex.sys
02-12-2008, 23:53
Доброе время суток. Короче пишется программа на Delphi 7. Надо сделать так что б она прожила 6 месяцев. А потом что б не запустилась. Например форма проекта. Помогите пожалуйста

Admiral
03-12-2008, 03:48
Доброго.
Простенькую тайм бомбу можно организовать с помощью сравнений дат (http://forum.oszone.net/thread-66749.html) (установки и времени окончания работы) в реестре (http://forum.oszone.net/thread-49391.html).

Delirium
03-12-2008, 07:17
И добавить в прогу на проверочку условие: если вдруг кто нить удалит ветку реестра, то сразу не запускать прогу.

pva
03-12-2008, 07:53
причём лучше зашифровать дату, чтоб не догадались, и ключ назвать не expiration date, а license key. Только не нарвись на проблемы с законодательством. Если не ты работаешь в конторе, которой прогу ставишь, программа должна отработать срок, уквзвнный в договоре (если не указан - лучше пусть не отключается). Если работаешь и разрабатывал её в рабочее время - можно отсудить у тебя эту программу и она должна тогда работать вечно.

Alex.sys
03-12-2008, 19:52
Admiral, Delirium, pva, спасибо вам. - Лучшим на этом форуме !!! Весьма вам благодарен

Arrest
03-12-2008, 21:38
И еще - код программы желательно чем-нибудь зашифровать(имеется в виду готовый exe'шник). Алгоритм шифрования иначе легко находится. А еще посчитать контрольную сумму файла и записать ее куда-нибудь в инсталлятор. При установке просчитывать какой-нибудь хэш(да хоть тот же MD5) от (контрольная сумма проги + дата инсталляции) и писать в экзешник. При запуске пересчитывать CRC файла, читать дату инсталляции, хэшировать и сверять с необходимым хэшем в файле. Таким образом программа не запустится если изменится дата инсталляции или изменится хоть один байт в коде. Дату в реестре можно и не шифровать - открытым текстом. Пущай крякер помучается.

Alex.sys
03-12-2008, 22:26
Arrest, учту. Спасибо

detrin
03-12-2008, 23:00
Имхо, если программа небольшая, то зачем мусорить в реестре? Ведь по-хорошему придется еще делать деинсталлятор, для удаления всех этих записей в реестре...
В одной из своих программ использовал вот такой код:

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
detrin, эт то что надо!!! :jester: Спасибо большое!!! :)

Jurist_Juristov@fb
12-04-2012, 16:11
Умники, а что вы будете делать если дату на системных часах переведут?

Delirium
12-04-2012, 17:30
Jurist_Juristov@fb, ты бы сначала на дату постов внимание обратил, а потом умничал. 3 года назад человеку это было актуально.

Beyound
12-04-2012, 17:35
Умники, а что вы будете делать если дату на системных часах переведут? »
это вопрос того насколько хорошо защищаться. тут уж тогда стоит задуматься а что если ктото дизасемблит и тупо выкинет код проверок на дату время или будет работать в какой нить супер мега песочнице.. фантазия большая.. но настолько ли это все надо автору поста
раз уж он спросил почему бы не ответить




© OSzone.net 2001-2012