LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Application Security

I'm trying to find a nice clean way to implement a security feature in an application we are releasing.  Basically, we want to be able to give a code to unlock certain features to certain customers but keep those features locked on the general release.  This code would need to be different for every computer it is installed on and make it to where a customer couldn't just copy over a license file to make it work on a different computer.  I'd rather not get into registry stuff if I don't have to.  Is there any slick way to do this?
0 Kudos
Message 1 of 22
(5,152 Views)

Here's a very basic way of doing it: 

1.  Ask the client for the MAC ID of the computer the software will run on. 

2.  Use this to create an encrypted key file.  Provide this to the customer, along with your software, or on activation.

3.  Check this key file in your app on startup.  And compare it with the MAC ID on the computer.  Grant/deny access accordingly. 

Depending on the encryption used, the user should not be able to create such files on their own.  Caveat:  there are ways of changing MAC IDs on a computer.. or so I have heard. 

-Khalid

Message 2 of 22
(5,147 Views)
Is there anything like that address that Labview can just read? 
0 Kudos
Message 3 of 22
(5,136 Views)

Hi,

Are you asking whether LV can get MAC information?

If so, the answer is yes. See attached code. This also gets MAC of computers on the LAN...

Rgds,

Gurdas

Gurdas Sandhu, Ph.D.
ORISE Research Fellow at US EPA
Message 4 of 22
(5,122 Views)

Maybe I missed something here, but isn't the MAC address associated with the network card?  What if this is on a barebones laptop or PC without any kind of networking ability?

I already require Windows XP for the software to run, will this still work?

0 Kudos
Message 5 of 22
(5,111 Views)

You're right.  The other unique data you could use are Processor ID, Hard-disk Serial number, etc. 

-Khalid

Message Edited by Khalid on 03-23-2006 11:13 AM

Message 6 of 22
(5,108 Views)
I like the idea of Processor ID.  How do I read that?
0 Kudos
Message 7 of 22
(5,101 Views)
The following thread has a VI (by UncleBump; towards the end of the thread) which calls a VBScript to get the Processor ID (and other info'):
 
 
 
I would prefer to use the WMI classes via .NET to get this info' -- it's just much cleaner, IMHO.  The following thread has an example VI (towards the end of the thread) on retrieving a Hard drive's model.  This can be easily modified to get the Processor ID: 
 
 
Hope this helps,
 
-Khalid
 
 
Message 8 of 22
(5,097 Views)

I quickly modified the WMI_GetHDModel.vi to retrieve the ProcessorID.  Attached.

Regards,

-Khalid

Message 9 of 22
(5,091 Views)

Thank you, this is great!

One more question though.  Will this always be a hex number, or is it just the letters in my ID happen to be A-F?

0 Kudos
Message 10 of 22
(5,064 Views)