Re: Making a partial C compiler

lars@bearnip.com (Lars Duening)
3 Jun 2003 00:42:32 -0400

          From comp.compilers

Related articles
Making a partial C compiler cyberheg@l115.langkaer.dk (John Eskie) (2003-05-18)
Re: Making a partial C compiler torbenm@diku.dk (2003-05-23)
Re: Making a partial C compiler matt@peakfive.com (Matt Rosing) (2003-05-24)
Re: Making a partial C compiler blackmarlin@asean-mail.com (2003-05-24)
Re: Making a partial C compiler idbaxter@semdesigns.com (2003-05-24)
Re: Making a partial C compiler cyberheg@l115.langkaer.dk (John Eskie) (2003-05-29)
Re: Making a partial C compiler vbdis@aol.com (2003-06-03)
Re: Making a partial C compiler lars@bearnip.com (2003-06-03)
Re: Making a partial C compiler boldyrev@cgitftp.uiggm.nsc.ru (Ivan Boldyrev) (2003-06-03)
Re: Making a partial C compiler jyrixx@astro.temple.edu (2003-06-03)
Re: Making a partial C compiler torbenm@diku.dk (2003-06-05)
Re: Making a partial C compiler cyberheg@l115.langkaer.dk (John Eskie) (2003-06-08)
Re: Making a partial C compiler cyberheg@l115.langkaer.dk (John Eskie) (2003-06-08)
Re: Making a partial C compiler vbdis@aol.com (2003-06-20)
| List of all articles for this month |

From: lars@bearnip.com (Lars Duening)
Newsgroups: comp.compilers
Date: 3 Jun 2003 00:42:32 -0400
Organization: Compilers Central
References: 03-05-139 03-05-202
Keywords: C
Posted-Date: 03 Jun 2003 00:42:32 EDT

John Eskie <cyberheg@l115.langkaer.dk> wrote:


> Thanks to everyone who responded.


> However I don't think I made myself really clear on what objectives
> I have. The obfuscator I want to create should produce obfuscated
> source code that will be functionally the same as the original. I
> don't really care about source code obfuscation if it looks nice to
> read since I only distribute binary files. So I only concentrate on
> what will be seen on disassembly. (For java there has existed such
> obfuscators for many years, but they only work on bytecode and not
> sourcecode.)


If I remember correctly obfuscators for Java were needed because the
Java compilers produced very predictable bytecode from a given Java
source statement, and also stored all identifier names in the
generated class files. For C/C++ neither is a concern as its possible
to generate binary files without any symbol information, and the
advanced optimiziers do some code rearrangement on their own.


> 2. Introduction of parallel code i.e. dummy code which doesn't interfear
> with the real program but make things harder to read since you gotta figure
> out what is real and what isn't real.


This 'dead code' has a good chance of being thrown out by the optimizer.


> 3. Rearranging of code so if you got 3 blocks of statements A, B, C you can
> do:
> 4. Dynamic "linking" by making exact function calls to be resolved at
> runtime by using function pointers.


I can imagine that both measures would be quite detrimental to the
program's performance as it requires excessive branching.


Post a followup to this message

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