0

Foremost, I'd like to state that I have gone through quite a few similar questions posted on stackoverflow and elsewhere, but they don't seem to have answered the extact question that I have.

I know there is no way to fool-proof software registration etc, its just a way I am trying to figure out so that things are very lame for everyone to crack open the software that I am making.

I have been looking to uniquely identify a user (for software registration purposes) using the Mac address. The platform I am working on is Java. Now, getting the Mac address from InetAddress has been a little risky to me - when computer has multiple MAC addresses (multiple NICs), then there are multiple connectivity options - through Wifi, Ethernet cable, 3G dongle etc. Different connectivity options return different InetAddresses and different Mac associated with them- so I cannot validate a software license for a user against this changing value of Mac address.

Is there another way I can uniquely identify a computer? Any other hardware authentication that can be done through Java ( that is platform independent - works on Windows, Mac and Linux).

Thanks

Rohan
  • 871
  • 1
  • 16
  • 32
  • Some people do upgrade their computers...what are you going to do if the hardware suddenly changes? – nneonneo Oct 06 '12 at 09:05

1 Answers1

0

First of all, you should be very careful when designing such solutions. No method is foolproof and you could probably devise a much simpler solution to stop casual copying.

Anyway, if you intend to check hardware identity, I would recommend checking many devices in the system (i.e. network adapters, hard drive serial number, cpu type, etc), then allow for a great deal of slack to avoid problems when users upgrade their systems.

Community
  • 1
  • 1
Krumelur
  • 31,081
  • 7
  • 77
  • 119
  • but is there a way using which I could do so in Java - cross platform (not just for Windows)? – Rohan Oct 06 '12 at 20:08
  • As you saw in the question I linked to, you probably have to handle the win/linux/mac/... cases separately for disk s/n. At least the device names differ. This probably apply to most hardware probing. Cpu type is probably WMI on win and /proc/cpuinfo on linux. – Krumelur Oct 08 '12 at 06:10