Search code examples
mac-addresssoftware-distributioncopy-protection

How to bind software to mac address?


I have written a software which I would like to bind to mac. Is there any specific algorithm to bind mac address with my software? Thank you for help ! Edit: I want to provide serial number according to user's mac address.


Solution

  • The comment above is right - the MAC address is widely used for node-locking, but it is a poor choice as it is easily changed in OS.

    A more secure approach is to use a combination of hardware and software system parameters, such as hard disk ID, system name, user OS login name, CPU ID etc.. The selection available will depend on the specific OS and programming language you use.

    However, to avoid problems down the road, I'd suggest you think about the following:

    • How do you obtain the system parameters? If you ask the user to provide them there is opportunity for human error, such as entering a '1' for an 'l' or a '0' for an 'O'. Then the license won't work and the user will be inconvenienced.
    • What if the parameter you lock to changes, say if the user upgrades their system by changing a piece of hardware? Will it break your system and need the user to request a new license from you?
    • What if the user wants to move their license to another system, or to a new machine? Can your licensing system allow this without making it easy for the user to run one license on both the old and new systems?

    These are the kinds of issues that cause home-built licensing systems to annoy legitimate users, and not be very secure against would-be hackers.

    Commercial licensing systems should of course have dealt with these and other issues already.