Sunday, June 5, 2011

CrazyEngineers Forum - Computer Science & IT Engineering

CrazyEngineers Forum - Computer Science & IT Engineering


Identifying a Unique Hardware based on Disk Signature

Posted: 05 Jun 2011 12:05 AM PDT

I am developing a software which employs product activation. We need to bind our software to only one machine, i.e. the user must not be able to activate his copy on more than one computer.

After a lot of searching I found out that using the MAC address of the NIC we can generate a unique hardware ID. But there are various ways to spoof the MAC easily.

There are other serial numbers too like the Motherboard serial, CPU Id, etc. but I found that many hardware manufactures leave them blank, they just print the serial on the physical hardware.

Another way is to use the Hard Disk signature generated by Windows when it is installed on that disk for the first time. The Disk signature seems to good for our purposes, but I have several queries:
  1. Is the Disk Signature unique across all disks?
  2. Will the signature change when the user installs a new copy of Windows?
  3. Can the Disk Signature be changed easily by users?
  4. Is it advised to rely on the Disk Signature for generating a Unique hardware ID for a system?
I hope you got what I am trying to say.
For programmer's reference, here's how I get the signature using C++/CLI and WMI classes.
Code:

ManagementClass ^mc = gcnew ManagementClass("Win32_DiskDrive");
ManagementObjectCollection ^moc = mc->GetInstances();
Console::WriteLine("Signature of Hard Disk");
for each (ManagementObject ^mo in moc)
{
    try
    {
        Console::WriteLine("Signature = " + mo["Signature"]);
    }
    catch (Exception ^e)
    {
        Console::WriteLine( "Exception : " + e->Message );
    }
}

visual basic

Posted: 04 Jun 2011 04:39 AM PDT

hey friends,
suggest me where to start from as i am just a beginer in this subject...How to proceed n which websites to follow to take some help??

No comments:

Post a Comment