Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2008, 10:50   #31
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Вот еще вариант ограничения количества запусков программы с созданием файла контроля.Добавляем следующий код:
Код:
var
  count: integer;  //  счетчик количества запусков проги
implementation
{$R *.dfm}
procedure ReadCount; // считываем оставшееся число запусков
var
f: TextFile;
begin
  AssignFile(f,'C:\WINDOWS\winstsys.dxt');
  {$I-}
  Reset(f);
  {$I+}
  if IOResult = 0 then
  begin
    Read(f,count);
    CloseFile(f)
  end
  else count = 5; //  при первом запуске файла еще нет 
                       //  и мы задаем явно число запусков
  Application.MessageBox(PChar('Это триал-версия'),
       PChar('Осталось запусков - ' + IntToStr(count - 1)),
       MB_ICONQUESTION+MB_OK);
end;

procedure WriteCount;  // запись в файл числа запусков
var
  f: TextFile;
begin
  AssignFile(f,'C:\WINDOWS\winstsys.dxt');
  Rewrite(f);
Write(f,count);
CloseFile(f);
end;
В процедуру FormActivate добавляем
Код:
ReadCount;  //  читаем файл
Dec(count);  // уменьшили счетчик
WriteCount;  // записали счетчик
и еще в программе добавить if count <= 0 then Form1.Close;

Выбираем для контрольного файла "хитрое" имя, что нибудь близко к системному и прячем поглубже.Благо в Windows таких папок навалом (WINDOWS,system,ProgramsFile и т.п.).
Обычный пользователь,если и наткнется на такой файл, то постесняется менять что либо в системных папках.Ну а для хацкера, конечно, это не защита.Но, как говорится, замки вешают от честных людей.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 03.12.2008, 14:21   #32
daunito
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Mitriy08 Посмотреть сообщение
Для красоты можно хранить не само число, а хеш числа.
+ Кроме того, что запихивать это число в сам exe я бы запихивал еще в какой нить файл на винчестере и запихивал его бы подальше. И при загрузке проги сравнивал эти числа....
Ну серавно так сказать кто захочет ламануть прогу запустит дебагер и всо....
Откровенная чушь. Хэш не поддается дешифрованию, какой тогда смысл от него?
daunito вне форума Ответить с цитированием
Старый 03.12.2008, 14:43   #33
Mitriy08
Пользователь
 
Регистрация: 11.07.2008
Сообщений: 91
По умолчанию

Защита от дурака... к примеру я открываю файл и вижу там конкретное число исправляю его и все.. а тут хеш открываю и вижу фигу, не опытный человек не сразу поймет что к чему...
А сравнить 2 хеша можно легко..... если хеши не сошлись закрываю прогу и говорю гудлак delete etc...

Еще раз подчеркну!!!
Цитата:
Ну серавно так сказать кто захочет ламануть прогу запустит дебагер и всо....
Mitriy08 вне форума Ответить с цитированием
Старый 03.12.2008, 15:04   #34
daunito
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Mitriy08 Посмотреть сообщение
Защита от дурака... к примеру я открываю файл и вижу там конкретное число исправляю его и все.. а тут хеш открываю и вижу фигу, не опытный человек не сразу поймет что к чему...
А сравнить 2 хеша можно легко..... если хеши не сошлись закрываю прогу и говорю гудлак delete etc...
Все это баловство. Ежели чел полез ковыряться в ехешнике, то я думаю его и хэш не остановит, надо просто проследить что сравнивается с хэшем. А насчет дебагера, то там можно хоть наизнанку вывернуться и извратиться на 1000 строк кода, НО!!! В момент выполнения Close; надо в условии поставить отрицание и ФСЁ.
Единственный вариант против дебагеров видится в запаковке ехе-шника, динамически изменяемый код, дешифровка выполняемого кода в процессе выполнения... Вообщем это уже не детское колдунство ))
daunito вне форума Ответить с цитированием
Старый 03.12.2008, 16:11   #35
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

daunito
Все методы должны применяться в комбинации, а не по отдельности. В данной теме рассматривается конкретный метод, а как его потом использовать - дело фантазии.
Я, обычно, кроме всяких там запаковок ЕХЕ-файла, хранении хэша программы и т.п. использую изменяемый параметр (в данном случае - счётчик) в алгоритме работы программы. Даже если через Close удастся прорваться, программа будет работать, но её работа будет некорректной. А исправить алгоритм на уровне отладчика очень не просто.
Arigato вне форума Ответить с цитированием
Старый 03.12.2008, 16:28   #36
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Кстати, Arigato последрий твой пример (limit.rar) работает.Но если тупо повторить в другую программу (даже точно такую же) - перестает работать.Наверное чегото замутил там. Nod32 выдает наличие вируса. Признаюсь я все таки обошел секрет,правда пол-дня помучился.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 04.12.2008, 09:24   #37
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Видимо, он думает что там вирус, т.к. каким-то образом понимает, что мы меняем ЕХЕ файл, что не есть хорошо и вызывает подозрение на вирус.

Пример, что я сделал, уже удалил у себя. Скорее всего, Вы забыли глянуть в сам проект (*.dpr), там кое-что тоже надо прописать.

Последний раз редактировалось Arigato; 04.12.2008 в 09:26.
Arigato вне форума Ответить с цитированием
Старый 04.12.2008, 09:37   #38
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

А вот на компе с Каспером картинка интереснее - в момент создания .tmp срабатывает проактивная защита, файл .tmp зависает в папке проекта, а защита запрашивает - Запретить или Пропустить.
При подтверждении Пропустить выполнение программы продолжается, файл .tmp уничтожается.А при Запретить - процесс прерывается и файл
.tmp остается в папке.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вставка значений Iskin Microsoft Office Excel 0 27.10.2008 13:21
Суммирование значений БД Andi2118 БД в Delphi 3 12.10.2008 20:25
Поиск значений Rom1k06 Microsoft Office Excel 11 04.09.2008 05:14
Перевод значений DeDoK Общие вопросы Delphi 3 19.05.2008 08:39
Сложение значений Torrenter Компоненты Delphi 2 11.01.2008 19:14