Merge pull request #31 from xexyl/1992-nathan

This commit is contained in:
Landon Curt Noll authored and GitHub committed 2023-03-04 18:48:55 -08:00
commit 7ce115c005
4 files changed
+82 -76

No files matched your search

+28 -28
View File
@@ -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
View File
@@ -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;
}
+2 -8
View File
@@ -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
View File
@@ -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>