Ik heb een applicatie gemaakt die voorzien moet worden van een trial time-out. Na x dagen mag het programma niet meer functioneren. Wie kan mij helpen aan de regels / methodes over hoe je die zo goed mogelijk kan inbouwen, zodat het simpel verzetten van de systeemtijd niet voldoende is om het te omzeilen?
Verwijderd
maybe dat je bijvoorbeeld maar 30 uur het progrmama kan draaien ?? is ook we grappig.. of dat je hem maar 10 keer mag starten.. en dat ie na 3 uur automatisch af sluit?
Ik kan me vaag herinneren dat er hier al eens een topic over geweest is, maar ik kan hem niet terugvinden.
https://fgheysels.github.io/
leuk algo verzinnen en wegschrijven in het register
als die waarde wordt aangepast programma stoppen, als die waarde afloopt ook het programma stoppen. oid
als die waarde wordt aangepast programma stoppen, als die waarde afloopt ook het programma stoppen. oid
Doet iets met Cloud (MS/IBM)
Misschien is deze post interresant...
[rml]JonkieXL in "[ Alg] Safe code"[/rml]
[rml]JonkieXL in "[ Alg] Safe code"[/rml]
This is called "darwinian selection among wannabie crackers" :-)
Programmer - an organism that turns coffee into software.
http://www.woodmann.com/fravia/protec.htm
Daar staan wat tips om je software goed te beveiligen, waarvan een paar van toepassing op trials.
He! JonkieXL heeft dezelfde lijst, al heeft die van die link ook andere.
Daar staan wat tips om je software goed te beveiligen, waarvan een paar van toepassing op trials.
He! JonkieXL heeft dezelfde lijst, al heeft die van die link ook andere.
op www.pscode.com staan ook een aantal voorbeelden, zelf zal ik zoeits ook moeten maken .. maar dat baseer ik liever niet op andere voorbeelden
Een mogelijk oplossing kan zijn dat je de systeemdatum opslaat bij het installeren en dan deze opgeslagen datum steeds gebruiken om te controleren hoeveel dagen er nog overschieten...
I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.
Gebruik indien mogelijk een externe time-server, maar dan zit je direct vast op het verplicht hebben van een internet connectie.
Verder is de systeemtijd inderdaad niet te vertrouwen. Je kunt 'em wel gebruiken, maar zorg dan iig dat de systeemtijd van deze run later moet zijn dan de tijd van de vorige run. Eventueel gecombineerd met een "hoe lang draai ik" systeem, zoiets dus: [tijd van deze run] > [tijd van vorige run] + [hoe lang draaide ik de vorige keer]
Verder is de systeemtijd inderdaad niet te vertrouwen. Je kunt 'em wel gebruiken, maar zorg dan iig dat de systeemtijd van deze run later moet zijn dan de tijd van de vorige run. Eventueel gecombineerd met een "hoe lang draai ik" systeem, zoiets dus: [tijd van deze run] > [tijd van vorige run] + [hoe lang draaide ik de vorige keer]
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Is inderdaad leuk, maar als ze bij de 1e start hun datum op 2009 zetten moet ik dat dus ook checken. Het is wel de opdracht om een aantal DAGEN op te kunnen geven dat de applicatie mag werken.Feyd-Rautha schreef op 14 augustus 2002 @ 14:00:
Een mogelijk oplossing kan zijn dat je de systeemdatum opslaat bij het installeren en dan deze opgeslagen datum steeds gebruiken om te controleren hoeveel dagen er nog overschieten...
Ook moet ik niet hebben dat ze voor het opstarten de datum even terugzetten, opstarten en de datum weer herstellen, dus ik zoek een mooie secondaire check, maar bedankt voor alle links hier, ik ga ze meteen doorlezen.
Verwijderd
Wat je misschien zou kunnen doen, is dat de exe van het programma gewoon een lege exe met een zip erin is die die automatisch uitpakt naar een bepaalde directory. De exe die uitgepakt is checkt dan de checksom van de originele exe en die van hemzelf, is er iets mis...
Misschien een idee:
- de datum van installatie geencrypted in de registry wegschrijven onder een fake-item
- de datum / tijd van de laatste run geencrypted in de registry wegschrijven onder een fake-item (initieel gevuld met datum installatie)
- controle op systeemdatum voor datum installatie
- controle op systeemdatum voor datum laatste run
- controle op systeemdatum voor datum installatie + trial
je hebt dan afgedekt dat:
1) de systeemdatum altijd na datum installatie moet liggen
2) de systeemdatum altijd na de datum van de laatste run moet liggen
3) de systeemdatum altijd voor de datum installatie + trial_periode moet liggen
De gebruiker komt er na de trial_periode achter dat de applicatie niet meer werkt, zet z'n datum terug en valt dan door de mand bij controle 2.
Een idee?
- de datum van installatie geencrypted in de registry wegschrijven onder een fake-item
- de datum / tijd van de laatste run geencrypted in de registry wegschrijven onder een fake-item (initieel gevuld met datum installatie)
- controle op systeemdatum voor datum installatie
- controle op systeemdatum voor datum laatste run
- controle op systeemdatum voor datum installatie + trial
je hebt dan afgedekt dat:
1) de systeemdatum altijd na datum installatie moet liggen
2) de systeemdatum altijd na de datum van de laatste run moet liggen
3) de systeemdatum altijd voor de datum installatie + trial_periode moet liggen
De gebruiker komt er na de trial_periode achter dat de applicatie niet meer werkt, zet z'n datum terug en valt dan door de mand bij controle 2.
Een idee?
Zie Gerco. Dus ook laatste run-datum bijhouden, als die lager is dan de vorige keer (- een marge, een paar minuten mag natuurlijk welVerwijderd schreef op 14 augustus 2002 @ 15:04:
Ook moet ik niet hebben dat ze voor het opstarten de datum even terugzetten, opstarten en de datum weer herstellen, dus ik zoek een mooie secondaire check, maar bedankt voor alle links hier, ik ga ze meteen doorlezen.
Exact expert nodig?
Hier staat ook iets over in het eerder genoemde topic "Safe code.." (zie eerste replies), door gebruik van andere bestanden.Verwijderd schreef op 14 augustus 2002 @ 15:04:
[...]
Is inderdaad leuk, maar als ze bij de 1e start hun datum op 2009 zetten moet ik dat dus ook checken. Het is wel de opdracht om een aantal DAGEN op te kunnen geven dat de applicatie mag werken.
Ook moet ik niet hebben dat ze voor het opstarten de datum even terugzetten, opstarten en de datum weer herstellen, dus ik zoek een mooie secondaire check, maar bedankt voor alle links hier, ik ga ze meteen doorlezen.
Verwijderd
Om tijd terug zetten te voorkomen kun je de tijd vergelijken met log-files e.d. (de tijd van die bestanden mag niet hoger zijn dan de huidige tijd).
Naast dit ook controleren of de systeemtijd niet lager is dan de tijd van installatie:Verwijderd schreef op 14 augustus 2002 @ 16:48:
Om tijd terug zetten te voorkomen kun je de tijd vergelijken met log-files e.d. (de tijd van die bestanden mag niet hoger zijn dan de huidige tijd).
anders kan iemand de klok vooruit zetten bij het installeren.
Een tip: schrijf de initiele waarde van de systeemtijd niet weg bij installatie, maar bij de eerste keer starten. Dit heeft 2 voordelen:
1. Tooltjes die de tijdens de installatie het register monitoren (om uninstallen eenvoudiger te maken) hebben geen grip op je beveiliging.
2. Het is wat 'eerlijker' tegenover je gebruikers. Als je het product wel installeert, maar niet gebruikt, verloopt de trial-periode ook niet.
1. Tooltjes die de tijdens de installatie het register monitoren (om uninstallen eenvoudiger te maken) hebben geen grip op je beveiliging.
2. Het is wat 'eerlijker' tegenover je gebruikers. Als je het product wel installeert, maar niet gebruikt, verloopt de trial-periode ook niet.
Lijkt zeker een goed idee, alleen ik kan alleen naar HKEY_LOCAL_MACHINE schrijven onder het kopje software, anders hebben de gebruikers vaak weer geen recht, dus ben ik bang dat ze de key wel zullen vinden.PdeHoog schreef op 14 augustus 2002 @ 15:23:
Misschien een idee:
- de datum van installatie geencrypted in de registry wegschrijven onder een fake-item
- de datum / tijd van de laatste run geencrypted in de registry wegschrijven onder een fake-item (initieel gevuld met datum installatie)
- controle op systeemdatum voor datum installatie
- controle op systeemdatum voor datum laatste run
- controle op systeemdatum voor datum installatie + trial
je hebt dan afgedekt dat:
1) de systeemdatum altijd na datum installatie moet liggen
2) de systeemdatum altijd na de datum van de laatste run moet liggen
3) de systeemdatum altijd voor de datum installatie + trial_periode moet liggen
De gebruiker komt er na de trial_periode achter dat de applicatie niet meer werkt, zet z'n datum terug en valt dan door de mand bij controle 2.
Een idee?
Maar de checks zelf lijken voldoende, maar wat gebeurd er als iemand z'n klok altijd op de installatiedatum zet, programma start en de klok weer bijsteld naar de normale tijd? Dan moet ik deze check dus al op meerdere punten in de applicatie uit gaan voeren. Verder lijkt ie me behoorlijk. Bedankt alvast.
Is inderdaad netter. Zal het ook zo aan gaan pakken. Ik had ook i.p.v. de gegevens naar het register schrijven ( datum eerste start, dagen voor trial, etc ) in de executable zelf willen wegschrijven, maar helaas kan de .EXE zelf niet een gereserveerd deel in de .EXE beschrijven als hij zelf runt. Leek me anders wel een leuke.Poohbear schreef op 14 augustus 2002 @ 17:18:
Een tip: schrijf de initiele waarde van de systeemtijd niet weg bij installatie, maar bij de eerste keer starten. Dit heeft 2 voordelen:
1. Tooltjes die de tijdens de installatie het register monitoren (om uninstallen eenvoudiger te maken) hebben geen grip op je beveiliging.
2. Het is wat 'eerlijker' tegenover je gebruikers. Als je het product wel installeert, maar niet gebruikt, verloopt de trial-periode ook niet.
.....en daarom wil je hem geencrypted wegschrijvenVerwijderd schreef op 14 augustus 2002 @ 19:35:
[...]
Lijkt zeker een goed idee, alleen ik kan alleen naar HKEY_LOCAL_MACHINE schrijven onder het kopje software, anders hebben de gebruikers vaak weer geen recht, dus ben ik bang dat ze de key wel zullen vinden.
Dat is er inderdaad eentje waar ik nog niet aan had gedacht. Je zou een soort centrale functie kunnen schrijven die je bij elke functionaliteit aanroept, waarbij je dan controleert of de datum / tijd van de laatste run globaal overeenkomt met de huidige datum / tijd.Maar de checks zelf lijken voldoende, maar wat gebeurd er als iemand z'n klok altijd op de installatiedatum zet, programma start en de klok weer bijsteld naar de normale tijd? Dan moet ik deze check dus al op meerdere punten in de applicatie uit gaan voeren. Verder lijkt ie me behoorlijk. Bedankt alvast.
Aan de andere kant....je hebt met de eerder door mij genoemde controles waarschijnlijk al 80% van de gebruikers zover dat ze je applicatie niet meer gebruiken. Die vinden het te lastig worden denk ik (althans zo zou ik redeneren). Je moet je dan ook afvragen of het zinnig is om zover te willen gaan. Waarschijnlijk gaat dan de 80-20 regel in werking treden en besteed je 80% procent van je tijd om 20% van de gebruikers buiten de deur te houden.
Wat dacht je van een fake-bestandje ergens diep in de windows-directory verstopt? Je kunt daar alle data geencrypted in verstoppen. Hooguit dat een installmanager oid een en ander vind.Verwijderd schreef op 14 augustus 2002 @ 19:37:
[...]
... Ik had ook i.p.v. de gegevens naar het register schrijven ( datum eerste start, dagen voor trial, etc ) ....
Dat is wel makkelijk te vinden met bijv FileMON, of met een decompiler een reference naar dat bestand. Dan kan dat bestand bijv gedelete of veranderd worden. Je kan beter zo'n bestand als 1 van de verschillende plekken waar de datum is opgeslagen gebruiken. Misschien als begintijd ook de lastmodified van een bestand dat aangemaakt wordt bij installatie.PdeHoog schreef op 15 augustus 2002 @ 01:30:
[...]
Wat dacht je van een fake-bestandje ergens diep in de windows-directory verstopt? Je kunt daar alle data geencrypted in verstoppen. Hooguit dat een installmanager oid een en ander vind.
Volgens mij kan je beter een crippled versie maken, bijvoorbeeld zonder opslaan o.i.d.
En als je dat doet ook echt de opslaan code weghalen!! Anders is een simpele patch waarschijnlijk al genoeg om toch nog opslaan functionaliteit te krijgen..Shir schreef op 15 augustus 2002 @ 11:15:
Volgens mij kan je beter een crippled versie maken, bijvoorbeeld zonder opslaan o.i.d.
Gewoon de crippled features eruit halen met conditionele compilatie. Dat is mijn inziens de enige manier om waterdicht een shareware versie ergens van te maken.
Het enige wat je dan nog hebt is dat mensen een volledige versie kunnen kopen en die verspreiden. Maar dan kun je een serienummer ofzo embedden (NIET laten weten dat zo'n nummer erin zit) en bijhouden van wie dat nummer is. Dan weet je in ieder geval wie je kunt aanklagen als je een illegale kopie tegenkomt.
Je moet in de EULA natuurlijk wel aangeven dat de kopieen afzonderlijk identificeerbaar zijn, anders mag het niet geloof ik, maar niemand leest EULA's dus dat maakt niet zoveel uit. Alhoewel steeds meer mensen ze gaan lezen gezien de laatste gedragingen van ons aller favoriete software fabrikant.
Het enige wat je dan nog hebt is dat mensen een volledige versie kunnen kopen en die verspreiden. Maar dan kun je een serienummer ofzo embedden (NIET laten weten dat zo'n nummer erin zit) en bijhouden van wie dat nummer is. Dan weet je in ieder geval wie je kunt aanklagen als je een illegale kopie tegenkomt.
Je moet in de EULA natuurlijk wel aangeven dat de kopieen afzonderlijk identificeerbaar zijn, anders mag het niet geloof ik, maar niemand leest EULA's dus dat maakt niet zoveel uit. Alhoewel steeds meer mensen ze gaan lezen gezien de laatste gedragingen van ons aller favoriete software fabrikant.
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Ik denk dat het aanmaken van registry keys en bestandjes ver weggestopt niet echt een goed idee is, mensen die die stuff willen cracken kunnen daar altijd wel achter komen. Als je data ergens wegschrijft moet je dat gewoon lekker op een logische plaats doen, en zorgen dat het goed genoeg geencrypt ofzo is.. Anders een andere methode bedenken.
Waar je overigens ook nog wel even rekening mee moet houden zijn re-installs. Je wilt niet dat na verstrijken van je trailperiode de user uninstallt en reinstallt en alles werkt weer....
Waar je overigens ook nog wel even rekening mee moet houden zijn re-installs. Je wilt niet dat na verstrijken van je trailperiode de user uninstallt en reinstallt en alles werkt weer....
Powered by Manetti (compiled by Jura)
MrBrown schreef op 15 augustus 2002 @ 13:15:
Ik denk dat het aanmaken van registry keys en bestandjes ver weggestopt niet echt een goed idee is, mensen die die stuff willen cracken kunnen daar altijd wel achter komen. Als je data ergens wegschrijft moet je dat gewoon lekker op een logische plaats doen, en zorgen dat het goed genoeg geencrypt ofzo is.. Anders een andere methode bedenken.
Waar je overigens ook nog wel even rekening mee moet houden zijn re-installs. Je wilt niet dat na verstrijken van je trailperiode de user uninstallt en reinstallt en alles werkt weer....
Kan idd niet anders dan in een bestandje/regkey, maar 't zit 'm mij in dat verborgen... Als je daar je hele methode vanaf laat hangen is het een kwestie van tijd voordat men het vind.
Nou zit ik te denken... Op een logische plaats wordt idd ook lastig toch, want als je het bestand/regkey weghaald ben je idd zuur...
Nou zit ik te denken... Op een logische plaats wordt idd ook lastig toch, want als je het bestand/regkey weghaald ben je idd zuur...
Powered by Manetti (compiled by Jura)
Ik heb zelf wel eens gebruik van http://www.activelock.com/ gemaakt, kon je zelf trial-, share- en crippleware mee maken
Het kan wel echt veilig, maar dan moet je via 't web gaan werken. Zelfs de compilatiedatum+100 dagen ofzo gebruiken is niet echt veilig, omdat mensen hun klok kunnen verzetten (of je zou met een externe time-server moeten gaan werken).MrBrown schreef op 15 augustus 2002 @ 14:06:
Kan idd niet anders dan in een bestandje/regkey, maar 't zit 'm mij in dat verborgen... Als je daar je hele methode vanaf laat hangen is het een kwestie van tijd voordat men het vind.
Nou zit ik te denken... Op een logische plaats wordt idd ook lastig toch, want als je het bestand/regkey weghaald ben je idd zuur...
Pagina: 1