[Java] trial period inbouwen

Pagina: 1
Acties:

  • Swinnio
  • Registratie: Maart 2001
  • Laatst online: 11-04 16:28
Stel, ik wil een download van een Java programma beschikbaar stellen. Maar zou dan graag een versie maken die een beperkte tijd werkt, net zoals je vaak bij trial programma's ziet. Heb alleen geen idee hoe je zoiets op een beetje betrouwbare manier kunt inbouwen.
Het enige wat ik tot nu toe gevonden heb, is via de java.util.preferences klassen iets in het register opslaan en dan at runtime uitlezen en controlen. Maar dat heeft 2 nadelen:
* Het is niet moeilijk om te ontdekken dat java programma altijd in dezelfde keys in het register schrijven (onder windows tenminste)
* Het terugzetten van de systeem tijd zou de beperking meteen ongedaan maken.

Natuurlijk is het niet makkelijk iets te maken wat 100% waterdicht is. Maar het moet toch mogelijk zijn zonder al te veel moeite iets in te bouwen wat niet zonder reverse-engineering ongedaan kan worden gemaakt :?

If the world wouldn't suck, we'd all fall off


  • Mayco
  • Registratie: Augustus 2002
  • Laatst online: 07-04 11:48
je kan bevoorbeeld iets doen met communicatie met een php-pagina die kijkt in de database of je het product nog mag gebruiken?

dus: eerste keer dat je het gebruikt, een hash maken van je systeem ofzo, opsturen naar server, server zat dat in de database...
de volgende keren dat je het programma opzet zal het controleren op de server of het nog gebruikt mag worden

voordeel: zeer lastig te omzeilen
nadeel: internetverbinding is noodzakelijk

maar eerlijk gezegt heb ik het niet zo voor trails enzo :)

  • Obliterator
  • Registratie: November 2000
  • Laatst online: 30-03 13:50
Je moet dan al heel snel naar meerdere lagen toe. Meerdere checks op verschillende plaatsen. Alles wat je in de registry schrijft moet natuurlijk gecodeerd zijn. Als ergens een code niet klopt, meteen ergens anders weer een andere code verknoeien/markeren.

Maar inderdaad, 100% betrouwbaar is het nooit. Je kunt je ook bedenken hoe interessant je programma is. Als het niet echt populair is, dan zullen weinig mensen de moeite doen om erachter te komen. Bedenk dat maar een klein deel van de computer gebruikers de kennis heeft om jouw protectie te doorgronden.

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 12-12-2025
Je hebt weinig keuze, of je moet steeds een andere registrykey nemen. Maar hoe bepaal je dan de oude key, en de nieuwe key?
Misschien standaard als trial laten werken, totdat je hem activeert.

Misschien kun je iets doen met bestandsdata, dus de datum waarop het bestand is aangemaakt. (Neem dan wel een verborgen bestand buiten je eigen programmamap, die je tijdens de uninstall laat staan)

We are shaping the future


  • gvdh81
  • Registratie: Juli 2001
  • Laatst online: 21-03 14:46

gvdh81

To got or not to got..

Je kunt een aantal dingen doen;
- registry key opslaan en ergens anders opslaan dat hij is opgeslagen om welke tijd (vervolgens kun je dus een controle inbouwen dat de systeemtijd is verzet en kun je daar weer actie op ondernemen)
- De datum van een folder of een bestand verzetten (mtime, atime, ctime) en deze controleren
- etc etc.

Er zijn legio voorbeelden maar je kunt het nooit 100% maken, de vraag is, hoe ver wil jij gaan om het te beveiligen en hoever denk je dat je gebruikers gaan om het te omzeilen?

  • Swinnio
  • Registratie: Maart 2001
  • Laatst online: 11-04 16:28
Mayco schreef op vrijdag 10 februari 2006 @ 17:01:
je kan bevoorbeeld iets doen met communicatie met een php-pagina die kijkt in de database of je het product nog mag gebruiken?

dus: eerste keer dat je het gebruikt, een hash maken van je systeem ofzo, opsturen naar server, server zat dat in de database...
de volgende keren dat je het programma opzet zal het controleren op de server of het nog gebruikt mag worden

voordeel: zeer lastig te omzeilen
nadeel: internetverbinding is noodzakelijk

maar eerlijk gezegt heb ik het niet zo voor trails enzo :)
Ja, dat is een optie maar zoals je zelf al zegt ga je er dan wel vanuit een internetverbinding te hebben. En ik heb het ook niet zo op trials, maar al helemaal niet wanneer ze online willen om iets achter mijn rug om te controlen ;)
gvdh81 schreef op vrijdag 10 februari 2006 @ 17:14:
Er zijn legio voorbeelden maar je kunt het nooit 100% maken, de vraag is, hoe ver wil jij gaan om het te beveiligen en hoever denk je dat je gebruikers gaan om het te omzeilen?
Ja heb je helemaal gelijk in. Het gaat me er ook vooral om, om er achter te komen of (en indien ja: wat voor) standaard methoden/mogelijkheden er binnen Java voor zoiets zijn. Ik bedoel, ik ben niet de eerste die hiermee te maken heeft. Misschien dat het niet per se via het register hoeft, hoewel dat het enige is dat ik op de forums van Sun heb kunnen vinden?

[ Voor 29% gewijzigd door Swinnio op 10-02-2006 19:11 ]

If the world wouldn't suck, we'd all fall off


Verwijderd

...

[ Voor 98% gewijzigd door Verwijderd op 29-05-2018 16:58 ]


  • Swinnio
  • Registratie: Maart 2001
  • Laatst online: 11-04 16:28
Verwijderd schreef op vrijdag 10 februari 2006 @ 19:13:
java is niet geschikt voor trails, met een programma als dj decompiler maak je van een class bestand weer een .java bestand en dan is het alleen even het if statement weghalen en je hebt de full version

wat je wel kan doen is een appart programma maken en daar class file's in weg laten (beperkte functionaliteit) die class files hebben ze niet dus kunnen ze niet decompilen. maar dat betekent dus dat je je programma moet herschrijven en het heet dan geen trail meer maar een demo.
Dat vind ik toch wel iets te kort door de bocht. Als je een fatsoenlijke obfuscator gebruikt, kun je niet veel meer beginnen met je gedecompileerde .class files. Zeker in een progromma met een beetje een complexe structuur is het nauwelijks te doen dat ene if-statement er dan nog uit te vissen.

If the world wouldn't suck, we'd all fall off

Pagina: 1