Trial

8 отговора 375 прегледа
#1

Trial

Zdravejte, bihte li mogli, da mi dadete chast ot kod v koito e realizirana programa za trial period. demek kod koito moga da go vgradq v moj programa i da pokazva koga mi e iztekul trial perioda. 10x predvaritelno

Отговор
в отговор на asddsa #2

Re: Trial

Код ме мързи да пиша, но въобще не е трудно да си сглобиш свой
Ето рецептата:
Необходими продукти:
- функция за записване на дата в регистрите
- функция за четене на дата от регистрите
- функция за четене на датата от часовника на компа
- да си харесаш място в регистрите където да се намират две дати: LastDate & ExpDate. ExpDate се наглася при инсталация да бъде крайната дата в която програмата ще работи
Метод на приготовление:
При стартиране на програмата се четат системната дата (SysDate) от часовника на компа, LastDate и ExpDate.
Ако SysDate>ExpDate trial периода е свършил
Ако LastDate>SysDate се опитват да ни прецакат (мърдали са часовника назад, макар че може и батерията на часовника да е свършила )
Инак всичко е 6, записваме SysDate в LastDate и програмата продължава
Неприятния момент е че записа и четенето от регистрите се проследява, но това е така и с почти всичко друго - дори и за екзотични места като RAM-а на BIOS-а
Ако успееш да сглобиш код от казаното досега, ще се радвам да го публикуваш. Ако не успееш, ще се напъна да напиша нещо

чети и дишай по-леко
Отговор
в отговор на Pechenia #3

Re: Trial

da be bate, ama nali se useshtash che moje datata da se nastroi v toq interval na poslednata i purvata, demek ako seki den se smenq, taq programka se shte raboti. A seshtash li se kak moje da se realizira nqkva programka koqto seki put zapisva broq puskaniq i ako toi e raven na nqkakuv si da ne se puska poveche. Za celta obache trebe ako moje nqkak si da se pishe v nqkva pamet na samoto EXE na programkata shot da nemoje da se promenq. chakam otgovora ti.

Отговор
в отговор на asddsa #4

Re: Trial

Нямаш ли кирилица на компютъра? Първо оправи този проблем.
А за въпроса: Според мен, може да засичаш броя на часовете или минути през които е използвана програмата. Когато се стартира програмата, активираш един таймер с интервал например 1 мин. Всеки път когато се задейства увеличаваш с едно променлива. При затваряне на програмата, записваш тази стойност някъде. Разбира се, че може да се открие каде и какво записваш, но... Този вариант не се влияе от часовника на компютъра, но ако не се ползва програмата няколко месеца, после пак ще могат да я ползват ако не е изтекло общото време. Подобно може да се броят и стартиранията на програмата и след например 50 стартирания да не може да се стартира.
А за варианта на Pechenia (здравей Pechenia), може да се помни и датата и часа на пускане и спиране и при следващото пускане да се проверяват. Ако датата и часа са преди тези които си запомнил е ясно, че те лъжат с часовника.

Редактирано от vido на

Отговор
в отговор на vido #5

Re: Trial

da be, prav si tva e oferta. ama znaesh li nqkuv nachin da se zapisva v pamet otdelena v samoto exe, demek da zapisvam promenlivata tam, zashtoto taka mnogo trudno shte hvanat kvo stava. a inache moje da se nameri tazi promenliva i da se iztrie ili redaktira, ako e po registri i tn.

Отговор
в отговор на help #6

Re: Trial

Логиката, приятелю, не е най-силната ти страна
Нали се сещаш, че като мине trial периода ще си я инсталирам наново с новото EXE в което е записано че не е пускана хич... Което е доста по-лесно от това да следя къде и какво пише.
Темата за защитата на програмите (вкл. trial период) е доста обширна, но има две основни правила:
- непробиваема защита няма
- сложността на защитата трябва да съответства на това което защитава и на нивото на хората дето ще искат да я пробият
Ще се радвам да дискутираме по-широко проблема, при две условия:
- да не ми навяваш асоциации с Батето
- да си направиш труда първо да уважаваш хората с които говориш, особенно ако не ги познаваш, и второ - да се постараеш да мислиш малко повече преди да пишеш

чети и дишай по-леко
Отговор
в отговор на Pechenia #7

Re: Trial

abe pi4 kvo se penish be, ne moga da razbera. Kvo kat sum pisal "bate", az gledam malko po priqtelski da ti pisha, vupreki che ne te poznavam, a ti se durjish kato bastun. Sa ako ne znaesh kak stava tova za koeto pitam, prosto nedei da pishesh, nema smisul da se zaqjdash, a da ne govorim che me i ubidi. Ama nishto az ne sum durvo kat teb i nema da se zasegna. Kakto i da e, ta po temata, znam che mojesh da si instalirash nanovo tova exe i pak da ti vurvi programkata, no ako sa poveche zashtitite koito mogat da se probiqt, shte e po trudno da se crack-ne dadenata programka, za tova pitam. Na men mi trqbva da spechelq vreme. A inache ako si tolkova razbirasht ot Delphi ti nqma da pishesh che moje da stane edi kvo si, a shte mi kajesh kak moje da se napravi i da ne se interesuvash za kvo mi e na men. Mi che az moga i za drugo da go izpolzvam. Taka che ti si pravi izvodite. I sorry ako sum te zasegnal.

Отговор
в отговор на asddsa #8

:)

Наистина ме развесели!

Sa ako ne znaesh kak stava tova za koeto pitam, prosto nedei da pishesh...

Голям майтап

Ако не си забелязал, хората тук отговарят от добра воля, не защото са ти задължени. Ако си напишеш въпроса малко по-учтиво и на кирилица, ще имаш по-голям успех. Ако го напишеш и по-конкретно, сигурно ще получиш и по-конкретни отговори. (Напр. Как се пише в registry?, Как се чете от registry?, Как да прочета колко е часа?, Кое събитие е най-добре да използвам за да правя проверката там? и т.н.)

Отговор
в отговор на asddsa #9

Re: Trial

Чудесно, щом ще говорим по същество. Значи идеята да се пише в самото EXE или файл който се създава при начална инсталация е умряла работа - мисля че се разбрахме защо.
Ако изключим хардуерните решения - тапа на COM, USB или например ROM на LAN карта, то остават вариантите да се пише някъде извън приложението. Тук избора е относително голям:
- регистрите
- зачукан файл
- сектор по диска
- CMOS RAM-а на машината
За регистрите нещата са ясни за всеки. Неприятен е факта че писането в тях лесно се прехваща
Писането по файл натресен в win/system32 и с подходящо име - например drv32int.sys е относително добро и лесно решение.
Писането в сектор по диска е добро решение при едно условие - че инсталацията няма да се мести и диска няма да се дефрагментира. Освен това кода за намиране на подходящ сектор - например от незапълнен клъстер на файл от приложението (по идея на Dark Avenger) не е лесна работа. Затова този вариант се отхвърля категорично
Остава екзотичната и относително лесно реализируема идея за писане в CMOS RAM-а. Лесна, ако се знае къде да се пише и се ползва готов компонент за директен достъп до паметта.
Разпространението на Internet сериозно предполага и ползването на отдалечена верификация, или иначе казано - програмата отправя запитване към сървъра, който спокойно проверява за края на trial периода, и съответно дава или не дава позволение за продължение.
Ако много държиш да пишеш в самото EXE, можеш да използваш един изключително елегантен метод - просто ползваш 2 EXE-та, key.exe и program.exe, като всяко от тях може да пише в другото без притеснения. Например потребителя стартира key.exe, то пише в program.exe, стартира го и завършва. program.exe от своя страна спокойно пише в key.exe
Подобна схема е лесно да се реализира и с DLL.
Повечето от посочените начини се реализират съвсем лесно, но ако имаш проблеми с нещо не се съмнявам че клуба ни е готов да се отзове.

чети и дишай по-леко
Отговор