[Delphi] Trial verze

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod dyžon 12. 6. 2015 10:56

Zdravim pratele,
mam na Vas dotaz ohledne reseni trial verze v programu.
uz jsem neco vytvoril, ale nejsem s tim spokojenej.
delam to tak, ze pri prvnim spusteni programu na PC vytvorim soubor, kam zapisu aktualni datum, ktery zasifruju a ulozim pod neznamou priponou do adresare s programem.
(ten soubor se vytvari spis kdyz ho nenajde, kontroluju FileExists souboru)
Program pak pri kazdem spusteni otevre soubor s datumem, desifruje jej a porovna s aktualnim datem.
pokud je starsi jak tri dny, program vyzaduje po klientovy licencni klic, pokud jej nema, vsechny funkcni tlacitka prepnu do Enable:= False.
problem je v tom, ze na nekterych PC (hlavne s win8) se soubor spatne desifruje, nebo desifrovani neprobehne vubec,
nebo pokud klient presune program do program files, tak se soubor se zasifrovanym datem vubec neulozi.
nehlede na to, ze staci soubor pred spustenim smazat .
nemate nekdo s timhle nejake zkusenosti ?? nebo nejakej napad, jak to vyresit ??
AMD FX-6300; Gigabyte 970A-DS3P; DDR3 8192MBytes; AMD Radeon HD 6700 Series
dyžon
Junior
Uživatelský avatar

Odeslat příspěvekod Bespi_ 12. 6. 2015 11:26

Ehm. Resis to uplne opacne. Kdyz aplikace nenajde platny soubor s licencnim klicem provozuj aplikaci v trial rezimu. Pokud chces omezit i casove tak pri instalaci vytvor na disku soubor se zasifrovanym datumem instalace + doplnenym nejakym info k rozeznani toho konkretniho PC. Pokud pri spusteni aplikace ten soubor nenajde rovnou rekne ze trial vyexpirovalo.

Jednoduche.
Bespi_
Junior

Odeslat příspěvekod JanFiala 12. 6. 2015 11:32

Informaci o prvním spuštění nesmíš ukládat do adresáře s programem jako soubor.
Můžeš ji uložit "někam" ukrytou do registru, případně do nějakého skrytého souboru mimo aplikaci.
Obojí se dá odchytit nástroji jako ProcessMonitor
Co můžeš udělat dnes, odlož na včerejšek
JanFiala
Expert
Uživatelský avatar

Odeslat příspěvekod dyžon 12. 6. 2015 11:48

Bespi, diky, ale obracene to prave nejde, .. pri prvnim spusteni tam ten soubor neni, takze by to hned hlasilo, ze trial vyprsela ... program se neinstaluje, stahuji si ho z netu jako zararovany .exe
jinak program je spojeny se hrou a klic se vaze na nick ve hre.
program dal vytvari a upravuje .INI soubor, kdybych delal instalaci, tak to vetsina lidi soupne do Program Files a uz bych s tim ini nic neudelal ...

Jan Fiala, diky, na processMessage se podivam, jinak jaka je takova idealni slozka pro ten soubor?
Temp je spatne, zkousel jsem AppData/Roaming, ale zase ne vsude to proslo ..
s registrama mam spatny zkusenosti, .. jsem lama, nevim proc, ale taky na nekterych PC jsem se do treba do HKey_Local_Machine vubec nedostal ...
AMD FX-6300; Gigabyte 970A-DS3P; DDR3 8192MBytes; AMD Radeon HD 6700 Series
dyžon
Junior
Uživatelský avatar

Odeslat příspěvekod JanFiala 12. 6. 2015 12:28

Psal jsem o ProcessMonitor, ne o ProcessMessages.

Jako programátor, který píše pro určitý operační systém by sis měl jako první nastudovat doporučení od autorů toho operačního systému, aby ses dozvěděl, jak se má program chovat, kam má ukládat data atd.

Pak vbys věděl, že od Windows Vista už nemůže program zapisovat kam jej napadne, že do Program files a Windows může zapisovat pouze Trusted Installer. Že program, i když jsi přihlášen jako správce běží s úrovní USER.
Že program nemá právo zapisovat do HKLM, ale pouze do HKCU
Že existují virtualizované složky a registry pro programy, které nepoužijí manifest, aby se chovaly nativně pod Windows 7
Že existují virtualizované složky a registry pro 32 bitové programy, spuštěné v 64 bitovém systému

Nemusíš vymýšlet nic složitého, stačí soubor uložit do profilu uživatele do nějaké složky, která se bude tvářit důležitě. Třeba %AppData%\Microsoft\App
Co můžeš udělat dnes, odlož na včerejšek
JanFiala
Expert
Uživatelský avatar

Odeslat příspěvekod DanHen 2. 8. 2015 19:26

ja som nieco podobneho riesil uz hodne davno (vo VisualFoxPro, ale to je jedno v tomto pripade). tiez ma samozrejme napadlo pouzitie Regmonitora a Filemonitora, pretoze sam som 'crackol' niekolko trial aplikacii pouzitim rycho dvoch nastrojov. vyriesil som to tak, ze v default instalacii bol 'licence' subor, ktory aplikacia stale kontrolovala, a zapisovala do neho periodicky. tym padom sa nedalo zistit, ktory subor je novy / zmeneny atd. samozrejme, subor bol zasifrovany. a samozrejme, pri neexistencii tohto suboru aplikacia oznamila chybu a nespustila sa.

edit: sorac , neskoro som si vsimol, ze je to stare skoro dva mesiace. tazatel to ma pravdepodobne vyriesene.
jedine smrt ve svete nespecha,
prichazi pomalu a v klidu
                                (kryptor)
http://danhen.lordcyber.net/
DanHen
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků

cron