cobfusc(1) make a C source file unreadable but compilable

SYNOPSIS

cobfusc [-AabdemntxV ] [-c case ] [-f suffix ] [-g file ] [-i idobf ]
[-o file ] [-p prefix ] [-r file ] [-s seed ] [-u file ] [-w cols ]
[-z file ] [file ... ]

DESCRIPTION

This document contains only a brief description of cobfusc For a more complete documentation, please read the Info file or the Texinfo manual.

The cobfusc utility converts the input file, written in the C language, into a human unreadable one, but compilable. The main work is converting every identifier into a meaningless one, removing any comment and compacting all the white-spaces when they are not required.

The options are as follows:

-A
Enable a heavy obfuscation for the source file. This is equivalent to the -ademt -i numeric options. The digraphize option is not enabled by default since the Amendement 1 (1994) changes to St -ansiC-89 are supported only by few C compilers.
-a
Garble every string with octal escapes.
-b
Enable the digraphize mode.
-c no \*(Ba lower \*(Ba upper \*(Ba screw \*(Ba random
Set the identifier case obfuscation mode.
-d
Compact the macros removing backslashes and white-spaces when they are not required.
-e
Compact the white-spaces when they are not required.
-f suffix
Put the output of each processed file in a separate file with suffix appended to file name instead of standard output. This is useful when processing a package with a lot of source files.
-g file
Add first the identifiers contained in file to the obfuscation table. Useful when those identifiers are shared between two or more source files.
-i no \*(Ba numeric \*(Ba word \*(Ba random
Set the identifier obfuscation mode.
-m
Strip the comments.
-n
Garble integers with expressions.
-o file
Set the output destination to file
-p prefix
Specify the prefix to use when generating the identifiers.
-r file
Tell cobfusc that the identifiers contained in file must not be obfuscated.
-s seed
Specify the seed for generating the random numbers.
-t
Enable the trigraphize mode.
-u
Dump the symbol table to file
-V
Print version information on standard output then exit.
-w
Set the width limit of the output.
-x
Exclusive mode; obfuscate only the identifiers specified by the -g and -z parameters.
-z file
Add the identifiers pairs contained in file to the obfuscation table.

AUTHORS

Sandro Sigala <[email protected]>