Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Помогите ограничить срок роботы программы (http://forum.oszone.net/showthread.php?t=124829)

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

И добавить в прогу на проверочку условие: если вдруг кто нить удалит ветку реестра, то сразу не запускать прогу.

pva 03-12-2008 07:53 970749

причём лучше зашифровать дату, чтоб не догадались, и ключ назвать не 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

Умники, а что вы будете делать если дату на системных часах переведут?

Delirium 12-04-2012 17:30 1898405

Jurist_Juristov@fb, ты бы сначала на дату постов внимание обратил, а потом умничал. 3 года назад человеку это было актуально.

Beyound 12-04-2012 17:35 1898411

Цитата:

Цитата Jurist_Juristov@fb
Умники, а что вы будете делать если дату на системных часах переведут? »

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


Время: 05:24.

Время: 05:24.
© OSzone.net 2001-