Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Где в реестре (ветка) прописать параметр (триального периода) ? [D7, XP]


Страницы:   1 2 3

Stepper ©   (2008-01-04 16:36:00) 

Собственно Сабж! И корректно ли сея реализация ограничений?


Stepper   (2008-01-04 23:22:00) [21]


> Loginov Dmitry ©   (04.01.08 23:10) [21]


Я использую сей код (триала)
...
var
 reg: tregistry;
 n: integer;
begin
 reg := tregistry.create;
 with reg do
 begin
   openkey('Software', true);
   openkey('StepSoft', true);
   if valueexists('key') then // первый запуск?
   begin // - нет
     n := readinteger('key') - 1;
     if n >= 0 then
       writeinteger('key', n)
   end else begin // - да, первый запуск
     n := 10; // число запусков
     writeinteger('key', n)
   end;
   free
 end;
 if n > 0 then
...

Как зашифровать переменную n(10)  и потом прочитать ее, применительно сего кода? Или что в нем можно переделать? (в коде)


Loginov Dmitry   (2008-01-04 23:10:00) [22]

> Нус вот что он и делает...
>
> (HKCU, HKLM, HKCR, HKCC)
>
> CLSID
> *\shellex\ContextMenuHandlers
> Identities
> Control Panel\Desktop\WindowMetrics
> SOFTWARE\Microsoft\Windows\CurrentVersion
> SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CLSID


Это лишь список предлагаемых веток, где программа может спрятать свой счетчик. Догадайся тут найти что-либо! А фишка - в генерации имени переменной (на основании сведений о программе). Получается уникальный набор символов (например "6C32D4ACEEC2"), чье назначение поймет далеко не каждый.


Stepper   (2008-01-04 22:32:00) [23]


> Loginov Dmitry ©   (04.01.08 21:40) [19]


Нус вот что он и делает...

(HKCU, HKLM, HKCR, HKCC)

CLSID
*\shellex\ContextMenuHandlers
Identities
Control Panel\Desktop\WindowMetrics
SOFTWARE\Microsoft\Windows\CurrentVersion
SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CLSID


Loginov Dmitry   (2008-01-04 21:40:00) [24]

> Где в реестре (ветка) прописать параметр (триального периода)
> ?


Глянь, как это делает ORiEN. По мне, так вполне достойное решение. И реестр не засоряет, и найти заветный параметр без соответствующего ПО практически невозможно.


Stepper   (2008-01-04 19:24:00) [25]


> Reindeer Moss Eater ©   (04.01.08 19:05) [16]


Для настроек уникальных для компьютера:

HKEY_LOCAL_MACHINE\SOFTWARE\наименование твоей организации\имя программы

Для настроек уникальных для пользователя в пределах одного компьютера:

HKEY_CURRENT_USER\SOFTWARE\наименование твоей организации\имя программы

:)


Stepper   (2008-01-04 19:05:00) [26]


> {RASkov} ©   (04.01.08 18:36) [14]


Глянул! `Cг@ :)


Reindeer Moss Eater   (2008-01-04 19:05:00) [27]

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


{RASkov}   (2008-01-04 19:01:00) [28]

> [11] Stepper   (04.01.08 18:22)

А вот такой вариант шифрования:

Dt: TDate = 8 байт

type TCodeDate = record
     A,B,C,D,E,F,G,H: Byte;
    end;
cd: TCodeDate;

раскладываешь Dt по байтам в cd и перетасовываешь между аbcdefgh и записываешь разом cd либо в файл, либо в реестр (WriteBinary)...
при чтении собираешь байты вместе по определенному заранее алгоритму (по тому каким растосовал их)....
Я правда сам не пользовался этим..... вот только, что придумал :) Может и вообще лажа полная :(


{RASkov}   (2008-01-04 18:36:00) [29]

> [11] Stepper   (04.01.08 18:22)

Просто небольшой наглядный пример:
var F: File; Dt: TDate;
begin
 AssignFile(F, 'File.Dat');
 Rewrite(F, 1);
 Dt:=Date;
 BlockWrite(F, Dt, 8);
 CloseFile(F);
 Dt:=0;
 Reset(F,1);
 BlockRead(F, Dt, 8);
 ShowMessage(DateToStr(Dt));
 CloseFile(F);
end;
А теперь глянь, что у тебя в файле File.Dat - вот скажи, ты вот разберешься? :)
А если еще и подвергнуть Dt шифрованию перед записью..... вообще туши свет будет :) или вместе с Dt хранить еще чего нибудь, например:
type TTrialData = record
     Dt: TDate;
     RunCount: Integer;
    end;
и все это записать
Rewrite(F, 1);
BlockWrite(F, Dt, SizeOf(TTrialData));
//где Dt: TTrialData;
Можно не обязательно хранить в реестре, хотя и там есть бинарный тип.... а можно в файле, как в данном примере....


Kolan   (2008-01-04 18:24:00) [30]

> Что и как?

Что что ключь свой, xor'ом зашифруй и радуйся :)


engine   (2008-01-04 18:23:00) [31]

> [11] Stepper   (04.01.08 18:22)

xor


Stepper   (2008-01-04 18:22:00) [32]


> {RASkov} ©   (04.01.08 18:11) [10]


...можно применить примитивный вариант шифрования, или хранить не в текстовом виде


А вот тут поподробнее! Что и как?


{RASkov}   (2008-01-04 18:11:00) [33]

> [9] Stepper   (04.01.08 17:59)

И не обязательно скрывать, можно применить примитивный вариант шифрования, или хранить не в текстовом виде...
Поверь.... кому надо, они что хочешь найдут и расшифруют..... так, что не парься на этот счет
.... А 80% пользователей (а может и больше) это не смогут сделать :)


Stepper   (2008-01-04 17:59:00) [34]


> {RASkov} ©   (04.01.08 17:55) [8]


Не в коей мере ;) Я и сам знаю что вариантофф море! но лютьшее не сорить в реестре а тайно скрыть свой ключеГГ :))) Спс за советы!


{RASkov}   (2008-01-04 17:55:00) [35]

> [7] Stepper   (04.01.08 17:46)
> Сарказм тут не уместен!

Нисколько....и никакого.

> Я могу хоть всю ветку ключами закидать а суть и последствия?

Твое право..... но и твой минус.

> Я совета прошу и напутствия на нужную волну а не ...

Понимаешь.... посоветовать-то тут уже посоветовали..... осталось подумать....
Более того вариантов решения сабжа - море.....
Ты вопросы конкретнее задавай.... и не обижайся :)


Stepper   (2008-01-04 17:46:00) [36]


> {RASkov} ©   (04.01.08 17:37) [6]


Сарказм тут не уместен! Я могу хоть всю ветку ключами закидать а суть и последствия? Я совета прошу и напутствия на нужную волну а не ... Сорри за ИМХО!


{RASkov}   (2008-01-04 17:37:00) [37]

> [5] Stepper   (04.01.08 17:35)
> и....

А подумать?
Здесь есть несколько вариантов продолжения "и...." :)


Stepper   (2008-01-04 17:35:00) [38]


> Iskander ©   (04.01.08 17:18) [4]


и....


Iskander   (2008-01-04 17:18:00) [39]

HKLM/Software/MySuperProga/TrialDate
Этой веткой сможет пользоваться (на редактирование) только админ компа. Обычных юзерей такие ограничения достают сильно


Stepper   (2008-01-04 17:11:00) [40]


> Anatoly Podgoretsky ©   (04.01.08 16:49) [2]


И корректна ли сея реализация ограничений?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо