kiln said:
Apparently they can be decoded, sans
proper function names etc as you
guessed. MDE does obfusticate, but
I'm hoping someone knows if mde
format obviates the utility of a formal
obfustication operation, or if an
obfusticator does add to the level
of difficulty.
Do you have a link to anything that does more than speculate about this? I,
truly, had not heard of it actually being done, and thought no one figured
it was worthwhile to invest the time and effort to crack the MDE.
Obfuscators work in a couple of ways: they replace meaningful labels and
variable names with random strings, and, sometimes, they rearrange the code
so anyone trying to decode it has to deal with a lot of GoTo. Additionally,
some add meaningless instructions that can't be reached to execute.
The first of these is handled by the MDE... the meaningful variable names,
labels, and comments are just no longer there. The other two items only
delay what someone is doing, not make it difficult to understand -- my guess
is that most any of us could write code to "straighten" VBA code that has
been shuffled, without much effort.
FMS, Inc. used to have an obfuscator function in their Code Tools product,
before MDEs were introduced. I don't know if Code Tools still includes ones
for people who have a need to distribute MDBs -- you could check it out at
http://www.fmsinc.com.
What are you trying to accomplish? Is your code so valuable that someone
would go to great lengths to steal it? Or are you trying to protect your
code in order to protect your data?
If the first, carefully consider that many experience Access developers can
easily re-create most applications just from observing the forms and
watching the application run. Frankly, it is the business application that
you'd want to protect, and that is, generally, obvious from seeing the
application in action.
If the second, no one really needs to get your code to get your data. If you
let someone have unlimited access to your data, it is just about as close to
certain as can be, that in time they will be able to crack any protection
scheme. The best way to protect data is to house it on your own server, in a
server database that has "robust" protection.
Larry Linson
Microsoft Access MVP