Copy Protection/Licensing Registration for Word Global Template?

Posted on 2013-12-19
Last Modified: 2013-12-19
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
Question by:Bryce Bassett
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
LVL 76

Expert Comment

ID: 39729567
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.

Author Comment

by:Bryce Bassett
ID: 39730328

Can you point me somewhere I can learn more about the "hash process (e.g. MDS with your own code modification)"?
LVL 76

Accepted Solution

GrahamSkan earned 500 total points
ID: 39730473
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:

Wiki has an article here.

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)

Author Closing Comment

by:Bryce Bassett
ID: 39730649
Thanks, I'll have a look.

Featured Post

Revamp Your Training Process

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
Ever visit a website where you spotted a really cool looking Font, yet couldn't figure out which font family it belonged to, or how to get a copy of it for your own use? This article explains the process of doing exactly that, as well as showing how…
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns over…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…

724 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question