4

I want to provide Licensing for my Windows application. As, I was searching online that I can use MAC Address.But at the same time,it can be spoofed. And there is a problem with every KEY like :

  1. CPU ID
  2. MotherBoard ID
  3. HDD Serial Number

What's the solution for this?

Sorry for my bad english.

RealSteel
  • 1,871
  • 3
  • 37
  • 74

3 Answers3

2

Why would you want to go so secured as to link the application to a computer what if the user purchases your app installs in on his machine then all the sudden decides he no longer like the machine and buys a new one if your app licence would only relate to that machine it means he has to purchase the app again....

instead just use a unique key generator there are plenty of examples for this and if you do not want to have several version of app installed on the same machine you can always make a note in registery.

here are couple of examples

http://www.codeproject.com/Articles/11012/License-Key-Generation

http://www.jagregory.com/writings/rhino-licensing/

COLD TOLD
  • 13,513
  • 3
  • 35
  • 52
  • I want to restrict the users count. For Example, if the client purchases for 10 users,then only 10 people must use that.How can i provide this scenario? – RealSteel Mar 01 '13 at 03:13
2

if you do this type of licensing, you have to anticipate that it'll become an ongoing administrative chore to track your customers' licenses. Once you have a few hundred customers, you'll be amazed at how frequently you get phone calls with requests to change keys Or else the customers may replace their whole machine, and need an updated license to run your software on the new machine. We got these calls practically every day at the company I worked for.

You also need to trust the customer to stop using your software on the old computer (or network adapter) if you give them a new key. If you couldn't trust them to obey the license in the first place, how can you trust that they'll throw away the old key?

If you don't plan how you're going to support this administrative activity, don't license your product in this way. You'll only inconvenience your good customers, who would have cooperated anyway.

Try referring to the techniques to licence via a usb dongle

Chief
  • 914
  • 1
  • 9
  • 26
1

There is no information on a standard PC, which you can use to uniquely identify it. As you said, your best shot would be to use serial numbers of the components. Because the architecture, Windows driver model .etc. are open, these can be spoofed. You also have to take in to account that your user may replace these components if they fail, which can cause your license validation to fail.

Modern devices like mobile phones has uniquely identifiable information (ex: Android's Device ID) for these kind of purposes.

I suggest your best option would be to identify the user, instead of the machine.. Use a username/password combo which you validate from the server side if it's possible. Otherwise you'll have to take your chances with using a serial number.

You may use a third party solution like an AppStore/Market, which essentially does the validation at server side, every time your application starts. One example was Microsoft Digital Locker introduced with Windows Vista, but it is not available any more.

Madushan
  • 6,977
  • 31
  • 79