From: | glen herrmannsfeldt <gah@ugcs.caltech.edu> |
Newsgroups: | comp.lang.c++,comp.compilers |
Date: | 15 May 2005 00:28:16 -0400 |
Organization: | Compilers Central |
References: | 05-05-092 05-05-094 |
Keywords: | code |
Posted-Date: | 15 May 2005 00:28:16 EDT |
Rapscallion wrote:
>>I have object/machine code in static library (written and compiled
>>using C++) that I wish to make difficult to reverse-engineer. I am
>>told by others that some could reverse-engineer this object/machine
>>code to generate some or all of the source, and while it may not be a
>>trivial task, it would not be impossible.
Most people seem to consider C and C++ code difficult to reverse
engineer. Recovering source is a lot of work, but generating assembly
code is much less work. For reasonably large programs, it isn't
usually considered worthwhile. If your code contains million dollar
ideas, though, it might be.
> Haha, demonstrate it! I give you the cake and you reproduce the eggs,
> ok? But seriously, no offense intended, 95% of all C++ code is not
> worth to be stolen!
> [Someone else pointed out that Java bytecode is a lot higher level and
> a lot easier to decompile than machine language, whether from C++ or
> any other language. I'd think that C++ would be particularly hard to
> decompile because templates and overloading generate really bloated,
> messy object code. -John]
It doesn't seem that it is that much higher level, but it does seem to
be much easier to decompile. As I understand it, part of the reason
is that there are more restrictions on executing Java code related to
exceptions, so there aren't as many things that optimizers can do.
One of the better ways to obscure object code is with a good optimizer.
-- glen
Return to the
comp.compilers page.
Search the
comp.compilers archives again.