Sponsored Content
Full Discussion: Obfuscated C
Top Forums Programming Obfuscated C Post 18472 by PxT on Thursday 28th of March 2002 04:53:10 PM
Old 03-28-2002
MySQL Obfuscated C

Well this year i decided to enter the International Obfuscated C Code Contest. This was my first attempt at writing obfuscated C (at least purposely), so I am sure that this is kids-stuff for the real obfuscation gurus. Anyway, the results are out, and I am not a finalist (I wasn't expecting to be), so I figured I would share my code with you all, just for fun. If anyone else made an entry this year, please share them!


Here are the remarks included with my entry:

This program grew out of a non-obfuscated utility that I threw
together a while ago. I use it as a reference from time to
time since different architectures produce different results (at
least, the output is different on my HP-UX box than it is on my
Intel box). It simply outputs a nicely formatted ascii character
table. It is run with no arguments and produces its report on
the standard out. I achieved obfuscation by using a couple of
levels of recursion, plus some confusingly named variables and
functions. I also included some additional code which does
absolutley nothing just to confuse things a little more.

I strived for "-Wall" cleanness. As a result I had to give up
a couple minor obfuscations, but I think it is still sufficiently
convoluted. This is my first attempt at obfuscated C -- it was
written over the course of several weeks as a diversion. By
the end it became very difficult to improve as I could no longer
understand how it worked without a serious amount of thought!

The code is neatly arranged in the form of my initials. Smilie



Code:
#  include  <stdio.h>
#          define d (
#          define I1 1<<
#          define b )
#          define Il(l) \
           return(l)
#          define lI \
I*((I1 3)-1)+(I*(I1\
1))-(I-\
(I1 4))
#define \
_l(l)  \
ll_l(l)
#define \
ll(l) l
#define \
l1 main(

long i,l,ll(I)=d(I1 5)-(I1 1)b;int _l(l)
{putchar d ll(l)b;Il(l);}int II(l,L){_l(
(l/L)+48);l-=((l/L)*L);d L/=10 b?II(l,L)
          :0;Il(l);}int l1 
          b{*d d l b?&I:&l
          b=I;if d l>(I1 8
          b b Il(I1 0);_l(
          32);_l(I1 5);II(
          l,25<<2);_l(58);
          _l(I1 5);_l(ll(l
          ));l%(I1 2)?0:_l
          ((I1 3)+(ll(I1 1)
          )b;l++;Il(l1 l));
}

 

3 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Removing obfuscated javascript from js files

ello, I am trying to remove obfuscated code in multiple files on a server, the malicious code is surronded by /*km0ae9gr6m*//*qhk6sa6g1c*/ I had success removing from some files using this command sed -i ':strt;s|/\*km0ae9gr6m\*/*/\*qhk6sa6g1c\*/||g;/\/\*km0ae9gr6m\*\//{N;b strt}'... (5 Replies)
Discussion started by: cuantica
5 Replies

2. Web Development

Random - Any help decoding obfuscated code?

I have this following file and I would quite like to get it decoded - any help / advice is appreciated. I would like to know how to decrypt it, however if someone is able to do it for me I would be equally grateful. <?php //Obfuscation provided by FOPO - Free Online PHP Obfuscator v1.2:... (6 Replies)
Discussion started by: mcclunyboy
6 Replies

3. Programming

Obfuscated "Hello World!" in Python 2.7.x...

Obfuscated Hello World! in Python 2.7.x This is seriously impressive:- Obfuscating "Hello world!" - Ben Kurtovic (2 Replies)
Discussion started by: wisecracker
2 Replies
COBFUSC(1)						    BSD General Commands Manual 						COBFUSC(1)

NAME
cobfusc -- 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 man- ual. The cobfusc utility converts the input file, written in the C language, into a human unreadable one, but compilable. The main work is con- verting 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 use- ful 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. SEE ALSO
cunloop(1), indent(1) AUTHORS
Sandro Sigala <sandro@sigala.it> BSD
July 1, 2001 BSD
All times are GMT -4. The time now is 05:24 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy