• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 282
  • Last Modified:

Copy Protection/Licensing Registration for Word Global Template?

I'm marketing a global template (.dotm saved in AppData...\Word\STARTUP) and would like to add some kind of protection so it can't be copied to additional machines without my knowledge.  Currently I have the file packaged in an .msi installer along with other files needed for the system to operate.  A client company will need to install this on several machines within their organization, but I want to limit their ability to give/resell it beyond their own company.  

I believe I can add licensing registration to my installer (I use Advanced Installer), but once the files are installed, I don't think that prevents someone from copying the files themselves.  Is there a package out there, or some VBA code I can add within the template itself that will bind it to the current machine so that it won't work if transferred to another machine?  I need to allow the client to install on as many machines as they need, but not be able to distribute beyond that.

Thanks for any ideas
0
Bryce Bassett
Asked:
Bryce Bassett
  • 2
  • 2
1 Solution
 
GrahamSkanCommented:
This is a perennial problem. You can input some metrics of the PC (e.g. system disc serial number) into a hash process (e.g. MD5 with your own modification) at installation time and save it in the registry. This would be checked when the code is run.

The snag is that the process might be discovered. Also it might not survive hardware changes.
0
 
Bryce BassettFreelance VBA programmerAuthor Commented:
Thanks.

Can you point me somewhere I can learn more about the "hash process (e.g. MDS with your own code modification)"?
0
 
GrahamSkanCommented:
MD5 is a well-known hashing algorithm. It will convert any text string into a 16 byte number. It is usually presented in Hex and is sometimes provided in that form as a key to unlock software, the provider having calculated it from some text that the customer has provided. For example, this is the key to the string 'alphabetic' from a free on-line provider:
461abee24ef7f3ee34a7f5969957a872

Wiki has an article here.
http://en.wikipedia.org/wiki/MD5

If you Google for 'MD5 VB6', you will be able to find several sets of code that implement the algorithm. I just Googled 'MD5 VB' and got a .Net version which  seems to indicate that the algorithm is built-in to that platform.

By your 'own modification', I mean that you can garble the input in your own repeatable way, e.g. reversing all or some of the text, appending some fixed text or anything of that sort. It would then not be possible for the user to simply run the algorithm with their own inputs.

All this supposes that your code is protected. VBA code protection is thought to be weak. There are third party products that claim to work better. Otherwise you might want to provide the functionality in your template as a compiled add-in (needs VB6, .net or some other stand-alone development application)
0
 
Bryce BassettFreelance VBA programmerAuthor Commented:
Thanks, I'll have a look.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now