PDA

Prikaži potpunu verziju : Zaštita programa licencom


mcdhappy80
19.5.2010, 15:15
Ovako, napravio sam program koji koristi mehanizam zaštite licence u kojoj se nalazi datum do kada je program validan. Sve radi super ukoliko je lokalni računar u mreži sa serverom sa koga mogu da pročitam datum. Problem nastaje kada nema servera već je tu samo lokalni računar, jer je njegov datum moguće promeniti. Da li postoji neki način da se reši ovaj problem, a da nije čitanje datuma sa interneta npr.?
Hvala

irreal
19.5.2010, 15:46
vreme pouzdano da pratiš bez prisustva interneta ćeš jako teško da izvedeš.
a čak i ako čitaš sa interneta to nije ultimativna zaštita. doduše, ne verujem da će neko ko ume da simulira fake odgovor sa neta da se namerači na rušenje tvoje licence.

što se tiče lokalnih metoda zaštita, jel si razmišljao o drugim ograničenjima?
vremenska ogranicenja uvek mogu da se zaobidju,ma da i tu ima par trikova kojima mozes u 85% situacija (po mojoj proceni) da otkrijes da je neko pokusao varanjem da duze koristi softver.

druge vrste zastite ces lakse napraviti. kao npr ogranicen broj startovanja ili ogranicenu funkcionalnost.
mozes u nekom svom kriptovanom obliku čuvati podatak kolko je puta startovan program, pa ako neko proba da cacka te podatke da odbijes pokretanje u potpunosti i sl.

u svakom slucaju, ako bas bas bas ne moras da koristis licence - batali brate, uzaludna borba.

vasto lorde
19.5.2010, 15:55
^ slazem se. licenca ce u svakom slucaju, kakva god bila, uvek biti probijena. pogledaj danasnje drm-ove i kako su ih lako krekovali. potpune zastite nema. lako se moze spoofovati internet adresa, kako preko routinga u samom busnom windowsu, preko rutera/drajvera ili softverski, tako da probaj zaobici takvu vrstu zastite. da postoji potpuna zastita, neko bi je do sada vec kreirao.

Todors
19.5.2010, 18:10
A sto ne kreiras sopstveni sat, koji nece biti vezan za sistemsko vreme? To bi recimo ja uradio. Znači najobičniji time ticker, aktiviraš ga i deaktiviraš po potrebi. Ima malo više programiranja ali to tesko da moze da se prevazidje. Ako ti bas treba realno vreme, tesko da ces bez interneta nesto da uradis, ili uradis da pri prvom pokretanju ucita internet vreme, a posle da ti virtuelno otkucava u programu i ne treba ti net.

irreal
19.5.2010, 19:17
A sto ne kreiras sopstveni sat, koji nece biti vezan za sistemsko vreme? To bi recimo ja uradio. Znači najobičniji time ticker, aktiviraš ga i deaktiviraš po potrebi. Ima malo više programiranja ali to tesko da moze da se prevazidje. Ako ti bas treba realno vreme, tesko da ces bez interneta nesto da uradis, ili uradis da pri prvom pokretanju ucita internet vreme, a posle da ti virtuelno otkucava u programu i ne treba ti net.

dzaba virtuelno otkucavanje ako hoce apsolutno vreme, a ne vreme kolko dugo se program actually koristi.

Todors
19.5.2010, 19:32
Nisam ni mislio na obicno otkucavanje, vec kad ucita pravo vreme (tipa sa neta) da ga uporedi sa sistemskim vremenom i da mu to bude neka referenca. Kada zavrsi da koristi program sacuva u bazu zadnje vreme, dok ga ponovo ne pokrene. Kada ga ponovo pokrene, uradi poredjenje sistemskog vremena i vremena iz baze i za tolko ga doda virtuelnom satu. Ukoliko neko vrati sistemski sat to ce biti primeceno. Ukoliko ubrza, njegov problem :).
A moze i da se napravi programcic koji ce raditi uporedo sa winom, koji ce kontrolisati da li se vraca vreme i za koliko. Osim ako se iz biosa ne vrati, mada mozda i to moze nekako da se resi. I to sve ako nije komp zakacen za net.

*Pade mi napamet i win logovi. To tesko da moze da prevari. Ako je vreme ulaska u sistem manje od zadnjeg izlaska, "throw exeption" - > neko petlja sa vremenom.

irreal
19.5.2010, 19:39
Nisam ni mislio na obicno otkucavanje, vec kad ucita pravo vreme (tipa sa neta) da ga uporedi sa sistemskim vremenom i da mu to bude neka referenca. Kada zavrsi da koristi program sacuva u bazu zadnje vreme, dok ga ponovo ne pokrene. Kada ga ponovo pokrene, uradi poredjenje sistemskog vremena i vremena iz baze i za tolko ga doda virtuelnom satu. Ukoliko neko vrati sistemski sat to ce biti primeceno. Ukoliko ubrza, njegov problem :).
A moze i da se napravi programcic koji ce raditi uporedo sa winom, koji ce kontrolisati da li se vraca vreme i za koliko. Osim ako se iz biosa ne vrati, mada mozda i to moze nekako da se resi. I to sve ako nije komp zakacen za net.

nisam najbolje razumeo.
tom tvojom metodom ce nakon prvog pokretanja sa neta procitati vreme i ustanoviti, lupam, da sistemski sat kasni 15 minuta u odnosu na pravi.

ok.

kakve to veze ima sa time sto program izmedju dva paljenja pojma nema da li je proslo sat vremena ili 10 dana, vec mora da veruje sta mu kaze sistemski sat (pricamo ako net nije dostupan)

jedino sto si upravu je da moze da vidi da li je vreme ranije nego sto je bilo prosli put. ali korisnik moze svaki put da pomeri vreme na minut vise nego sto je bilo kad je prosli put ugasio program i ako je stvarno proslo godinu dana..

u svakom slucaju, za*****cija sa vremenom ti ne treba osim ako ne proveravas na netu, a i tada je malo cupavo

holodoc
19.5.2010, 19:40
Nisam ni mislio na obicno otkucavanje, vec kad ucita pravo vreme (tipa sa neta) da ga uporedi sa sistemskim vremenom i da mu to bude neka referenca. Kada zavrsi da koristi program sacuva u bazu zadnje vreme, dok ga ponovo ne pokrene. Kada ga ponovo pokrene, uradi poredjenje sistemskog vremena i vremena iz baze i za tolko ga doda virtuelnom satu. Ukoliko neko vrati sistemski sat to ce biti primeceno. Ukoliko ubrza, njegov problem :).
A moze i da se napravi programcic koji ce raditi uporedo sa winom, koji ce kontrolisati da li se vraca vreme i za koliko. Osim ako se iz biosa ne vrati, mada mozda i to moze nekako da se resi. I to sve ako nije komp zakacen za net.Tvoj sistem opet zavisi od "upoređivanja sistemskog i internog zapamćenog" vremena što znači da opet nije siguran :) Šta će biti recimo ako ja posle prvog pokretanja vratim sistemski sat 5 godina unazad? :D Razvojni tim treba meni da plaća svaki mesec po $20? :D

Todors
19.5.2010, 19:54
Tvoj sistem opet zavisi od "upoređivanja sistemskog i internog zapamćenog" vremena što znači da opet nije siguran :) Šta će biti recimo ako ja posle prvog pokretanja vratim sistemski sat 5 godina unazad? :D Razvojni tim treba meni da plaća svaki mesec po $20? :D

Pa zato i kazem da prvi put treba da skine internet vreme i da mu to bude referentno vreme. Ako vrati vreme minut nakon zadnjeg izlaska ok, ali opet da pre toga nije restartovao komp jer log ne moze da zezne. I ako je trenutno vreme manje od zadnjeg loga , program vise nije upotrebljiv :)

Todors
19.5.2010, 20:23
Još bolje je da se setuje i inicijalno vreme, odnosno vreme ispod kojeg program nece da radi. :)
Mislim da ovaj algoritam, sigurno jos ima prostora za doradu i fine-tuning, ali ako neko pokusa da ga zezne mora da bude tezak dokon ili da zna kako algoritam funkcionise.