![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать ограничение работы программы по дате?
O.Snopok © (2007-08-31 04:18:00)Мне нужно, чтобы программа работала только до конца 2007 года. Как это реализовать таким образом, чтобы "проблема" не решалась простым переводом виндовских часов?
Anatoly Podgoretsky (2007-09-02 11:33:00) [21]> Юрий Зотов (02.09.2007 11:24:52) [52]
7. не требуется и расспутывать, просто можно обратно по той же схеме записать, если защита простая.
Нормальный монитор к тому же покажет, где ложное чтение, где ложная запись и в итоге останется всего несколько строчек.
По наблюдением, чем меньше знаний, тем легче взламывают программы, по скольку им не сложно копаться во всемирной помойке и тратить время на ненужный взлом.
Если знаний много, то взлом осуществляется путем отправки в корзину. Еще не хватало, что бы тратить свое время на какую то поделку, а если программа нужное, то она просто покупается или пишется своя, в зависимости от ноухау и ценности.
Программы ломают в основном ламеры и команды, соревнующиеся кто быстрее и больше. Прочие пользуются уже взломаным.
Юрий Зотов (2007-09-02 11:24:00) [22]> Denis_ © (02.09.07 10:38) [49]
Не понимаю, с чем Вы пытаетесь спорить?
1. Что работа программы с реестром/файлами мониторится хорошо известными и легко доступными программами - это бесспорно? Бесспорно.
2. Что когда Вы писали [4], Вы этого или не знали, или не учли - это очевидно? Очевидно.
3. Что работу программы с реестром/файлами можно запутать бессчисленным количеством разных способов - это тоже очевидно? Тоже.
4. Что при желании всю эту путаницу можно распутать - с этим, надеюсь, Вы спорить не станете?
5. Что можно и ничего не распутывать, а просто отключить проверку - это тоже, надеюсь, понятно?
6. Вы полагаете, что способы затруднения такого распутывания мне неизвестны? Боюсь Вас разочаровать, но известны, и очень давно (да и придумать их - вовсе не бином Ньютона).
7. Что рядовому юзеру такое распутывание может оказаться не по зубам - с этим кто-нибудь спорил? Не спорил. Более того, об этом было сказано аж еще в [3].
8. Что в данном случае вряд ли кто вообще станет заниматься хоть каким-то взломом - это ясно? Ясно. Потому что не тот случай. Когда пройдет срок, юзеру будет гораздо проще получить новую версию программы, без всякой головной боли.
Все совершенно очевидно и говорить, по сути, не о чем. А тратить время на бессмысленное пережевывание очевидных вещей и пустое препирательство я не хочу. Уж извините.
Denis_ (2007-09-02 10:57:00) [23]
> Главный вопрос - где запоминать текущую дату? Можно в реестре
> или файле (в зашифрованном виде), можно в теле самой программы,
> можно скомбинировать.
© Юрий Зотов.
Как это можно сделать?
Инс (2007-09-02 10:39:00) [24]>
> [48] Denis_ © (02.09.07 10:37)
function GetBuildTime: TDateTime;
var
Offset:DWORD;
FD:LongRec;
Date,Time:TDateTime;
begin
Result:=0;
Offset:=PImageNtHeaders(HInstance+DWORD(PImageDosHeader(HInstance)._lfanew)).OptionalHeader.DataDirectory[IMAGE_DI RECTORY_ENTRY_RESOURCE].VirtualAddress;
if Offset<>0 then begin
Integer(FD):=PInteger(Offset+HInstance+4)^;
if TryEncodeDate(FD.Hi shr 9+1980,FD.Hi shr 5 and 15,FD.Hi and 31,Date)
and TryEncodeTime(FD.Lo shr 11,FD.Lo shr 5 and 63,FD.Lo and 31 shl 1,0,Time) then
Result:=Date+Time;
end;
end;
Denis_ (2007-09-02 10:38:00) [25]
> to Юрий Зотов Что Вы теперь скажете?
Это было сказано о
> Инс © (01.09.07 11:38) [38]
Что скажете?
Denis_ (2007-09-02 10:37:00) [26]
> кстати, оно и так зашито, если надо, могу подсказать, как
> его вытащить
Подскажи, вдруг пригодится?
Германн (2007-09-02 00:55:00) [27]
> O.Snopok © (01.09.07 23:20) [45]
Для дальнейшего въезда в тему посмотри как твой вопрос реализован в библиотеке tponguard от бывшей, но лучшей (хм. почти по ВСВ:) конторы TurboPower. Может что и пригодится. Ищи библиотеку на sourceforge.
Инс (2007-09-02 00:40:00) [28]
> [45] O.Snopok © (01.09.07 23:20)
Вы сами себе поставили жесткие рамки. Почему именно до конца 2007 года? А почему нельзя, например, 100 дней от инсталляции? А почему нельзя зашить в программу время сборки (кстати, оно и так зашито, если надо, могу подсказать, как его вытащить) и если у пользователя время меньше этого, то также выдавать ошибку?
> [44] Юрий Зотов © (01.09.07 21:48)
Так мы вроде уже определились, как обезоружить недоброжелателя, вооруженного RegMon-ом.
O.Snopok (2007-09-01 23:20:00) [29]{автор темы} Речь идет не о триале, а о неоконченной версии, которая, тем не менее, весьма функциональна, и ее нужно дать на время до конца года попробовать соответствующим людям. Причем, этим людям о такой "пакости" знать не обязательно (в моем конкретном случае). Более того, если даже текущая дата больше 31.12.2007, программа не сообщает, почему же она не работает, а просто пишет "Ошибка, обратитесь к разработчику". Все это, конечно, существенно упрощает дело.
Как я понимаю, фактически моя задача аналогична той, которая встает при необходимости сделать программу, работающую, к примеру, 30 дней. По всей видимости, вариант со множественными обращениями в реестр - оптимальный. Хотя от
> Jeer © (31.08.07 12:45) [11]
>
>
> > O.Snopok © (31.08.07 04:18)
>
>
> Я переустанавлю ОС в 2008 г.
> В новой системе до момента запуска Вашей программы установлю
> 1990 г и буду работать 17 лет с вашей программой. Устраивает
> ?
и это не спасет. Но вряд ли кому-то захочется переустанавливать систему ради одной проги.
В итоге, единственным 100%-ным вариантом является
> Slym © (31.08.07 06:57) [1]
>
> 1. Требовать выхода в интернет для проверки времени...
,но он применим, очевидно, разве что к даунлоад-менеджерам или браузерам.
Юрий Зотов (2007-09-01 21:48:00) [30]> Denis_ © (01.09.07 11:39) [39]
> to Юрий Зотов Что Вы теперь скажете?
Ничего. Потому что говорить уже ничего не надо. Потому что Вы сами уже все сказали:
По-видимому, Вы просто незнакомы с программами мониторинга реестра/файлов.
(c) Юрий Зотов
:o)
Reindeer Moss Eater (2007-09-01 19:02:00) [31].... Сууществует около 10 ключей, .....
И один regmon.exe
Virgo_Style (2007-09-01 19:01:00) [32]Denis_ © (01.09.07 11:39) [39]
+ антивирусы будут ругаться.
Denis_ (2007-09-01 11:44:00) [33]
> Инс © (01.09.07 11:38) [38]
Я за реестр! Сууществует около 10 ключей, куда иожно записать загрузку проги при входе. А ЮЗ был против. Для запутывания реестра много ключей - хорошая идея.Пользовался уже?.
to Юрий Зотов Что Вы теперь скажете?
Инс (2007-09-01 11:39:00) [34]
> palva © (01.09.07 11:35)
Опять таки, FileMon
Denis_ (2007-09-01 11:39:00) [35]
> palva © (01.09.07 11:35) [37]
> По-видимому, Вы просто незнакомы с программами мониторинга
>
> > реестра/файлов.
>
> (c)Юрий Зотов
Инс (2007-09-01 11:38:00) [36]
> [36] Denis_ © (01.09.07 11:25)
Смотри. Во-первых, можно таких ключиков в реестре сделать несколько, а не один. Парочку запасных. Кому надо, их тоже найдет, но на это потребуется некоторое время. Во-вторых, можно сделать много ложных обращений к реестру, случайных и запутанных, чтобы один ключ ссылался на другой, и в этой тысячи обращений полезное было только одно. Опять таки, некотороые скажут, типа подумаешь, часик-другой посидеть, распутать это все, переустановить и все дела. Но представь, что эту процедуру придется выполнять через каждые N дней. Мне бы уже на второй раз надоело. Это насколько ценная должна быть программа, чтобы пользователь так делал?! Я думаю, 99% этого делать не станут.
palva (2007-09-01 11:35:00) [37]В любой системной dll есть мусор, оставшийся после компиляции. Среди этого мусора можно спрятать дату первого запуска. Тогда не спасет даже переустановка программы. Программа все равно будет знать, что уже была когда-то установлена на этом компьютере. Если не удастся смодифицировать системную dll, можно найти какой-нибудь другой файл для этой цели, который не так строго охраняется.
Denis_ (2007-09-01 11:25:00) [38]
> Воот. Мыслишь правильно. И что нужно сделать, чтобы это
> стало не так просто? ;)
Перекомпилировать прогу каждому отдельно, передавать код запуска, чё-нибудь вроде этого
Инс (2007-08-31 16:55:00) [39]
> Ну и что - удалит, переинсталлирует, делов-то.
Воот. Мыслишь правильно. И что нужно сделать, чтобы это стало не так просто? ;)
Denis_ (2007-08-31 16:53:00) [40]Ну и что - удалит, переинсталлирует, делов-то.