CPU Serial Number

AlexCode

Senior Contributor
Joined
Jul 7, 2003
Messages
931
Location
Portugal
I always post dificult threads... I know...
Lets see if you guys can help with this...


I need to know, within my .net app, the serial number of the CPU.
Is it possible?

If easyer, it can be the serial of the motherboard instead...:D




Thanx...


Alex
 
Do you absolutely need the serial number? Although you didn't say, usually issues like these are for product legitimacy and for product keys for shareware programs. If that is the case...I know that Window's assigns a handle to devices so that you may generate, unique data for a program is installed on a computer.
Since no one has replied i figured i'd take a stab.

brandon
 
Well like i said I don't know how to do that but i have seen the same quetion asked before. I would start a new post and restate your question in more detail. Give this one a day or two to see if anyone catches it first though.
Do some searching on handles too while you wait... sometimes we get so use to these forums we forget to do that.

Glad I could help
brandon
 
Complete Sys Info ( CPU serial included :D ):

C#:
using System;
using System.Management;
...
...
...
private void frmMain_Load(object sender, System.EventArgs e)
{
string[] cimClass = {"Win32_LogicalDisk", "Win32_Processor", "Win32_OperatingSystem"};
     foreach(string cc in cimClass)
    {
       Console.WriteLine("----------- {0} --------------", cc);

ManagementClass cimobject = new ManagementClass(cc);
ManagementObjectCollection moc = cimobject.GetInstances();

     foreach(ManagementObject mo in moc)
	foreach(PropertyData s in mo.Properties)
	{
	   try 
	  {
Console.WriteLine(s.Name + ":\t\t" + mo[s.Name].ToString());
                 }
catch(System.NullReferenceException)
{
Console.WriteLine("No object reference for: " + s.Name);
continue;
}
}
}
		
}//end frmMAinLoad

works only on winMe,WinXP,W2K!!!
for win98 and NT4 WMI core MUST be installed

:D
 
Last edited:
(These should be posted in General)

ok i created that project to see what it looks like and it sure enough works...
So now i'm curious as too how this system works for creating a Key for unlocking a program.
I can see generating a key based on certain factors but which ones?
Once you have that it would seem like a good idea to keep people from installing multiple times from the same disk without consent (giving to friends etc...)
Do all disks have different volume labels?
If so that would seem like a good way to prevent furthur stealing.
ie. Sending encrypted volume label of disk, with a made from key hardware information to identify the computer. The only issue after that is to prevent burning copies... How is that done?
Of course crackers and hackers and such will figure something out but i'd like to know how to accomplish these things anyway.
Possibly install a hidden bs file somewhere that is absolutely necessary to install but serves no purpose to program? The registry?

Sorry this post just put me on a theoretical splurge. I'd like to have some classes designed to accomplish these things...but it might be fun doing it myself.

brandon
 
Since this works, and I sincirelly thank 'sizer' for that my method of using this will be very simple, it won't be practical but will fill my need and... simple...

The software I'm developing and wish to secure with this method will be only installed by me on by my partners, no client will be allowed to have a software disk before I have the machine CPU serial number. Second thing, the licencing of the program will be per machine so I use the more reliable part of a computer... the CPU and its unique serial number!

After I have this, I compile a security dll for that specific client/computer. that software can me installed on another computer but will not run unless it have the CPU it is expecting...


This is my current method...
If we debate this it possibly can be improved.


Tell me what u think!




Thanks.

Alex :D
 
When I said "Method" I wasn' refering to code, I was refering to a psycologic way of doing this...

I don't have any code made around this...maybe next weekend I'll implement it, so it would be good if we share some security ideas! :D



Thanks


Alex :D
 
if you just want your processor id , you can do this...
Visual Basic:
        Dim manClass As New ManagementClass("Win32_Processor")
        Dim mObjCol As ManagementObjectCollection = manClass.GetInstances
        Dim m As ManagementObject
        Dim processorID As String = ""
        For Each m In mObjCol
            If processorID = "" Then
                processorID = m.Properties("ProcessorId").Value
                MessageBox.Show(processorID)
            End If
        Next
 
Back
Top