Board index » cppbuilder » Unique ID

Unique ID


2006-01-02 04:42:51 AM
cppbuilder81
Is there anything identifying a computer uniquely that I can use to
determine if this is the same computer as last time I made the call. I've
been considering the Mac Address but it can change if the network adapter is
exchanged or if there are more than one adapter etc.
What I'm thinking about is all the different GUIDs. Would there be any of
these that I could call more than once and that would answer with the same
GUID.
I'm trying to determine if my application is still running on the same PC
that it was installed on and if not prompt the user to register for
additional licenses.
--
Perre
Symfoni, en kost- och träningsdagbok
www.kostforum.se
 
 

Re:Unique ID

Is there anything identifying a computer uniquely that I can use to
determine if this is the same computer as last time I made the call. I've
been considering the Mac Address but it can change if the network adapter is
exchanged or if there are more than one adapter etc.
What I'm thinking about is all the different GUIDs. Would there be any of
these that I could call more than once and that would answer with the same
GUID.
I'm trying to determine if my application is still running on the same PC
that it was installed on and if not prompt the user to register for
additional licenses.
--
Perre
Symfoni, en kost- och träningsdagbok
www.kostforum.se
 

Re:Unique ID

"Per Elmsäter" < XXXX@XXXXX.COM >wrote:
Quote
Is there anything identifying a computer uniquely that I can use to
determine if this is the same computer as last time I made the call.
No.
Anything you can think of could be replaced.
A technique that has been chosen in the past is to identify a bunch of
different items (say MAC, Hard Drive IDs, and anything else visible) and
allow it to be the same PC if some of those are the same. This still
doesn't stop the building of a 'patchwork clone' by changing one item at
a time until none of the original parts remain.
Alan Bellingham
--
Team Thai Kingdom
<url:www.borland.com/newsgroups/>Borland newsgroup descriptions
<url:www.borland.com/newsgroups/netiquette.html>netiquette
 

{smallsort}

Re:Unique ID

I use HD hardware serial number for that.
This is the code, that you can adapt for BCB:
www.winsim.com/diskid32/diskid32.html
--
Best regards,
Vladimir Stefanovic
 

Re:Unique ID

Alan Bellingham wrote:
Quote
"Per Elmsäter" < XXXX@XXXXX.COM >wrote:

>Is there anything identifying a computer uniquely that I can use to
>determine if this is the same computer as last time I made the call.

No.

Anything you can think of could be replaced.

A technique that has been chosen in the past is to identify a bunch of
different items (say MAC, Hard Drive IDs, and anything else visible)
and allow it to be the same PC if some of those are the same. This
still doesn't stop the building of a 'patchwork clone' by changing
one item at a time until none of the original parts remain.

Alan Bellingham
Maybe I should state that I'm not trying to build something absolutely
cracksafe. I'll be happy as long as only a good cracker can get through. My
main issue is to prevent users giving away a registered copy to their
friends.
--
Perre
Symfoni, en kost- och träningsdagbok
www.kostforum.se
 

Re:Unique ID

Vladimir Stefanovic wrote:
Quote
I use HD hardware serial number for that.

This is the code, that you can adapt for BCB:
www.winsim.com/diskid32/diskid32.html
Thanks. Plenty of diffent IDs shown there. Good enough for me.
--
Perre
Symfoni, en kost- och träningsdagbok
www.kostforum.se
 

Re:Unique ID

Boy oh boy, this is something I have been looking into for a while.
Firstly you can use the mac address, then I got a link to something that
allows cloning or changing your MAC address.
Then there is the registry. There are certain things I can look for and
have in the past but it can be changed and may not be secure.
What I am looking at now is the "Hardware\\Description\\System" area of
the regitry. This area in the registry is updated everytime you reboot
your PC. Changing it may be possible, but a reboot will revert it to
it's ORIGINAL state / values.
Not sure how to read it though, it is a MultiString(??)
Per Elmsäter wrote:
Quote
Alan Bellingham wrote:

>"Per Elmsäter" < XXXX@XXXXX.COM >wrote:
>
>
>>Is there anything identifying a computer uniquely that I can use to
>>determine if this is the same computer as last time I made the call.
>
>No.
>
>Anything you can think of could be replaced.
>
>A technique that has been chosen in the past is to identify a bunch of
>different items (say MAC, Hard Drive IDs, and anything else visible)
>and allow it to be the same PC if some of those are the same. This
>still doesn't stop the building of a 'patchwork clone' by changing
>one item at a time until none of the original parts remain.
>
>Alan Bellingham


Maybe I should state that I'm not trying to build something absolutely
cracksafe. I'll be happy as long as only a good cracker can get through. My
main issue is to prevent users giving away a registered copy to their
friends.
 

Re:Unique ID

Quote
What I am looking at now is the "Hardware\\Description\\System" area of
the regitry. This area in the registry is updated everytime you reboot
your PC. Changing it may be possible, but a reboot will revert it to it's
ORIGINAL state / values.
This is essentially what I'm using many years:
www.winsim.com/diskid32/diskid32.html
--
Best regards,
Vladimir Stefanovic
 

Re:Unique ID

Per Elmsäter wrote:
Quote
Vladimir Stefanovic wrote:

>I use HD hardware serial number for that.
>
>This is the code, that you can adapt for BCB:
>www.winsim.com/diskid32/diskid32.html


Thanks. Plenty of diffent IDs shown there. Good enough for me.
The following code seems to work on *any* drive, even USB ones! It uses no "backdoors" and
needs no special user rights to successfully determine the HD's serial number. The
following example identifies the first fixed disk's serial number :-
AnsiString id_first_hd()
{
char bf[9]; int ii;
bf[1]=':'; bf[2]='\\'; bf[3]='\0';
for (ii=67;ii<91;++ii)
{
bf[0]=ii; if (GetDriveType(bf)==DRIVE_FIXED) break;
}
if (ii>=91)
{
ShowMessage("There are no Fixed Drives on this PC"); return "";
}
unsigned long mxpl,volser,flsysflgs;
char appnam[MAXPATH],volnm[30],flsysnam[50];
if (GetVolumeInformation(AnsiString(bf),volnm,30,
&volser,&mxpl,&flsysflgs,flsysnam,50))
return "File System "+AnsiString(flsysnam)+
" Volume Name "+AnsiString(volnm)+
" Serial Number "+IntToHex((int)volser,8)+
" Max.Path Length "+IntToStr(mxpl)+
((flsysflgs & FS_VOL_IS_COMPRESSED)?" Compressed":"");
return "Could not Determine Details for Drive "+AnsiString(bf);
}
Let us know how this routine copes. TIA,
--
Mark Jacobs
www.dkcomputing.co.uk
 

Re:Unique ID

That's not a HD number... It's a volume (partition) ID, and
that number can be changed easily by code. I remember
that one utility was called 'volumeid.exe'.
The better (but not the best) approach is to make a composite
ID, forexample:
volume ID + something other + something other
... so the hacker does not know what all makes a key.
--
Best regards,
Vladimir Stefanovic
 

Re:Unique ID

Vladimir Stefanovic wrote:
Quote
That's not a HD number... It's a volume (partition) ID, and
that number can be changed easily by code. I remember
that one utility was called 'volumeid.exe'.

The better (but not the best) approach is to make a composite
ID, forexample:
volume ID + something other + something other
... so the hacker does not know what all makes a key.
But my point is that the average user will not know how to change the volume ID, so it's
usually pretty safe. If you are trying to devise a method to secure a unique ID when
advanced users are on the system, then even CLSIDs will not be safe enough. In fact,
depending on how advanced they are, nothing short of hardware ID numbers will do! So you
have to assume one piece of hardware being there in every system. Hard disks are not the
best idea, because they could be SCSI, SATA or IDE (some still MFM!). So, we could try
video cards, but is it on an ISA, EISA, PCI, AGP or PCI-Express bus? I have even seen
boxes wthout hard disk or video card running! Where does one draw the line? We always come
back to (aaaarrrrgggghhhh!) dongles.
--
Mark Jacobs
www.dkcomputing.co.uk
 

Re:Unique ID

"Vladimir Stefanovic" < XXXX@XXXXX.COM >wrote in message
Quote
That's not a HD number... It's a volume (partition) ID, and
that number can be changed easily by code. I remember
that one utility was called 'volumeid.exe'.
A volume can also be changed dynamically by the user in Windows Explorer.
Simply go into the Properties for a drive and change the "Label" and viola -
you have a new volume.
Gambit
 

Re:Unique ID

Colin B Maharaj wrote:
Quote
Boy oh boy, this is something I have been looking into for a while.

Firstly you can use the mac address, then I got a link to something
that allows cloning or changing your MAC address.

Then there is the registry. There are certain things I can look for
and have in the past but it can be changed and may not be secure.

What I am looking at now is the "Hardware\\Description\\System" area
of the regitry. This area in the registry is updated everytime you
reboot your PC. Changing it may be possible, but a reboot will revert
it to it's ORIGINAL state / values.

Not sure how to read it though, it is a MultiString(??)

I checked diskid32 out as Vladimir recommends. It works nicely as it also
checks for OS from win9x to XP.
I use MacAddress, DiskSerialNo and ComputerId whatever that is. Anyway it's
the same everytime I ask ;)
This is plenty for me as it will take a pro to get by and I don't figure
they are to interested in my coding ;)
--
Perre
Symfoni, en kost- och träningsdagbok
www.kostforum.se
 

Re:Unique ID

Vladimir Stefanovic wrote:
Quote
That's not a HD number... It's a volume (partition) ID, and
that number can be changed easily by code. I remember
that one utility was called 'volumeid.exe'.

The better (but not the best) approach is to make a composite
ID, forexample:
volume ID + something other + something other
... so the hacker does not know what all makes a key.
I got a nice setup with diskid32 that you recommended. It gives me plenty of
IDs to play with and store in different places.
--
Perre
Symfoni, en kost- och träningsdagbok
www.kostforum.se