Limit functionality for a specific computer

I have a program that uses a configuration file.

I would like to link the configuration file to a PC, so copying the file to another PC with the same configuration will not work.

I know that Mecanism for activating Windows controls the hardware for detecting changes and can tolerate some minor changes in the hardware.

Is there any library that can help me?

My other option is to use WMI to get the hardware configuration and program my own tolerant mechanism.

Thank you very much,

Nicholas

+4
source share
5 answers

The Microsoft Software Licensing and Protection Service has the functionality to bind a license to hardware. Maybe worth a look. Here 's a blog post that might interest you.

+4
source

If you want to limit the use of data to a specific computer, you will have to implement it yourself or find a third-party solution that can do this. There are no general Windows APIs that offer this functionality.

+2
source

You need to determine what you are currently calling a "machine."

If I replace the processor, memory and hard drive, is this the same computer? Network adapter, graphics card?

What defines a machine?

There are many and many libraries for licensing to do this for you, but almost everything is for payment (because, supposedly, you only want to protect commercial software in this way). See what RSA, Verisign, and even Microsoft have to offer. The Windows API does not disclose this, supposedly to prevent hacking.

Alternatively, do it yourself. This is not easy to do, the difficult part determines what you consider a machine.

If you decide to track 5 things (HD, network card, video card, motherboard, memory cards), and you allow 3 changes before requiring a new license, then users can duplicate the hard drive, remove two of the above, put them in a new machine, replace their new parts on the old machine and run your program on two separate computers.

So it takes some thought.

-Adam

+1
source

If your computer has a network card, you can always check your address. This should be unique, and checking it as part of the program launch program should ensure that it only works on one machine at a time ... even if you remove the network card and put it on another machine, it will only work on that machine. This will prevent network card updates.

0
source

Maybe you could just keep something in the registry? Like the previous modification timestamp for this file - if there is no registry entry or timestamps do not match, then returning to the default values ​​- will this work? (there is more than one way of cat skin;))

0
source

All Articles