Merge pull request #60 from xexyl/readmes

This commit is contained in:
Landon Curt Noll authored and GitHub committed 2023-03-14 14:42:51 -07:00
commit b5a791a7a9
13 files changed
+115 -25

No files matched your search

+11 -11
View File
@@ -6,20 +6,11 @@ Anonymous
make all
## To run:
## Try:
./anonymous
## Judges' comments:
The author was too embarrassed that he/she could write such trash, so I
promised to protect their identity. I will say that the author of this
program has a well known connection with the C programming language.
This program is a unique variation on the age old "Hello, world"
program. What reads like a read may be written like a write!
NOTE: this entry will probably not work under macOS with the Apple chips (Intel
should be fine though we have no way to test this; if anyone can confirm whether
this will work under macOS with an Intel chip we'd appreciate if you let us
@@ -28,7 +19,6 @@ specifically, on modern systems one might need to specify `-m32` (though this
actually doesn't seem to be the case) but the Apple chips which are arm64 based
will not compile this entry:
ld: unknown/unsupported architecture name for: -arch armv4t
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [anonymous] Error 1
@@ -53,6 +43,16 @@ If we add to the CFLAGS `-include unistd.h` we will run into another problem:
ssize_t read(int, void *, size_t) __DARWIN_ALIAS_C(read);
^
## Judges' comments:
The author was too embarrassed that they could write such trash, so I
promised to protect their identity. I will say that the author of this
program has a well known connection with the C programming language.
This program is a unique variation on the age old "Hello, world"
program. What reads like a read may be written like a write!
## Author's comments:
No comments were provided by the author.
+43 -1
View File
@@ -44,8 +44,50 @@ couldn't! :-)
## Author's comments:
No comments were provided by the author.
These comments, found at
[https://lainsystems.com/posts/exploring-mullender-dot-c/](https://lainsystems.com/posts/exploring-mullender-dot-c/),
were provided by Sjoerd Mullender years later. We thank the author of the
article for the quote!
I have never known a lot about the VAX assembly, so we used the C compiler to
create the VAX code. We didn't write it ourselves from scratch as we did with
the PDP code. This is the reason why the VAX code is more complex, including the
extra data after the PDP code.
Robbert and I were students at the VU (Free University in Amsterdam) at the time
(mathematics with CS as our major since there was no CS curriculum when we
started). We had an assignment to create a pair of programs for the computer
networks course. The programs were supposed to send data reliably from one
program to the other over an unreliable channel. This channel was simulated with
a pair of pipes.
We decided for fun to create an obfuscated set of programs, only for the PDP, to
do this, but circumventing the channel. (I.e. cheating, hence the needed
obfuscation.) Our programs worked and we handed them in.
Of course, the teacher had a good laugh and then rejected our submission. (We
knew him well, so we could get away with this.)
Then the IOCCC came along. I don’t remember how we heard about it, but at the
time there was a world-wide messaging network Usenet where we read a bunch of
newsgroups. I’m sure it was announced there and we saw it.
Since we had just recently created these obfuscated programs we decided we could
use the same technique for an obfuscated C program. We upped the ante a bit by
making it “portable”.
To add to the obfuscation, we used different formats for the integers in the
array, some in decimal, some in octal, some in hexadecimal, and when the value
would fit, some as an ASCII character.
The rest is history.
Since this was the first contest, we hadn't seen any old entries, nor had any of
the other contestants. Of course we knew about #define and tricks you could do
with that, but we didn't need that for this program. In fact, we made it as
“standard” as possible. At the time there was this program called “cb” for C
beautifier which would re-indent your program to make the layout look better. Our
program is idempotent under cb.
Copyright (c) 1984, Landon Curt Noll.
All Rights Reserved. Permission for personal, educational or non-profit use is
+1 -1
View File
@@ -6,7 +6,7 @@ Jack Applin [with help from Robert Heckendorn]
make all
## To run:
## Try:
./applin
+3
View File
@@ -8,6 +8,9 @@ Col. G. L. Sicherman
NOTE: This entry requires a compiler that support `-traditional-cpp`.
## Try:
./sicherman < sicherman.c
## Judges' comments:
+4
View File
@@ -10,6 +10,10 @@ USA
make all
## To run:
./applin
### Try:
sh applin.c
+7
View File
@@ -10,6 +10,13 @@ Sweden
make all
## Try:
./august
NOTE: this entry is very likely to core dump after its output.
## Judges' comments:
+8 -1
View File
@@ -13,10 +13,17 @@ UK
NOTE: this entry uses gets() so you might get a warning about this when
compiling and running this program with some systems.
## To run:
./hague
# enter some text
### Try:
./hague
[enter some text]
IOCCC
International Obfuscated C Code Contest
Jim Hague
## Judges' comments:
+4
View File
@@ -17,6 +17,10 @@ main() and the third arg was an int. He notes that he tried to keep the picture
as close to the original. The line lengths are the same but some spaces had to
be changed to non-spaces. Thank you Cody for your help!
## Try:
./marshall
# Judges' comments:
This program prints the name of the picture. The layout is somewhat
+2 -1
View File
@@ -20,6 +20,8 @@ Santa Monica, CA
cat biggar.c | ./biggar | od -c
## Judges' comments:
By changing the compile line you can make this program do anything you
want. This is a very efficient way to transfer source, though it
increases the size of Makefiles.
@@ -38,7 +40,6 @@ entry](../wall/README.md) regarding Mark's contribution but it seems to have
been lost in time. If anyone knows about its whereabouts we'd appreciate letting
us know. Thanks!
## Judges' comments:
Passes BSD and UTS lint. At least one version of lint is thrown into
an infinite loop by this entry.
+6 -5
View File
@@ -12,7 +12,6 @@ On System V systems, we had to compile with `-Dindex=strchr`.
To compile on a 16 bit machine, change 300000 to 30000.
## Judges' comments:
### Try:
@@ -25,14 +24,16 @@ Ask yourself what happens to `foo.md` if you try:
./ph 40 < README.md > foo.md
Folding at the wrong length may be equivalent to a "Spindle or Mutilate" operation. For example:
## Judges' comments:
Folding at the wrong length may be equivalent to a "Spindle or Mutilate" operation. For example:
./heckbert 40 < heckbert.c > ph.c ; make ph ; ./ph 20 < heckbert.c > bar.c ; make bar
Try not to
[Fold, Spindle or Mutilate](https://repository.library.brown.edu/studio/item/bdr:788264/PDF/)
files. :-)
files. :-)
## Author's comments:
@@ -41,7 +42,7 @@ No comments were provided by the author.
The judges used this program to fold up very long lines which the
BSD fold(1) was unable to process. This program has been added
BSD fold(1) was unable to process. This program has been added
to the contest tool chest.
+2 -2
View File
@@ -21,8 +21,8 @@ USA
### Alternate code
An alternate version of this entry, `hines.alt.c`.
With older compilers you can try the alt version:
An alternate version of this entry is in `hines.alt.c`. With older compilers you
can try the alt version:
make alt
+8 -2
View File
@@ -17,12 +17,18 @@ compiler.
./lievaart
# enter a level and start playing as described below
./lievaart2
# enter a level and start playing as described below
NOTE: if you enter invalid input the program will enter an infinite loop
displaying a string like `"You:"` repeatedly.
## Try:
To see what it would have looked like without the size restrictions:
./lievaart2
# enter a level and start playing as described below
## Judges' remarks:
We believe that you too will be amazed at just how much power Mr. Lievaart
+16 -1
View File
@@ -9,7 +9,14 @@ Panorama City, CA 91402 USA
make all
## Judges' comments:
## To run:
./wall
# enter some strings
./wall | some_command
# enter some strings
### Try:
@@ -35,6 +42,9 @@ and enter some input like:
quit # for the cat version
## Judges' comments:
What we found amazing was how the flow of control was transferred
between subroutines. Careful inspection will show that the array of
pointers to functions named 'vi' refers to functions which seem to not
@@ -44,6 +54,11 @@ done and how it is being exploited?
Some compilers complained about this file, so we changed: '=++I' to '= ++I'.
## Author's comments:
No comments were provided by the author.
Copyright (c) 1987, Landon Curt Noll & Larry Bassel.
All Rights Reserved. Permission for personal, educational or non-profit use is
granted provided this this copyright and notice are included in its entirety