unique number for a system

  • Follow


Hi,

I want to fetch a unique ID for a system so for that I want to get the 
following:

1.OS Serial Number
2.CPU Serial Number

or any other way to generate a unique ID for a system?

Please help me..
Thanks
0
Reply Utf 3/5/2010 11:56:02 AM

It sounds like Yet Another Attempt To Write A Licensing Program.

Generally, the values you obtain this way are completely useless for nearly any purpose
you can imagine.  They are not valid for determining licensing, in particular.  And if you
are using them, I can fake you out and give you whatever you want with minimal effort,
that is, I can crack your licensing scheme with a couple hours' work.  Unless I download
the code from a cracker site, in which case I can crack your licensing in under five
minutes.

I am not aware that the "OS Serial Number" is even available, and CPUs don't have serial
numbers (there was a brief period in the mid-1990s in which this was true, but it hasn't
been true in about 15 years or so).

Buy a third-party license management program, or look for some of the numerous shareware
and freeware packages available.  But if you think you can invent one, you're wrong.  You
can't.  (I spent many months researching this problem a few years ago.  The only really
secure technique involves having a USB dongle that contains an active encryption
challenge-response technique.  Anything, and I emphasize, anything, that is pure software
can be cracked.  What makes Microsoft licenses hard to crack is the fact that the tests
are widely distributed in the OS, and nobody has the source code.  So the cost of a crack
is sufficiently high that it is hard to justify.  But any "give me the serial number"
style of license key models is doomed.  It will either screw you because it is trivial to
crack, or it will screw your user because it does the wrong thing and turns into a simple
denial-of-legitimate-service mechanism)
				joe
On Fri, 5 Mar 2010 03:56:02 -0800, nexolite <nexolite@discussions.microsoft.com> wrote:

>Hi,
>
>I want to fetch a unique ID for a system so for that I want to get the 
>following:
>
>1.OS Serial Number
>2.CPU Serial Number
>
>or any other way to generate a unique ID for a system?
>
>Please help me..
>Thanks
Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
Reply Joseph 3/5/2010 2:07:02 PM


yes sir you are very correct in saying that it can be cracked easily...

But I don't have many users of my software and is not so famous..
So I want a simple method with which I can detect if the user is using the 
same key on many computers.

so using WMI class Win32_BaseBoard I am extracting SerialNumber from it..
do you think this WMI method will work on all the systems and on all the 
windows versions (xp/vista/7) ?
and what are the chances of this SerialNumber being unique?

Thanks

"Joseph M. Newcomer" wrote:

> It sounds like Yet Another Attempt To Write A Licensing Program.
> 
> Generally, the values you obtain this way are completely useless for nearly any purpose
> you can imagine.  They are not valid for determining licensing, in particular.  And if you
> are using them, I can fake you out and give you whatever you want with minimal effort,
> that is, I can crack your licensing scheme with a couple hours' work.  Unless I download
> the code from a cracker site, in which case I can crack your licensing in under five
> minutes.
> 
> I am not aware that the "OS Serial Number" is even available, and CPUs don't have serial
> numbers (there was a brief period in the mid-1990s in which this was true, but it hasn't
> been true in about 15 years or so).
> 
> Buy a third-party license management program, or look for some of the numerous shareware
> and freeware packages available.  But if you think you can invent one, you're wrong.  You
> can't.  (I spent many months researching this problem a few years ago.  The only really
> secure technique involves having a USB dongle that contains an active encryption
> challenge-response technique.  Anything, and I emphasize, anything, that is pure software
> can be cracked.  What makes Microsoft licenses hard to crack is the fact that the tests
> are widely distributed in the OS, and nobody has the source code.  So the cost of a crack
> is sufficiently high that it is hard to justify.  But any "give me the serial number"
> style of license key models is doomed.  It will either screw you because it is trivial to
> crack, or it will screw your user because it does the wrong thing and turns into a simple
> denial-of-legitimate-service mechanism)
> 				joe
> On Fri, 5 Mar 2010 03:56:02 -0800, nexolite <nexolite@discussions.microsoft.com> wrote:
> 
> >Hi,
> >
> >I want to fetch a unique ID for a system so for that I want to get the 
> >following:
> >
> >1.OS Serial Number
> >2.CPU Serial Number
> >
> >or any other way to generate a unique ID for a system?
> >
> >Please help me..
> >Thanks
> Joseph M. Newcomer [MVP]
> email: newcomer@flounder.com
> Web: http://www.flounder.com
> MVP Tips: http://www.flounder.com/mvp_tips.htm
> .
> 
0
Reply Utf 3/5/2010 4:39:01 PM

See below...
On Fri, 5 Mar 2010 08:39:01 -0800, nexolite <nexolite@discussions.microsoft.com> wrote:

>
>yes sir you are very correct in saying that it can be cracked easily...
>
>But I don't have many users of my software and is not so famous..
>So I want a simple method with which I can detect if the user is using the 
>same key on many computers.
*****
This still has problems.  Replace the motherboard, the software fails.  Add a second CPU.
The software fails.  What does a "CPU Serial Number" mean when I have four CPU chips (each
with two hyperthread CPU cores inside) in my motherboard?  Which one defines "the" serial
number?  So if the thread happens to running on CPU1 instead of CPU0, when it checks the
"serial number", it fails.  Upgrade the OS, the software fails.  You could use the disk
ID, but change the disk and it fails.  Run it on a VM, it fails.  Change the VM
parameters, it fails.  

In fact, if the license is a single-CPU license, why is it that it is coupled to a
*PARTICULAR* CPU?  If I run a program on my laptop, it is not running on my desktop; if it
is running on my desktop, I am not using my laptop.  So it is running on only one CPU at a
time.  My usage of these computers is mutually exclusive.  

Licensing is a problem, but none of these methods work terribly well.  Given that there
are freeware and shareware versions of reasonable licensing software, I'd start there. The
correct question is: "I need to use some kind of licensing software.  Does anyone have a
recommendation as to what packages are the best?"

I know there are people out there who have answered this question in the past, in this
newsgroup, with recommendations at all price points starting at $0 and going up.

The one thing everyone who has tried this, or been victimized by it, will tell you,
uniformly: "Don't try to invent it yourself, you *will* get it wrong, and usually in a way
that prevents legitimate users from using it.  If you don't mind seriously annoying paying
customers and manning a 24/7 help desk, feel free, but you will ultimately regret trying
to invent it all over again, badly"
			joe
****
>
>so using WMI class Win32_BaseBoard I am extracting SerialNumber from it..
>do you think this WMI method will work on all the systems and on all the 
>windows versions (xp/vista/7) ?
>and what are the chances of this SerialNumber being unique?
>
>Thanks
>
>"Joseph M. Newcomer" wrote:
>
>> It sounds like Yet Another Attempt To Write A Licensing Program.
>> 
>> Generally, the values you obtain this way are completely useless for nearly any purpose
>> you can imagine.  They are not valid for determining licensing, in particular.  And if you
>> are using them, I can fake you out and give you whatever you want with minimal effort,
>> that is, I can crack your licensing scheme with a couple hours' work.  Unless I download
>> the code from a cracker site, in which case I can crack your licensing in under five
>> minutes.
>> 
>> I am not aware that the "OS Serial Number" is even available, and CPUs don't have serial
>> numbers (there was a brief period in the mid-1990s in which this was true, but it hasn't
>> been true in about 15 years or so).
>> 
>> Buy a third-party license management program, or look for some of the numerous shareware
>> and freeware packages available.  But if you think you can invent one, you're wrong.  You
>> can't.  (I spent many months researching this problem a few years ago.  The only really
>> secure technique involves having a USB dongle that contains an active encryption
>> challenge-response technique.  Anything, and I emphasize, anything, that is pure software
>> can be cracked.  What makes Microsoft licenses hard to crack is the fact that the tests
>> are widely distributed in the OS, and nobody has the source code.  So the cost of a crack
>> is sufficiently high that it is hard to justify.  But any "give me the serial number"
>> style of license key models is doomed.  It will either screw you because it is trivial to
>> crack, or it will screw your user because it does the wrong thing and turns into a simple
>> denial-of-legitimate-service mechanism)
>> 				joe
>> On Fri, 5 Mar 2010 03:56:02 -0800, nexolite <nexolite@discussions.microsoft.com> wrote:
>> 
>> >Hi,
>> >
>> >I want to fetch a unique ID for a system so for that I want to get the 
>> >following:
>> >
>> >1.OS Serial Number
>> >2.CPU Serial Number
>> >
>> >or any other way to generate a unique ID for a system?
>> >
>> >Please help me..
>> >Thanks
>> Joseph M. Newcomer [MVP]
>> email: newcomer@flounder.com
>> Web: http://www.flounder.com
>> MVP Tips: http://www.flounder.com/mvp_tips.htm
>> .
>> 
Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
Reply Joseph 3/5/2010 8:14:41 PM

Take a look at CryptoLicensing for MFC 
(http://www.ssware.com/cryptolicensing/cryptolicensing_mfc.htm) which uses 
computer name for identifying machines. 

See below:
CryptoLicensing uses a simple yet relatively foolproof way to uniquely 
identify machines. Each machine is identified by its computer name. Any time 
a license needs to be activated, a hash of the computer name is generated and 
sent to the license service (instead of the computer name itself - this 
protects the user's privacy) .Using the computer name ensures that the 
activation and machine-locking scheme is free of common problems plaguing 
such schemes caused by changing hardware profiles. Even if the user's 
hardware profile changes- maybe the LAN card or hard disk changed - the 
computer name will most likely remain the same and will not disrupt 
validation of machine-locked licenses.

Using computer names also offers a high amount of security because users are 
unwilling or often unable (in a corporate environment) to change their 
computer name just for the sake of being able to use pirated copy of your 
software.

Using the computer name as the machine code offers an excellent balance 
between security and resistance to machine changes (and the resultant hassle 
for your customers to request a new license key which will work on the new 
machine configuration). First, your users have to somehow find that you use 
the computer name as the machine code. Even then, many users are unable to 
change machine code - maybe because they are novice computer users or because 
their setup (for example, in a corporate environment) does not allow them to 
change computer

name. Note that since its not possible for a single network to have two 
computers with the same name, it is not possible to use a single license on 
multiple machines in a corporate network. In case of a home user, to use the 
same license key on another machine, he would have to choose a machine over a 
different network. Many users will not find it worth the hassle to change 
computer names and networks just to be able to use a pirated copy.

Another important aspect is that as you go on increasing the level of detail 
in the machine code, it becomes more and more likely that machine code 
validation will fail because even a small change in the machine properties 
will change its machine code. You risk angering legitimate paying customers 
if all of a sudden after some machine upgrading, they find that their license 
is not longer working. Also consider the time required for you for 
administration and issuing of the new machine-locked licenses for these 
customers.
0
Reply Utf 3/6/2010 11:05:01 AM

4 Replies
174 Views

(page loaded in 0.112 seconds)

Similiar Articles:
















7/24/2012 6:39:40 AM


Reply: