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
WRITE(1)						     Linux Programmer's Manual							  WRITE(1)

NAME
write - send a message to another user SYNOPSIS
write user [ttyname] DESCRIPTION
Write allows you to communicate with other users, by copying lines from your terminal to theirs. When you run the write command, the user you are writing to gets a message of the form: Message from yourname@yourhost on yourtty at hh:mm ... Any further lines you enter will be copied to the specified user's terminal. If the other user wants to reply, they must run write as well. When you are done, type an end-of-file or interrupt character. The other user will see the message EOF indicating that the conversation is over. You can prevent people (other than the super-user) from writing to you with the mesg(1) command. Some commands, for example nroff(1) and pr(1), may disallow writing automatically, so that your output isn't overwritten. If the user you want to write to is logged in on more than one terminal, you can specify which terminal to write to by specifying the ter- minal name as the second operand to the write command. Alternatively, you can let write select one of the terminals - it will pick the one with the shortest idle time. This is so that if the user is logged in at work and also dialed up from home, the message will go to the right place. The traditional protocol for writing to someone is that the string `-o', either at the end of a line or on a line by itself, means that it's the other person's turn to talk. The string `oo' means that the person believes the conversation to be over. SEE ALSO
mesg(1), talk(1), who(1) HISTORY
A write command appeared in Version 6 AT&T UNIX. AVAILABILITY
The write command is part of the util-linux-ng package and is available from ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/. 12 March 1995 WRITE(1)
All times are GMT -4. The time now is 02:14 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy