Unique PC Identification

This there any identification number which is unique to every PC.  I have a piece of software which I wish to license per machine but needs a unique number which will only work on that machine.  Any ideas anyone ??
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

If you are using netware or IP/SPX protocol on your network you can try using the MAC Address
>This there any identification number
which is unique to every PC ?


Only "new" Pc with Pentium III .... You can enable or disable CPU identification number with bios.

Network card have a unique identification number, but generally you can overwrite this number (Mac address).

Harddisk : serial number ... ? (rom).

B) Hardware way
Dongle or key....  //,serial or USB.

C)Many protected programs write informations in Win9X or NT registery or signature on harddisk.
Big problems with this concept:

1) PC hardware does NOT have any reliable unique ID.  Period!  The only exception would be Pentium III based systems which do have a unique CPU ID.  Be aware, however, that programs are already available that permit a user to trap the instruction that provides this ID and have it provide ANY ID.  So it's not really much of a protection.

2) Ethernet cards have a unique MAC address which can be used but on many cards this address is easily changed.  Also, many techniques are available for spoofing this as well.

3) Hard drive serial #.  Also, very easily changed and/or spoofed.

Probably the best (if you can call it that) would be the use of a hardware key or dongle.  Sentinal, WIBU, and others make such things.  They really aren't very secure, however.  All you need to do is browse a few of the "hacked" software web site and see how easy this is.  Further, these dongles are fairly expensive and legitimate customers don't like them.

Which leads me to my real point.  Why are you bothering with this?  If you software is good enough be be pirated, you should feel honored.  But my experience is that it doesn't pay to worry about those who pirate software.  They don't pay for it regardless of what you do.  Worry about those who are ready, willing, and able to pay you for your work.  To quote someone I respect:

"People who buy software don't pirate it.  People who pirate software don't buy it."

       -- jhance
Redefining Cyber Security w/ AI & Machine Learning

The implications of AI and machine learning in cyber security are massive and constantly growing, creating both efficiencies and new challenges across the board. Join our webinar on Sept. 21st to learn more about leveraging AI and machine learning to protect your business.

jhance makes a very good point.

In my experience, the best copy protection is a good relationship with your customers.

On the other hand, for many buyers like myself, an elaborate copy protection scheme is a sure sign of low quality software.  It tells me that the supplier (you) is spending resources on the wrong thing.
jhance > Ethernet cards have a unique MAC address which can be used but on many cards this address is easily changed.  Also, many techniques are available for spoofing this as well.

Please tell me how, without changing or reflashing the rom, you would chang the MAC of a NIC.

you did say Ethernet and not ARCNet

MAC address is transfered from ROM to a register (ram). You can overwrite this value.

Network address = mac adress if not overwrite.
Network address = another if you overwrite it.

Change "Network adress"
-> With Win 9X :
Control Panel / Network / Configuration / Choose your network card / Advanced / Network adress


Disk serial number :
2 serial number

A "serial number" is generated according to current time at the moment of formatting. You can see this number with dir /p.  

Serial number in the disk firmware. this data are burned into disk internal ROM's...
You can see this number with tools like Ezscsi,Ezmaint or tools given by disk  manufacturers.

To work only on one machine I suppose you could write one of the files to a specific spot on the disk, write the details of that block to the install floppy and check that particular block whenever the setup is re-run. This doesn't stop someone duplicating the disk but it would mean the disk would only work for the PC it is first used on.

But then again, what happens if, for instance, the hard disk dies and a new one has to be used? It's possible to get the BIOS address and use that as a key this way, but then the same problem applies.

I'm not convinced there's any reliable solution which wouldn't inconvenience the customers enough to dissuade them buying it, so I'd say don't bother.

Rule of thumb- use the same level as copy protection as people selling equivalent products- any more and nobody'll purchase it unless your software is much superior.
jhance > this is not on my card, or on any of the cards in my lan. i dont see why, or how a NIC company could do this. the MAC is burnt in to a ROM when the card is made. eave if you could chang this, you could not do it from windows.
To Sash :

With many networks cards, you can change network address ( ~ mac adress):

> the MAC is burnt in to a ROM

OK, no problem ... I agree with you.
-> On your network card, you have a ram ( hardware registers).
-> During card boot,rom is transferred in a ram.
-> when data are in a ram you can m odify value when OS load driver.
For example, with old "odi" layer, it's was a parameter in net.cfg file.

By default ( no overwrite), network "see" mac address.
If you overwrite address, network "see" this new adress.

ok, i see what you are saying, but i think you have got one thing mistaken. a MAC is NOT the same as a network address. a MAC is a hardware address, a network address is a OS level address. i think what you are changing is the Network address, which i agree with you.

anyway, why are we talking about this, it has nothing to do with the question asked....
->"i think you have got one thing mistaken"

I never write mac address = network ( workstation) address

I write :

MAC address is transfered from ROM to a register (ram). You can overwrite this value.

Network address = mac adress if not overwrite.
Network address = another if you overwrite it.

The big corporations use a thing called hasp. This is being connected to the printers port and it provides a unique number. If you don’t have this thing you cant run the program. So if it is so important for you make your self, a thing like that.
No security is absolute, it can only be "good enough".
I take it that the software will already be installed?

Have the software take the directory that the user chooses to install it to, the date of that directory, the hard drive type, various other information such as the os, and the time zone. Make one big encryption key out of it and have the software use that encryption key when writing certain important data to the drive during the install.  Or as part of an algorythm for getting its starting data.

Have the software rebuild the key each time the program runs and use it to un-encrypt the starting data.  That way if the program is ever copied, moved, etc.... it will fail and ask for the install disk again. Of course that willalso happen if the OS is upgraded but then alot of programs bomb when OS is upgraded.

Since the key is not kept in the software as a string, it cannot be found and changed by a cracker program. Its not foolproof but then nothing really is.

Gandalf Parker

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
neilhollowayAuthor Commented:
I suppose a no is as good an answer as any !!!!!!
MAC addres i good, but if there is no network card it's can be a problem. IMHO you should use a hard drive volume ID or serial number. Volume ID you can get whit code which you can find in expert-exchange.

ps. sorry for my english
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.