Re: C/C++ obfuscator

Paul Pluzhnikov <>
3 Feb 2005 22:39:27 -0500

          From comp.compilers

Related articles
C/C++ obfuscator (Abbas) (2005-01-22)
Re: C/C++ obfuscator (Louis Krupp) (2005-01-24)
Re: C/C++ obfuscator (Walter Banks) (2005-01-24)
Re: C/C++ obfuscator (Paul Pluzhnikov) (2005-01-25)
Re: C/C++ obfuscator (George Neuner) (2005-01-25)
Re: C/C++ obfuscator (Louis Krupp) (2005-01-30)
Re: C/C++ obfuscator (Ira Baxter) (2005-01-30)
Re: C/C++ obfuscator (Paul Pluzhnikov) (2005-02-03)
Re: C/C++ obfuscator (2005-02-03)
Re: C/C++ obfuscator (Paul Pluzhnikov) (2005-02-06)
Re: C/C++ obfuscator (Louis Krupp) (2005-02-06)
| List of all articles for this month |

From: Paul Pluzhnikov <>
Newsgroups: comp.compilers
Date: 3 Feb 2005 22:39:27 -0500
Organization: Compilers Central
References: 05-01-074 05-01-087 05-01-093 05-01-103
Keywords: code, tools
Posted-Date: 03 Feb 2005 22:39:27 EST

Louis Krupp <> writes:

> > That has nothing whatsoever to do with OPs question.
> That has *everything* to do with the original post,

My mistake. I only read your quote from the OP, not his original

> Shipping obfuscated source, on the other hand, is an interesting idea.
> Could the obfuscated code be optimized as well as the original?

If the transformations performed by the obfuscator are correct and
do not change control flow too drastically, one would think that the
obfuscated code will be just as optimizable as the original.

> Would it be easier to reverse engineer?

It might be slightly easier, but not significantly so: it is farly
easy to convert e.g. SPARC disassembly back into "gibberish" C.

> lots of people can read a C program.

I expect that anyone can be tought "reading comprehension" of SPARC
assembly in a day or two.

> The source to be shipped would have to be tested on any compiler the
> customer might use ...

Not necessarily: if the original code desn't use
arcane/not-well-supported language features, then one can test 1
or 2 compilers, and expect all other combinations to work.

If some compiler/OS combinations turn out not to work, future
customers may be warned against using those.

The above approach is pretty much what everyone who ships source
does; shipping obfuscated source is not that different.

In order to understand recursion you must first understand recursion.

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.