Upgrading Your Protected Program To Use The Newest KeyChk DLL


The new version of the KeyChk DLL was designed as a “drop-in” replacement for Kechk32.dll. It is totally backward compatible, having the same entry point, using the same calling convention and supporting the old SCB layout. This means that there is a very good chance you can use the new KeyChk.dll without making any Source Code changes or re-compiling.


To use the new DLL with your existing Product program(s), simply rename the “KeyChk.dll” file to “Kechk32.dll” and copy it over the existing “Kechk32.dll” file. That's it!


Of course, using the new DLL without making any source code changes means you will not be able to access the new SCB fields. Even so, by using the new version of the KeyChk DLL, your Product programs WILL be able to use the newer and faster Rockey4ND Keys.


Here is a summary of the improvements in the KeyChk DLL:

  • Supports both Rockey4 and Rockey4ND Keys. Rockey4NDs require no Device Drivers, are about 4 times faster and have more memory so they can store Customer Registration Information.

  • Returns the Expire-Date and Time in Unicode characters using the format dictated by the User's Local Region Settings. This eliminates the need for your Program to reformat the data returned in the SCB.

  • Returns the Renew-Used Count field.

  • Returns the new Key fields for Feature-Flags and Registered Customer Name, Company and Other.

  • Does not require Ibfs32.dll.

  • Is backward compatible and can be used as a “drop-in” replacement for Kechk32.dll, usually requiring “No Source Code Changes” or re-compiling.


If you want to take full advantage of all the improvements in the new KeyChk.dll, you will need to make a few changes to your Product. Here's what you need to do:

  • Change your source code to call function “KeyChk” instead of “KECHK32”.

  • Change your source code to use “KeyChk.dll” instead of “Kechk32.dll”.

  • Update your source code definition of the SCB to be 512 bytes in size instead of 80 bytes. For a complete description of the SCB and its field layout, refer to the “KeyChk SCB Layout” section of this chapter.

  • Change your source code to set the “SCB‑ID” field to “Kc.6” instead of “..?Z”.

  • Replace the “Kechk32.dll” file with “KeyChk.dll”.

  • Enjoy!