Protect the VBA source code in your MDE files

        16 votes: *****     11,918 views      No comments
by Wayne Phillips, 26 June 2006    (for Access 97+)


MDE Source Code Protector v1.00: (DEMO available)


Summary of the problem with normal MDE files created by Microsoft® Access:

Normal MDE files created by Access contain extra information that we like to call "compiler junk" - this is redundant information about variable names, data types, constants, UDTs etc that are no longer needed in a fully compiled MDE file. 

However, this "compiler junk" makes it much easier to decompile/reverse-engineer the VBA code in an MDE file to a standard that is very close to the original VBA source code (including for example all variable names). 

In fact, for those that can prove ownership of their MDE files, we at offer a service for reverse-engineering them including all VBA code.  You must be able to prove lawful ownership beyond any doubt for our service - but that is not to say that another company (or utility) won't offer a non-validated conversion service in the future.

But I thought that the VBA source code in MDE files had been stripped out?

Yes, you're quite correct.  However, the source code can be re-built with very high accuracy by using the combination of the compiled code and the "compiler junk" which is left behind by Access when creating the MDE file.

So what's the solution?

Well, if you want to better protect your VBA code, then the solution is to remove the extra "compiler junk" from the MDE file completely which makes it much harder and much less desirable to decompile/reverse-engineer the source code.  By removing the "compiler junk" does not prevent decompiling/reverse-engineering the VBA code, but it does make it that much harder and the result would be source code that does not look anything like the original source code (and therefore much less understandable).

This article shows you how to make use of the utility MDE Source Code Protector by to remove this "compiler junk" safely from an MDE file.

STAGE 1:       Open utility and load the MDE file

If you haven't done so already, please install the software from here:

Once installed, open the MDE Source Code Protector from the Start menu.  The first thing you need to do is load your MDE file into the MDE Source Code Protector (you may type the full path to the .MDE file, or use the Folder icon to select it in the GUI).


Note: A copy is taken of the MDE file in order to ensure you always have a backup available in case anything goes wrong.

Next, click the Proceed to Next Stage button and the file will start to load.  This may take a few moments.


STAGE 2:       View the 'compiler junk' that is being exposed

Once loaded, the MDE Source Code Protector now gives you a summary of what redundant information is being exposed in your MDE file.  There is a simple summary at the top:

 Summary Of Objects

And more details available on a per module basis below:

View Exposed Items

Note: This screen is meant as a guide only - it gives you an idea of what is being exposed in your MDE file without showing actual values of constants etc (as this would pose a security risk for many developers).

Click the Proceed to Next Stage button to continue.


STAGE 3:       Generate a new MDE file, removing the 'compiler junk'.

Now that you've viewed the vulnerabilities posed by the "compiler junk", you can now remove it. 

Note: In order to remove the compiler junk, you will require to purchase a licence for the utility.  Click here to purchase now

Note:  Under normal circumstances you will have no need to change any of the options on this screen.

To generate the new MDE file, press the Create the protected MDE button.  After the processing has completed, you can now view the vulnerabilities exposed by your newly created MDE file (it will automatically be loaded): 

Summary Of Objects Complete

As you can see, the "compiler junk" has now been removed, and your MDE file is now much better protected against decompilation / reverse-engineering.



The MDE Source Code Protector is a relatively new product - if you find any bugs or experience any problems, please contact our support team by e-mail.  Contact Us


MDE Source Code Protector FAQs Frequently Asked Questions
MDE to MDB Conversion Service Fully convert your Access MDE files to the original MDB format (also supports ADE -> ADP conversions).  Requires lawful ownership to be proven.



*Microsoft Access is a trademark of Microsoft Corporation in the United States and other countries*

IMPORTANT: This document may not be reproduced in part or whole without prior consent from the author.


Rate this article:  Your rating: PoorYour rating: Not so goodYour rating: AverageYour rating: GoodYour rating: Excellent

Have your say - comment on this article.

What did you think of 'Protect the VBA source code in your MDE files'?

No comments yet.

Why not be the first to comment on this article?!

Have your say...

E-mail (e-mail address will be kept private)

Comments require approval before being displayed on this page (allow 24 hours).