1

For simple copy-protection purposes, I would like to generate a small string or int value to (somewhat) uniquely identify the current computer. Ideally this value won't change after simple hardware peripheral changes, or even hopefully after a complete re-installation of Windows.

Most of the answers found here and elsewhere are unsatisfactory for three main reasons:

  1. The code presented isn't easily portable to C#.
  2. The hardware values suggested are often unusable/empty (e.g. the processor ID or even the hard drive serial number) or unstable (e.g. the MAC address).
  3. The code involved requires elevated admin privileges.

I have searched through several posts and found a helpful article (How To Get Hardware Information), but since #3 is an important consideration in my case, I'm not sure what hardware info I can retrieve with just normal user privileges.

Regarding #2, I imagine the best solution is to simply append a few different values together, but which ones? Any help is greatly appreciated, especially if it includes or points to C# code. :D

Jeremy
  • 934
  • 1
  • 10
  • 19
  • I'd also like to add that any copy protection scheme based on "unique hardware ids" is doomed for failure. – NullUserException Nov 11 '11 at 02:00
  • @NullUserException ఠ_ఠ - Several threads I've read have mentioned issues using the MAC address ([here's one](http://stackoverflow.com/questions/3443093/what-is-a-good-unique-pc-identifier/3443149#3443149)), especially in computers with multiple NICs (I guess the ordering is arbitrary). Could you elaborate more on why it's "doomed for failure" (beyond the fact that all copy-protection is hackable)? I'm simply trying to limit casual copying, i.e. a user passing his CD and key around to his buddies. – Jeremy Nov 11 '11 at 02:12

1 Answers1

2

I think you're going to have a hard time meeting this criteria because uniquely identifying the machine may be a functionality that is only intended for administrators. If this isn't the case now I'd imagine it will be as time goes on due to rising privacy concerns.

Spencer Ruport
  • 34,865
  • 12
  • 85
  • 147
  • If that's true, what are my best alternatives? Should I just generate a GUID for each machine I install on or something? – Jeremy Nov 11 '11 at 02:17
  • 1
    I would suggest reading up on the numerous articles written about how ultimately digital rights management is a lost cause. While some degree of copy protection can be beneficial the nature of your question suggests you're going well beyond that. If I were you I'd spend more time trying to make purchases as easy as possible (using paypal and accepting major credit cards) and lower your product's price to a "Why not?" level. Gabe Newell of Valve has done several interviews on how lowering prices substantially can result in higher total earnings as proven by their Steam sales. – Spencer Ruport Nov 11 '11 at 02:40