7 Replies - 501 Views - Last Post: 14 December 2015 - 04:59 AM Rate Topic: -----

#1 neal7  Icon User is offline

  • D.I.C Head

Reputation: 7
  • View blog
  • Posts: 50
  • Joined: 22-May 15

Protect a program

Posted 11 December 2015 - 09:48 PM

Hi, what would you do to (try to) prevent a sold runnable Jar to be used (copied) by people who didn't regularly buy it? (not talking about a big program or a big company yet...)
Is This A Good Question/Topic? 0
  • +

Replies To: Protect a program

#2 astonecipher  Icon User is offline

  • Too busy for this
  • member icon

Reputation: 2330
  • View blog
  • Posts: 9,381
  • Joined: 03-December 12

Re: Protect a program

Posted 11 December 2015 - 11:24 PM

You can add a key that connects to a database, but in reality, there is nothing you can do. You may try locking down the program to a single system [connect to an online database and check the mac address kind of thing], but it does not mean it would work if someone wanted in.
Was This Post Helpful? 1
  • +
  • -

#3 sterile_code  Icon User is offline

  • New D.I.C Head

Reputation: 2
  • View blog
  • Posts: 6
  • Joined: 12-December 15

Re: Protect a program

Posted 12 December 2015 - 03:55 PM

There are a number of solutions out there, but the prebuilt ones I'm aware of cost money, such as license4J. As astonecipher said, if someone is dedicated enough, they will be able to break your protection; if they do so, be flattered, because your software must be good enough for a cracker to apply the necessary effort. The only effective way I can think of to protect your service is to make is accessible through the web only, as all the logic is processed server-side you have all the power to deny requests.
Was This Post Helpful? 1
  • +
  • -

#4 neal7  Icon User is offline

  • D.I.C Head

Reputation: 7
  • View blog
  • Posts: 50
  • Joined: 22-May 15

Re: Protect a program

Posted 12 December 2015 - 06:27 PM

Hi, thanks...
I'm aware there's no absolute protection...
No big program or big company, so won't worth to have a webserver always running, sell price it's cheap... maybe just try to avoid that someone simply gives a copy to a friend, or 10 people get in accord to buy just one copy... By know I can guess sells would be in order of tens, it's a group of people interested in/asking it, so manageable also manually;
I don't know exactly how to do it -guess I'll find out-, as said "check the mac address kind of thing", and maybe get the code via email, and send back another code calculated from the mac, like the Jar will do...I guess I should also use an obfuscator for the Jar...
Was This Post Helpful? 0
  • +
  • -

#5 sterile_code  Icon User is offline

  • New D.I.C Head

Reputation: 2
  • View blog
  • Posts: 6
  • Joined: 12-December 15

Re: Protect a program

Posted 13 December 2015 - 07:38 PM

View Postneal7, on 12 December 2015 - 06:27 PM, said:

Hi, thanks...
I'm aware there's no absolute protection...
No big program or big company, so won't worth to have a webserver always running, sell price it's cheap... maybe just try to avoid that someone simply gives a copy to a friend, or 10 people get in accord to buy just one copy... By know I can guess sells would be in order of tens, it's a group of people interested in/asking it, so manageable also manually;
I don't know exactly how to do it -guess I'll find out-, as said "check the mac address kind of thing", and maybe get the code via email, and send back another code calculated from the mac, like the Jar will do...I guess I should also use an obfuscator for the Jar...

Personally I would not use the user's MAC address. A legitimate user could change their network card, if you base the protection on a MAC address this legitimate user would be wrongly flagged as a pirate. When using copy protection for your software, the worse thing you can do is to prevent a legitimate user from running their copy by falsely identifying them as a pirate. Better to have many pirates and good reviews rather than few pirates and bad reviews. Also MAC addresses can be easily forged. I'm not sure how effective database solutions which log users identifying information would be, as firewalls can be used to block the program accessing the internet. You could make an internet connection mandatory for launching the software, but that is a terrible restriction to put on your paying customers.

If I was implementing copy protection, for each customer I'd encrypt the JAR with a private key. I'd share the corresponding public key - generated with their email and other personal information - with the customer. The JAR would be wrapped in a copy protection program which would require the public key as input to decrypt the JAR. The public key containing personal information would hopefully act as a disincentive to share it with the world ( If someone was daring enough to share the key I would certainly delete the corresponding private key so no new versions could be given to them). The JAR would be deleted after the user exits the program, so they would have to relaunch the copy protection program when using the program again. A flaw is that the user could just copy the decrypted JAR before it is deleted (I would make this harder by randomising the location of the decrypted JAR). Maybe, on decryption, you could put in a timestamp in the JAR, if the JAR is launched after the date given in the timestamp, you exit and attempt to make the JAR self-destruct. I'm not sure how good the idea is, but it is certainly easily defeated by those with knowledge, but possibly enough to stop your small user base from sharing the program online; at the very least, you will have put up a good fight.

This post has been edited by g00se: 14 December 2015 - 04:58 AM
Reason for edit:: Removed redundant quote

Was This Post Helpful? 1
  • +
  • -

#6 jon.kiparsky  Icon User is offline

  • Chinga la migra
  • member icon


Reputation: 10686
  • View blog
  • Posts: 18,302
  • Joined: 19-March 11

Re: Protect a program

Posted 13 December 2015 - 09:18 PM

My advice is, don't bother. Let people copy the thing if they want to - hell, give it away yourself. Once you know what your market is, you'll find a way to monetize it - for example, by selling special licenses that give special services, or t-shirts, or by mounting kickstarter campaigns to fund new development goals, or whatever it is that works for you. For now, your biggest problem is not that people are copying the software, it's that people aren't using it. Once there is a base of users who would rather gouge out their own left eye with a runcible spoon than give up your product - that's when you can start getting them to open up their wallets.
Was This Post Helpful? 2
  • +
  • -

#7 neal7  Icon User is offline

  • D.I.C Head

Reputation: 7
  • View blog
  • Posts: 50
  • Joined: 22-May 15

Re: Protect a program

Posted 13 December 2015 - 10:36 PM

Thank you all, really precious advices, also for the future.
Actually the key was:
"just try to avoid that someone simply gives a copy to a friend, or 10 people get in accord to buy just one copy... By know I can guess sells would be in order of tens, it's a group of people interested in/asking it":
No worldwide aim, advertising, or reviews: two users of a community asked me for a program; since in this community there are also other users interested (and maybe there will be others next), I thougth to sell it cheap but to many users, and not like a one to one commission; but I've already known that a (sub)group would buy one copy to share among them. I'd liked to try to hinder this, in a simple -they are not crackers- way...
Was This Post Helpful? 0
  • +
  • -

#8 g00se  Icon User is online

  • D.I.C Lover
  • member icon

Reputation: 3445
  • View blog
  • Posts: 15,610
  • Joined: 20-September 08

Re: Protect a program

Posted 14 December 2015 - 04:59 AM

Quote

No big program or big company, so won't worth to have a webserver always running

You can do that very cheaply - you should look into it
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1