cobfusc
—
make a C source file unreadable but compilable
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 ...] |
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
ANSI X3.159-1989 (“ANSI C89”)
are supported only by few C compilers.
-a
- Garble every string with octal escapes.
-b
- Enable the digraphize mode.
-c
no | lower | upper | screw | 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 | numeric | word | 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.
Sandro Sigala <sandro@sigala.it>