Merge pull request #31 from xexyl/1992-nathan
This commit is contained in:
4 files changed
+82
-76
No files matched your search
+28
-28
@@ -9,7 +9,7 @@
|
||||
|
||||
## To build:
|
||||
|
||||
make all
|
||||
make nathan
|
||||
|
||||
### To run
|
||||
|
||||
@@ -17,29 +17,9 @@
|
||||
|
||||
## Judges' comments
|
||||
|
||||
The US International Traffic in Arms Regulations controls certain
|
||||
exportations going out of the United States. The U.S. Munitions
|
||||
List gives the specific categories of restricted exports. Because
|
||||
this entry appears to fall under this restricted catagory, the
|
||||
judges may not be able to distribute winners outside of the USA.
|
||||
|
||||
Nathan Sidwell has stated that he is willing to distribute the
|
||||
winning source. To read HIS instructions of how to obtain his
|
||||
winning program:
|
||||
|
||||
make nathan
|
||||
nathan
|
||||
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
=-=-= The text below assumes that you have the winning source =-=-=
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
|
||||
To use:
|
||||
make nathan
|
||||
|
||||
Try:
|
||||
nathan obfuscate < nathan.c > foobarf.c
|
||||
nathan - obfuscate < foobarf.c > barfoof.c
|
||||
./nathan obfuscate < nathan.c > foobarf.c
|
||||
./nathan - obfuscate < foobarf.c > barfoof.c
|
||||
diff nathan.c barfoof.c
|
||||
|
||||
WARNING:
|
||||
@@ -51,20 +31,40 @@
|
||||
NOTE:
|
||||
The 'winning' catagory is also open to question. One could say
|
||||
that it is a 'file obfuscator'. One could also say that it
|
||||
unintentionally adbused the intent of rule #7 (that programs
|
||||
unintentionally abused the intent of rule #7 (that programs
|
||||
should be freely redistributable). We suspect that the author
|
||||
may not have intended to do this, but that is the way things go
|
||||
sometimes.
|
||||
|
||||
BTW, 'abuse of the rules' entries do not violate the rules.
|
||||
Entries that violate the rules are disqualified. Abuse of the
|
||||
rules entries are ones that tend to 'streach' the limits and
|
||||
rules entries are ones that tend to 'stretch' the limits and
|
||||
take the contest into unexpected territory.
|
||||
|
||||
|
||||
### Historical notes for this entry from the judges
|
||||
|
||||
The US International Traffic in Arms Regulations controls certain
|
||||
exportations going out of the United States. The U.S. Munitions
|
||||
List gives the specific categories of restricted exports. Because
|
||||
this entry at one time appeared to fall under this restricted catagory, the
|
||||
judges originally were not able to distribute winners outside of the USA.
|
||||
|
||||
Nathan Sidwell stated that he was willing to distribute the
|
||||
winning source. To read HIS instructions of how to obtain his
|
||||
winning program one was able to run:
|
||||
|
||||
make nathan
|
||||
./nathan
|
||||
|
||||
|
||||
to learn how to get a copy of the code.
|
||||
|
||||
|
||||
### Personal note from chongo:
|
||||
|
||||
I think this situation shows just how ridiculous US crypto
|
||||
regulations really are. Certain US federal officials can get away
|
||||
I think the situation showed just how ridiculous US crypto
|
||||
regulations really were/are. Certain US federal officials can get away
|
||||
with shipping arms to certain nations in apparent violation of US
|
||||
laws, but I personally can't re-distribute a program contest winner
|
||||
to the network!
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
PORTABILITY (A little knowledge is a dangerous thing)
|
||||
|
||||
Its written in ANSI C, and doesn't even assume an ASCII character
|
||||
It's written in ANSI C, and doesn't even assume an ASCII character
|
||||
set, (it has an array of the characters to convert), so should be
|
||||
portable across many platforms. It passes gcc -ansi -pedantic -O
|
||||
-Wall with no warnings (You may get assignment in conditional
|
||||
|
||||
+52
-25
@@ -1,26 +1,53 @@
|
||||
#include <stdio.h>
|
||||
static char *text[] =
|
||||
{
|
||||
"Export of this program from the USA is governed by the US",
|
||||
"Munitions List from the ITAR (International Traffic in Arms",
|
||||
"Regulations). This list gives the specific categories of",
|
||||
"restricted exports and includes cryptographic exports. Traffic",
|
||||
"entirely external to, entirely internal to, or into the USA is",
|
||||
"not restricted.",
|
||||
"To obtain a copy of the program, email to nathan@inmos.co.uk",
|
||||
"with a subject \"IOCCC request\". If you know that your 'From'",
|
||||
"line is incorrect, add a single line",
|
||||
"\"replyto you@your.correct.address\" to the body of the message.",
|
||||
"A daemon will autoreply.",
|
||||
"WARNING: You must not re-export this out of the USA, or else",
|
||||
"the men in black might get you.",
|
||||
NULL
|
||||
};
|
||||
int main()
|
||||
{
|
||||
char **ptr;
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#define printf sqrt
|
||||
#define OFST 1
|
||||
#define strnel(sqrt)(sqrt-printf)
|
||||
|
||||
int main(argv,argc)int argv;char*argc[]
|
||||
;{char*i,*sqrt,*magic,*define;int ptr,\
|
||||
watch,
|
||||
t,cond
|
||||
;for(
|
||||
argc++
|
||||
,sqrt=
|
||||
"1""q""a""z""2""w""s""x""3""e""d""c""4"
|
||||
"r""f""v""5""t""g""b""6""y""h""n""7""u"
|
||||
|
||||
"j""m""8""i""k"",""9""o""l"".""0""p"";"
|
||||
"/""[""'""`""]""\"\\"" ""Z""X""C""V""B"
|
||||
"N""M" "<"">" "?""~"
|
||||
"="":" "L""K" "J""H"
|
||||
"G""F" "D""S" "A""!"
|
||||
"Q""@" "W""#" "E""$"
|
||||
"R""%" "T""^" "Y""&"
|
||||
"U""*" "I""(" "O"")"
|
||||
|
||||
"P""_""{""+""}""|""-",define=sqrt,cond=
|
||||
strlen(printf),i=printf+cond,t=(((ptr=\
|
||||
argv<=
|
||||
OFST||
|
||||
strcmp
|
||||
(*argc
|
||||
,i-1))
|
||||
?0:(argc
|
||||
|
||||
++,argv--)),OFST-1);(watch=fgetc(((!*i\
|
||||
&&argv>OFST?i=*argc:0),stdin)))!=EOF;*i?
|
||||
i++:0)
|
||||
(magic
|
||||
=strc\
|
||||
hr(pr\
|
||||
intf,(
|
||||
define
|
||||
|
||||
=(*i?(define=strchr(printf,*i))?define:
|
||||
printf:sqrt),watch)))?watch=t,watch=((t=
|
||||
strnel( magic))
|
||||
+(watch -strnel
|
||||
(define ))*(ptr
|
||||
*2-OFST )+cond*
|
||||
(OFST+1 ))%cond
|
||||
,ptr?t=watch:0:0,fputc(magic?watch[pri\
|
||||
ntf]:watch,stdout);return 0;} /*world*/
|
||||
|
||||
for(ptr = text; *ptr; ptr++)
|
||||
printf("%s\n", *ptr);
|
||||
return 0;
|
||||
}
|
||||
@@ -162,15 +162,9 @@ empty plugboard (they had none). I explain how to set up the simulator later.
|
||||
Yusuke Endoh asked the judges and me if the real 1992 entry source was
|
||||
available. Simon Cooper didn't have access to it because it was before his time in
|
||||
the IOCCC; but before the other judges could answer Ilya Kurdyukov sent a link to
|
||||
the original 1992 code. However because I do not know the current status of the
|
||||
regulation (though it seems unlikely that it still applies) I am only citing an
|
||||
old version of the IOCCC website:
|
||||
the original 1992 code. As of March 2023 the original before unseen code was
|
||||
published but I leave this in for historical purposes.
|
||||
|
||||
nathan - obfuscation by (trivial) encryption (source not exported)
|
||||
|
||||
Brian Westley decided to just ``screw the (US) government'' and make the real nathan.c source available. We also note that Nathan Sidwell who lives outside the US made his own source available as well.
|
||||
|
||||
Anyone who wants to find it I am sure can but I leave that to them.
|
||||
|
||||
### <a name="usage" href="#toc">Usage</a>
|
||||
|
||||
|
||||
-15
@@ -2810,21 +2810,6 @@ may be found in <A HREF="1992/albert/albert.fix.c">albert.fix.c</A>.
|
||||
<UL TYPE=square>
|
||||
<LI><A HREF="1992/nathan/Makefile">Makefile</A>
|
||||
<LI><A HREF="1992/nathan/nathan.c">nathan.c</A>
|
||||
<LI><BLOCKQUOTE>
|
||||
<A HREF="http://www.dgii.com/people/merlyn/">Brian Westley</A> decided
|
||||
to just make the real source available.
|
||||
<I>The source at that site no longer exists.</I>
|
||||
Around the same time, were were notified by
|
||||
<A HREF="http://www.pact.srf.ac.uk/~nathan/">Nathan Sidwell</A>
|
||||
(who lives outside the US) that his
|
||||
source available on the Web as well.
|
||||
<I>The source at that site also no longer exists.</I>
|
||||
<P>
|
||||
<B>Update:</B> We were told that Google has a
|
||||
<A HREF="http://groups.google.com/group/comp.lang.c/msg/04bd8e4372d47936">comp.lang.c</A>
|
||||
archive with a copy of the source ported by
|
||||
<A HREF="http://www.pact.srf.ac.uk/~nathan/">Nathan Sidwell</A>.
|
||||
</BLOCKQUOTE>
|
||||
</UL>
|
||||
<A NAME="1992_vern"></A>
|
||||
<P><B>vern</B> - plays chess</P>
|
||||
|
||||
Reference in new issue
Block a user