I've recently been asked to find a way to add copy protection to our CHM deliverables. It certainly doesn't need to be bulletproof, but should be enough to discourage our users from passing on the information.
Has anyone out there done this before? Any tips would be much appreciated!
CHM copy protection?
CHM copy protection?
Jumping over an office building near you.
-
RamonS
- Senior Propellus Maximus
- Posts: 4293
- Joined: Thu Feb 02, 2006 9:29 am
- Location: The Electric City
Re: CHM copy protection?
I haven't done this before, but I have many times discussed the issue - and each time the consensus is that it is utterly pointless. If you do not want to run into the situation where the contents of a help file are passed on then don't even release that information. If you do release it anyway, it will get passed on. You could add file protections and encryptions and watermarking and what have not, but if one really wants to they can make screen shots or copy and paste the text or just retype it. I also think that adding anything in will make it even more likely that people try and pass on the contents, because now you tell them explicitly that you don't want them to do it. There is something twisted with people that exactly that triggers the urge in some to do it anyway.
Now, there are means to make it more difficult. Rather than having the help in an external file with a commonly known and decompileable format you should investigate including the help into the application's binary file. That way access to the help content is only possible by running the application and for that several tools are available to make unauthorized use of the application quite difficult (not impossible as you can see at the many warez sites). Now, keep in mind that this still will not prevent people from making screen shots or retyping the content. Copy and paste can be countered by turning everything into an image file and displaying that through the application. The disadvantage with that is that you have a overly bloated executable.
I leave it at that for now, but you really need to go back to the requestor and find out why exactly passing information on is to be prevented. Is it because of competition? Trade secrets? Sensitive personal information? The attempt to squeeze out extra bucks through the sale of documentation? Some other reason? Each reason will have different approaches that definitely will be better than just slapping some mindless copy protection onto a chm.
Now, there are means to make it more difficult. Rather than having the help in an external file with a commonly known and decompileable format you should investigate including the help into the application's binary file. That way access to the help content is only possible by running the application and for that several tools are available to make unauthorized use of the application quite difficult (not impossible as you can see at the many warez sites). Now, keep in mind that this still will not prevent people from making screen shots or retyping the content. Copy and paste can be countered by turning everything into an image file and displaying that through the application. The disadvantage with that is that you have a overly bloated executable.
I leave it at that for now, but you really need to go back to the requestor and find out why exactly passing information on is to be prevented. Is it because of competition? Trade secrets? Sensitive personal information? The attempt to squeeze out extra bucks through the sale of documentation? Some other reason? Each reason will have different approaches that definitely will be better than just slapping some mindless copy protection onto a chm.
New Book: Creating user-friendly Online Help
Paperback http://www.amazon.com/dp/1449952038/ or https://www.createspace.com/3416509
eBook http://www.amazon.com/dp/B005XB9E3U

Paperback http://www.amazon.com/dp/1449952038/ or https://www.createspace.com/3416509
eBook http://www.amazon.com/dp/B005XB9E3U
Re: CHM copy protection?
Yeah that's certainly a conversation I had. The impetus here is keeping detailed product info away from competitors. Obviously, we have no illusions that someone determined to pass on product information will find a way to do so, but we'd like to build in a deterrent that would force people to make a conscious effort to break the rules.
I tried using JScript to check for the presence of one of the DLLs in our Program Files folder. This works, but an alert appears on each topic, asking the user if they want to enable ActiveX controls (which it totally unusable). Is there a more seamless approach I could take? Or, is there an easy way to add a CHM to a list of "trusted" applications so that these alerts don't appear?
I tried using JScript to check for the presence of one of the DLLs in our Program Files folder. This works, but an alert appears on each topic, asking the user if they want to enable ActiveX controls (which it totally unusable). Is there a more seamless approach I could take? Or, is there an easy way to add a CHM to a list of "trusted" applications so that these alerts don't appear?
Jumping over an office building near you.
-
RamonS
- Senior Propellus Maximus
- Posts: 4293
- Joined: Thu Feb 02, 2006 9:29 am
- Location: The Electric City
Re: CHM copy protection?
Is that detailed product info necessary for using the application? I don't know the circumstances, but if it is not needed then I'd pull it out of the help and distribute it on an "as needed" basis and maybe require a signed NDA in exchange. That gets into contracting and needs some input from the legal team, which is the place I'd take this issue to begin with. Maybe the current licensing already prohibits passing on that information. If it does, then leaving things the way they are may be an option if the reason for protecting the contents is merely for having legal leverage. And maybe using your DLL check may be OK if you pull that info out and craft a separate CHM for the detailed information.
Yet again, if it is really information of such importance my recommendation is to just take it out of the CHM.
Yet again, if it is really information of such importance my recommendation is to just take it out of the CHM.
New Book: Creating user-friendly Online Help
Paperback http://www.amazon.com/dp/1449952038/ or https://www.createspace.com/3416509
eBook http://www.amazon.com/dp/B005XB9E3U

Paperback http://www.amazon.com/dp/1449952038/ or https://www.createspace.com/3416509
eBook http://www.amazon.com/dp/B005XB9E3U
-
Pete Lees
- Sr. Propeller Head
- Posts: 150
- Joined: Thu Feb 09, 2006 12:33 pm
- Location: Bracknell, Berkshire, UK
Re: CHM copy protection?
Hi,
You may be able to pick up a few ideas on this subject from the following thread on the MSDN "Developer Documentation and Help System" board:
http://forums.microsoft.com/MSDN/ShowPo ... 3&SiteID=1
The fact is, though, that Microsoft simply didn't anticipate this requirement in its design of HTML Help, and files in this format are inherently insecure as a result.
Pete
You may be able to pick up a few ideas on this subject from the following thread on the MSDN "Developer Documentation and Help System" board:
http://forums.microsoft.com/MSDN/ShowPo ... 3&SiteID=1
The fact is, though, that Microsoft simply didn't anticipate this requirement in its design of HTML Help, and files in this format are inherently insecure as a result.
Pete
-
Richard Ferrell
- Propellus Maximus
- Posts: 840
- Joined: Mon May 01, 2006 10:11 am
- Location: Inside California
Re: CHM copy protection?
We do have a technote that shows how to protect images in a Webhelp from being copied out, it might guide you down the correct path
Richard Ferrell
Certified Madcap Trainer

Certified Madcap Trainer
Re: CHM copy protection?
There is a piece of software:
CHM Security OwnerGuard
http://www.armjisoft.com/?page=chmownerguard
But the cost makes it prohibitive excpet for the most commercial of applications
CHM Security OwnerGuard
http://www.armjisoft.com/?page=chmownerguard
But the cost makes it prohibitive excpet for the most commercial of applications