How to Restrict my addin usage to one pc only

M

Madiya

I have developed a addin successfully.
I need to restrict its usage on one pc only.
I am aware that I can not fully stop piracy but
still I like to have restrictions in the add in.

I am willing to hardcode data if required.
For every pc, i am ready to alter and put diff code if required.

Request you to pl provide me pointers for easy implementation.

Regards,
Madiya
 
G

GS

I have developed a addin successfully.
I need to restrict its usage on one pc only.
I am aware that I can not fully stop piracy but
still I like to have restrictions in the add in.

I am willing to hardcode data if required.
For every pc, i am ready to alter and put diff code if required.

Request you to pl provide me pointers for easy implementation.

Regards,
Madiya

Well.., implementing this isn't what I consider 'easy'!<g> The only way
you can do this is to 'lock' your project to a PC's BIOS SerialNumber
since that's build into the motherboard. Locking to any other hardware
doesn't ensure its usage to any one PC since most other hardware can be
'transplanted'.

I do this via a licensing methodology that uses a 'LicenseProfile' to
contain various data, and requires activation via a license key to use
my stuff beyond the trial period (or in some cases, payment due date).
This is a delimited string containing compound data (any values I
choose) that gets strongly encrypted (512 bit) with a PrivateKey and
encoded to Base64 so it can be sent via email.

How it works:
User must 'register' the app on my website to obtain a 'LicenseKey'!
This process transfers the contents of the 'license.dat' file (via the
URL) that the app creates at first startup. Besides containing info
about the app version/edition it also contains specific hardware info
and a unique 'SeatID' that was created when the app first ran. The
webpage collects user info which I insert into the 'LicenseKey' info,
and has a link to PayPal for purchasing a license key.

I update the 'license.dat' info to include the user info provided
during registration, remove the trial period flags, and update the
status to a full license profile. I then send the activation key via
email once payment is confirmed. The user doea a copy/paste from the
email into the box on the form that displays during startup, and clicks
the 'Validate License' button.

You're probably not looking for anything this complex but you will need
to add code to handle creating/validating licenses on a per machine
basis. I use WMI to collect hardware info, and a good algorithym for
generating uniques seat IDs. Validation requires that the MachineID,
SeatID, and AppID match perfectly. In cases where the PC is a clone
(ergo no BIOS SN) I generate a SHA256 hash of select hardware info as a
backup. This isn't foolproof because hardware can be changed, but not
likely all of it and so I'm still able to determine if it's the same
machine by process of elimination.

Additionally, you need to lock your project so the code is not
accessible. Better yet, use a DLL to store your code and licensing
processes so users can't disable/bypass it.

You can also buy 3rd party stuff that uses a DLL if you don't have the
means to create your own. I recommend CryptoLicensing from LogicNP
(because that's similar to my methodology) because they provide a
validation site for online activations, giving you a complete licensing
package without the overhead of a website and activation server.

HTH

--
Garry

Free usenet access at http://www.eternal-september.org
Classic VB Users Regroup!
comp.lang.basic.visual.misc
microsoft.public.vb.general.discussion
 
W

witek

Madiya said:
I have developed a addin successfully.
I need to restrict its usage on one pc only.
I am aware that I can not fully stop piracy but
still I like to have restrictions in the add in.

I am willing to hardcode data if required.
For every pc, i am ready to alter and put diff code if required.

Request you to pl provide me pointers for easy implementation.

Regards,
Madiya

There is now way if you are thinking about protecting vba addin.
Cracking VBA passwords does not take more than 5 minutes.

You can eventually code part of your solution as DLL and use something
PC unique to distinguish computers. Bios number usually works fine
however my computer's BIOS number is "to be filled by O.E.M".
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top