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:
|
## To build:
|
||||||
|
|
||||||
make all
|
make nathan
|
||||||
|
|
||||||
### To run
|
### To run
|
||||||
|
|
||||||
@@ -17,29 +17,9 @@
|
|||||||
|
|
||||||
## Judges' comments
|
## 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:
|
Try:
|
||||||
nathan obfuscate < nathan.c > foobarf.c
|
./nathan obfuscate < nathan.c > foobarf.c
|
||||||
nathan - obfuscate < foobarf.c > barfoof.c
|
./nathan - obfuscate < foobarf.c > barfoof.c
|
||||||
diff nathan.c barfoof.c
|
diff nathan.c barfoof.c
|
||||||
|
|
||||||
WARNING:
|
WARNING:
|
||||||
@@ -51,20 +31,40 @@
|
|||||||
NOTE:
|
NOTE:
|
||||||
The 'winning' catagory is also open to question. One could say
|
The 'winning' catagory is also open to question. One could say
|
||||||
that it is a 'file obfuscator'. One could also say that it
|
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
|
should be freely redistributable). We suspect that the author
|
||||||
may not have intended to do this, but that is the way things go
|
may not have intended to do this, but that is the way things go
|
||||||
sometimes.
|
sometimes.
|
||||||
|
|
||||||
BTW, 'abuse of the rules' entries do not violate the rules.
|
BTW, 'abuse of the rules' entries do not violate the rules.
|
||||||
Entries that violate the rules are disqualified. Abuse of the
|
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.
|
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:
|
### Personal note from chongo:
|
||||||
|
|
||||||
I think this situation shows just how ridiculous US crypto
|
I think the situation showed just how ridiculous US crypto
|
||||||
regulations really are. Certain US federal officials can get away
|
regulations really were/are. Certain US federal officials can get away
|
||||||
with shipping arms to certain nations in apparent violation of US
|
with shipping arms to certain nations in apparent violation of US
|
||||||
laws, but I personally can't re-distribute a program contest winner
|
laws, but I personally can't re-distribute a program contest winner
|
||||||
to the network!
|
to the network!
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
|
|
||||||
PORTABILITY (A little knowledge is a dangerous thing)
|
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
|
set, (it has an array of the characters to convert), so should be
|
||||||
portable across many platforms. It passes gcc -ansi -pedantic -O
|
portable across many platforms. It passes gcc -ansi -pedantic -O
|
||||||
-Wall with no warnings (You may get assignment in conditional
|
-Wall with no warnings (You may get assignment in conditional
|
||||||
|
|||||||
+52
-25
@@ -1,26 +1,53 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
static char *text[] =
|
#include <string.h>
|
||||||
{
|
#define printf sqrt
|
||||||
"Export of this program from the USA is governed by the US",
|
#define OFST 1
|
||||||
"Munitions List from the ITAR (International Traffic in Arms",
|
#define strnel(sqrt)(sqrt-printf)
|
||||||
"Regulations). This list gives the specific categories of",
|
|
||||||
"restricted exports and includes cryptographic exports. Traffic",
|
int main(argv,argc)int argv;char*argc[]
|
||||||
"entirely external to, entirely internal to, or into the USA is",
|
;{char*i,*sqrt,*magic,*define;int ptr,\
|
||||||
"not restricted.",
|
watch,
|
||||||
"To obtain a copy of the program, email to nathan@inmos.co.uk",
|
t,cond
|
||||||
"with a subject \"IOCCC request\". If you know that your 'From'",
|
;for(
|
||||||
"line is incorrect, add a single line",
|
argc++
|
||||||
"\"replyto you@your.correct.address\" to the body of the message.",
|
,sqrt=
|
||||||
"A daemon will autoreply.",
|
"1""q""a""z""2""w""s""x""3""e""d""c""4"
|
||||||
"WARNING: You must not re-export this out of the USA, or else",
|
"r""f""v""5""t""g""b""6""y""h""n""7""u"
|
||||||
"the men in black might get you.",
|
|
||||||
NULL
|
"j""m""8""i""k"",""9""o""l"".""0""p"";"
|
||||||
};
|
"/""[""'""`""]""\"\\"" ""Z""X""C""V""B"
|
||||||
int main()
|
"N""M" "<"">" "?""~"
|
||||||
{
|
"="":" "L""K" "J""H"
|
||||||
char **ptr;
|
"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
|
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
|
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 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
|
the original 1992 code. As of March 2023 the original before unseen code was
|
||||||
regulation (though it seems unlikely that it still applies) I am only citing an
|
published but I leave this in for historical purposes.
|
||||||
old version of the IOCCC website:
|
|
||||||
|
|
||||||
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>
|
### <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>
|
<UL TYPE=square>
|
||||||
<LI><A HREF="1992/nathan/Makefile">Makefile</A>
|
<LI><A HREF="1992/nathan/Makefile">Makefile</A>
|
||||||
<LI><A HREF="1992/nathan/nathan.c">nathan.c</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>
|
</UL>
|
||||||
<A NAME="1992_vern"></A>
|
<A NAME="1992_vern"></A>
|
||||||
<P><B>vern</B> - plays chess</P>
|
<P><B>vern</B> - plays chess</P>
|
||||||
|
|||||||
Reference in new issue
Block a user