Merge pull request #2541 from xexyl/spoiler

Reword the recent deobfuscation changes
This commit is contained in:
Landon Curt Noll authored and GitHub committed 2024-07-04 13:44:45 -07:00
commit a78c2df251
193 files changed
+531 -524

No files matched your search

+1 -1
View File
@@ -41,7 +41,7 @@ better debugger or trace could easily be added.
## Judges' remarks:
The author's comments contains detailed deobfuscation information. If you
The author's comments is a detailed program explanation and spoiler. If you
want a real challenge, don't read any further and try to understand the program
via the source.
+1 -1
View File
@@ -420,7 +420,7 @@ better debugger or trace could easily be added.</p>
<h3 id="alternate-use">Alternate use:</h3>
<pre><code> ./paul.alt</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>The author’s comments contains detailed deobfuscation information. If you
<p>The author’s comments is a detailed program explanation and spoiler. If you
want a real challenge, don’t read any further and try to understand the program
via the source.</p>
<h3 id="historical-note">Historical note:</h3>
+1 -1
View File
@@ -43,7 +43,7 @@ which we have done for the wider audience.
If my preprocessor could hack it, I could write this as one single line rather
than 4, but when I do that I get a complaint "defines nested too deeply".
### Debfuscation:
### Obfuscation spoiler:
This is another rot13 job (believe it or not) - the `#define`s are a
novel way of adding tokens: `#define b12(x) 12 x` means that at
+1 -1
View File
@@ -418,7 +418,7 @@ which we have done for the wider audience.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>If my preprocessor could hack it, I could write this as one single line rather
than 4, but when I do that I get a complaint “defines nested too deeply”.</p>
<h3 id="debfuscation">Debfuscation:</h3>
<h3 id="obfuscation-spoiler">Obfuscation spoiler:</h3>
<p>This is another rot13 job (believe it or not) - the <code>#define</code>s are a
novel way of adding tokens: <code>#define b12(x) 12 x</code> means that at
some point in the source a <code>12</code> is followed by the compressed nested
+1 -1
View File
@@ -55,7 +55,7 @@ By use of pointers to functions returning a struct of pointers
to functions!
### Deobfuscation:
### Spoiler:
This program prints out the string:
+1 -1
View File
@@ -425,7 +425,7 @@ well.</p>
it is done?</p>
<p>By use of pointers to functions returning a struct of pointers
to functions!</p>
<h3 id="deobfuscation">Deobfuscation:</h3>
<h3 id="spoiler">Spoiler:</h3>
<p>This program prints out the string:</p>
<blockquote>
<p>the quick brown fox jumped over the lazy dog</p>
+1 -1
View File
@@ -86,7 +86,7 @@ In other words, even if we took steps to present the algorithm clearly, (we
haven't) the relation of the computation performed to the specification of what
the program was supposed to do would still be hard to understand.
### Quasi-deobfuscation on internals:
### Quasi-spoiler on internals:
The program plays [Conway's Game of
Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) in the root window's
+1 -1
View File
@@ -458,7 +458,7 @@ In other words, even if we took steps to present the algorithm clearly, (we
haven’t) the relation of the computation performed to the specification of what
the program was supposed to do would still be hard to understand.</p></li>
</ol>
<h3 id="quasi-deobfuscation-on-internals">Quasi-deobfuscation on internals:</h3>
<h3 id="quasi-spoiler-on-internals">Quasi-spoiler on internals:</h3>
<p>The program plays <a href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life">Conway’s Game of
Life</a> in the root window’s
background pixmap. It starts by setting the background to random
+1 -1
View File
@@ -142,7 +142,7 @@ eliminated. As AG also refrains from abusing the preprocessor, it
doesn't really have much to offer in terms of "surface obfuscation".
Instead, it tries to achieve both its speed and its obscurity through a
careful choice of algorithms. Some of the finer points of those
algorithms are outlined in the deobfuscation information below.
algorithms are outlined in the spoiler below.
### How it works:
+1 -1
View File
@@ -487,7 +487,7 @@ eliminated. As AG also refrains from abusing the preprocessor, it
doesn’t really have much to offer in terms of “surface obfuscation”.
Instead, it tries to achieve both its speed and its obscurity through a
careful choice of algorithms. Some of the finer points of those
algorithms are outlined in the deobfuscation information below.</p>
algorithms are outlined in the spoiler below.</p>
<h3 id="how-it-works">How it works:</h3>
<p>Here follows a description of some of the data structures and
algorithms used by AG. It is by no means complete, but it may help
+1 -1
View File
@@ -125,7 +125,7 @@ compilers) complain that there is no control path leading to a return from
`main()`. At 125 characters, it still fits on a single line (for those of us
who don't mind ruining our eyes with 132 column screens).
### Deobfuscation:
### Obfuscation:
The first statement points the base of `l` (the argument vector) to
be the first argument by incrementing it. It then assigns `O` to
+1 -1
View File
@@ -481,7 +481,7 @@ return causes the line just written to be overwritten. <code>lint</code> (and mo
compilers) complain that there is no control path leading to a return from
<code>main()</code>. At 125 characters, it still fits on a single line (for those of us
who don’t mind ruining our eyes with 132 column screens).</p>
<h3 id="deobfuscation">Deobfuscation:</h3>
<h3 id="obfuscation">Obfuscation:</h3>
<p>The first statement points the base of <code>l</code> (the argument vector) to
be the first argument by incrementing it. It then assigns <code>O</code> to
point to the character before the first character of the second
+1 -1
View File
@@ -68,7 +68,7 @@ numbers to get a pleasing result, or use it for your high school algebra
class.
### DEOBFUSCATION:
### SPOILER:
As should be obvious from 20 feet away, the program is a cubic plotter.
It plots against certain artists, splattering their cubes with graphs
+1 -1
View File
@@ -429,7 +429,7 @@ newsletter and a PDF file of just the pages cited.</p>
<p>Run it with any 4 numeric arguments, e.g. <code>./horton 3 2 1 0</code>. Play with the
numbers to get a pleasing result, or use it for your high school algebra
class.</p>
<h3 id="deobfuscation">DEOBFUSCATION:</h3>
<h3 id="spoiler">SPOILER:</h3>
<p>As should be obvious from 20 feet away, the program is a cubic plotter.
It plots against certain artists, splattering their cubes with graphs
of their cubic equations. Those dastardly arguments are mere coefficients,
+1 -1
View File
@@ -44,7 +44,7 @@ parameter or an invalid parameter is given, then 5 is assumed. The
maximum parameter is determined only by the amount of CPU time, virtual
memory and display (or file) space available.
### DEOBFUSCATION:
### OBFUSCATION:
OK, so you have probably seen magic square printers before. But what
about one that deals with even sizes as well as odd ones, or one that
+1 -1
View File
@@ -424,7 +424,7 @@ other functions (apart from <code>main()</code>).</p>
parameter or an invalid parameter is given, then 5 is assumed. The
maximum parameter is determined only by the amount of CPU time, virtual
memory and display (or file) space available.</p>
<h3 id="deobfuscation">DEOBFUSCATION:</h3>
<h3 id="obfuscation">OBFUSCATION:</h3>
<p>OK, so you have probably seen magic square printers before. But what
about one that deals with even sizes as well as odd ones, or one that
prints out a different one each time (or attempts to, at any rate)?</p>
-2
View File
@@ -85,8 +85,6 @@ compile it and compare how it works to the original code.
## Author's remarks:
### DEOBFUSCATION:
This is a program which takes any text file as input and 'flips'
the input file along a diagonal running from the top left corner
down to the bottom right. In other words, the first row in the
-1
View File
@@ -439,7 +439,6 @@ find out why?</p>
<p>You might also wish to redirect the output to another file,
compile it and compare how it works to the original code.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="deobfuscation">DEOBFUSCATION:</h3>
<p>This is a program which takes any text file as input and ‘flips’
the input file along a diagonal running from the top left corner
down to the bottom right. In other words, the first row in the
+2 -2
View File
@@ -5,7 +5,7 @@
```
The author provided a deobfuscated version as alternate code. See [Alternate
The author provided a spoiler version as alternate code. See [Alternate
code](#alternate-code) below.
@@ -39,7 +39,7 @@ Mode may be a value from 0 to 12.
## Alternate code:
The author provided us a deobfuscated version that might be of interest to some.
The author provided us a spoiler version that might be of interest to some.
### Alternate build:
+2 -2
View File
@@ -403,7 +403,7 @@ Location: <a href="../../location.html#FI">FI</a> - <em>Republic of Finland </em
<!-- BEFORE: 1st line of markdown file: 1994/tvr/README.md -->
<h2 id="to-build">To build:</h2>
<pre><code> make all</code></pre>
<p>The author provided a deobfuscated version as alternate code. See <a href="#alternate-code">Alternate
<p>The author provided a spoiler version as alternate code. See <a href="#alternate-code">Alternate
code</a> below.</p>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
<p>The current status of this entry is:</p>
@@ -416,7 +416,7 @@ code</a> below.</p>
<pre><code> ./try.color.sh # for colour displays
./try.bw.sh # for Black &amp; White displays</code></pre>
<h2 id="alternate-code">Alternate code:</h2>
<p>The author provided us a deobfuscated version that might be of interest to some.</p>
<p>The author provided us a spoiler version that might be of interest to some.</p>
<h3 id="alternate-build">Alternate build:</h3>
<pre><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
+2 -8
View File
@@ -111,13 +111,7 @@ To see the game from start to complete, try:
Not all compiler errors are bad.
For deobfuscation information see the end of the notes from the author below.
To use:
``` <!---sh-->
./try.sh
```
For spoilers see the end of the notes from the author below.
## Author's remarks:
@@ -174,7 +168,7 @@ The goal of the game is to escape the dungeon.
Here is a walk-through for the game, including a few dead-ends:
### DEOBFUSCATION
### SPOILER (HOW TO WIN):
``` <!---sh-->
cc -Describe -Door westley.c
+2 -4
View File
@@ -463,9 +463,7 @@ arguments:</p>
<pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Not all compiler errors are bad.</p>
<p>For deobfuscation information see the end of the notes from the author below.</p>
<p>To use:</p>
<pre><code> ./try.sh</code></pre>
<p>For spoilers see the end of the notes from the author below.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>This program, in accordance with the rules, compiles into a legal
C program without human intervention. However, it simply compiles
@@ -501,7 +499,7 @@ the opening message each time, as if you are playing an adventure game
with “verbose” turned on).</p>
<p>The goal of the game is to escape the dungeon.</p>
<p>Here is a walk-through for the game, including a few dead-ends:</p>
<h3 id="deobfuscation">DEOBFUSCATION</h3>
<h3 id="spoiler-how-to-win">SPOILER (HOW TO WIN):</h3>
<pre><code> cc -Describe -Door westley.c
cc -Describe -Drain westley.c
cc -Describe -Dwarf westley.c
+4 -4
View File
@@ -34,12 +34,12 @@
"entry_text" : "original source code"
},
{
"file_path" : "deobfuscation.html",
"file_path" : "secret.html",
"inventory_order" : 100,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "deobfuscation information web page"
"entry_text" : "web page with the secret switch"
},
{
"file_path" : "try.sh",
@@ -90,12 +90,12 @@
"entry_text" : "markdown source for this web page"
},
{
"file_path" : "deobfuscation.md",
"file_path" : "secret.md",
"inventory_order" : 4000000000,
"OK_to_edit" : true,
"display_as" : "markdown",
"display_via_github" : true,
"entry_text" : "markdown source for deobfuscation.html"
"entry_text" : "markdown source for secret.html"
},
{
"file_path" : "index.html",
-4
View File
@@ -214,10 +214,6 @@ enjoy randomly changing patterns (the delay is 3 seconds),
but there is a secret switch to suppress looping: useful
if you want to pipe the output to a printer.
Here is a but of deobfuscation:
> The colon **is** the secret switch - the space before it is not a mistake.
If `Variable` is used, the actual value of `cycle` doesn't matter,
as far as it is > 1. To figure out what difference
`cycle` makes when `Variable` is not used, try
+2 -6
View File
@@ -524,10 +524,6 @@ the opening for step 1 is not a single line but a cross:</p>
enjoy randomly changing patterns (the delay is 3 seconds),
but there is a secret switch to suppress looping: useful
if you want to pipe the output to a printer.</p>
<p>Here is a but of deobfuscation:</p>
<blockquote>
<p>The colon <strong>is</strong> the secret switch - the space before it is not a mistake.</p>
</blockquote>
<p>If <code>Variable</code> is used, the actual value of <code>cycle</code> doesn’t matter,
as far as it is &gt; 1. To figure out what difference
<code>cycle</code> makes when <code>Variable</code> is not used, try</p>
@@ -582,17 +578,17 @@ even want to explain what it does. You’ve been warned!</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/leo.c">leo.c</a> - entry source code</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/leo.orig.c">leo.orig.c</a> - original source code</li>
<li><a href="deobfuscation.html">deobfuscation.html</a> - deobfuscation information web page</li>
<li><a href="secret.html">secret.html</a> - web page with the secret switch</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/try.sh">try.sh</a> - script to try entry</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="1995_leo.tar.bz2">1995_leo.tar.bz2</a> - download entry tarball</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/deobfuscation.md">deobfuscation.md</a> - markdown source for deobfuscation.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/.entry.json">.entry.json</a> - entry summary and manifest in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/.path">.path</a> - directory path from top level directory</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/leo/secret.md">secret.md</a> - markdown source for secret.html</li>
<li><a href="index.html">index.html</a> - this web page</li>
</ul>
<hr style="width:10%;text-align:left;margin-left:0">
@@ -12,8 +12,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>The International Obfuscated C Code Contest</title>
<link rel="icon" type="image/x-icon" href="../../favicon.ico">
<meta name="description" content="deobfuscation.md for 1995/leo">
<meta name="keywords" content="IOCCC, 1995/leo, deobfuscation.md">
<meta name="description" content="secret.md for 1995/leo">
<meta name="keywords" content="IOCCC, 1995/leo, secret.md">
</head>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
@@ -26,13 +26,13 @@
<!-- -->
<!-- This web page was formed via the tool: bin/gen-other-html.sh -->
<!-- The content of main section of this web page came from: 1995/leo/deobfuscation.md -->
<!-- The content of main section of this web page came from: 1995/leo/secret.md -->
<!-- -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! Do not modify this web page, instead modify the file: 1995/leo/deobfuscation.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 1995/leo/deobfuscation.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 1995/leo/deobfuscation.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 1995/leo/secret.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 1995/leo/secret.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 1995/leo/secret.md !!! -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- Markdown content was converted into HTML via the tool: bin/md2html.sh -->
@@ -363,7 +363,7 @@
height=110>
</a>
<h1>The International Obfuscated C Code Contest</h1>
<h2>deobfuscation.html for 1995/leo</h2>
<h2>secret.html for 1995/leo</h2>
</div>
<!-- END: this line ends content from: inc/header.default.html -->
@@ -371,7 +371,7 @@
<div class="navbar">
<a class="Left" href="index.html">&uarr; jump to index.html &uarr;</a>
<a class="Right" href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1995%2Fleo%2Fdeobfuscation.html">&#x2713;</a>
<a class="Right" href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1995%2Fleo%2Fsecret.html">&#x2713;</a>
</div>
<!-- END: this line ends content from: inc/navbar.up2index.html -->
@@ -382,7 +382,7 @@
<!-- END: this line ends content from: inc/before-content.default.html -->
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: 1995/leo/deobfuscation.md -->
<!-- BEFORE: 1st line of markdown file: 1995/leo/secret.md -->
<p>(The colon <em>is</em> the secret switch - the space before it is not a mistake)</p>
<hr style="width:10%;text-align:left;margin-left:0">
<p>Jump to: <a href="#">top</a></p>
@@ -399,7 +399,7 @@
https://creativecommons.org/licenses/by-sa/4.0/
-->
<!-- AFTER: last line of markdown file: 1995/leo/deobfuscation.md -->
<!-- AFTER: last line of markdown file: 1995/leo/secret.md -->
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content from: inc/after-content.default.html -->
@@ -459,7 +459,7 @@
<div id="coda"><h3>Coda</h3>
<p>
<a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1995%2Fleo%2Fdeobfuscation.html" rel="nofollow">Nu HTML check this web page</a><br>
<a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F1995%2Fleo%2Fsecret.html" rel="nofollow">Nu HTML check this web page</a><br>
<a href="#top">Jump to top</a> <a href="#content">Jump to Content</a>
</p>
</div>
File renamed without changes.
+3 -2
View File
@@ -38,7 +38,8 @@ For more detailed information see [1995/vanschnitz in bugs.html](../../bugs.html
The authors provided a deobfuscated version of the program. Originally uuencoded we
have decoded it for the wider audience in [vanschnitz.alt.c](%%REPO_URL%%/1995/vanschnitz/vanschnitz.alt.c).
They encourage you to first try and figure out the program without reading the deobfuscated version,
They encourage you to first try and figure out the program without reading the
deobfuscated version.
### Alternate build:
@@ -120,7 +121,7 @@ solution wherein the disks end up on peg 2; for an even
number of disks, they will end on peg 3. This should
provide some hint as to what sort of algorithm is used.
We have included a [deobfuscated](%%REPO_URL%%/1995/vanschnitz/vanschnitz.alt.c) version of the program, with
We have included a [deobfuscated version](%%REPO_URL%%/1995/vanschnitz/vanschnitz.alt.c) of the program, with
meaningful symbol names and comments, but we encourage you
to try to decipher the program without it...
+3 -2
View File
@@ -421,7 +421,8 @@ in 2023. See <a href="#alternate-code">Alternate code</a> below.</p>
<h2 id="alternate-code">Alternate code:</h2>
<p>The authors provided a deobfuscated version of the program. Originally uuencoded we
have decoded it for the wider audience in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/vanschnitz/vanschnitz.alt.c">vanschnitz.alt.c</a>.</p>
<p>They encourage you to first try and figure out the program without reading the deobfuscated version,</p>
<p>They encourage you to first try and figure out the program without reading the
deobfuscated version.</p>
<h3 id="alternate-build">Alternate build:</h3>
<pre><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
@@ -475,7 +476,7 @@ the resulting program (on a Unix system) is to do the command</p>
solution wherein the disks end up on peg 2; for an even
number of disks, they will end on peg 3. This should
provide some hint as to what sort of algorithm is used.</p>
<p>We have included a <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/vanschnitz/vanschnitz.alt.c">deobfuscated</a> version of the program, with
<p>We have included a <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/vanschnitz/vanschnitz.alt.c">deobfuscated version</a> of the program, with
meaningful symbol names and comments, but we encourage you
to try to decipher the program without it…</p>
<!--
+2 -2
View File
@@ -32,12 +32,12 @@ For more detailed information see [1996/huffman in bugs.html](../../bugs.html#19
## Judges' remarks:
If you are still confused and want to run the deobfuscation command, check out
If you are still confused and want to read a spoiler, check out
the source and it will be clear as mud!
And for a misleading hint, consider who won! :-)
And if you really can't see what is going on, try this deobfuscation command:
And if you really can't see what is going on, here is an extra spoiler:
``` <!---sh-->
./huffman < huffman.c 2>/dev/null
+2 -2
View File
@@ -412,10 +412,10 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<h2 id="try">Try:</h2>
<pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>If you are still confused and want to run the deobfuscation command, check out
<p>If you are still confused and want to read a spoiler, check out
the source and it will be clear as mud!</p>
<p>And for a misleading hint, consider who won! :-)</p>
<p>And if you really can’t see what is going on, try this deobfuscation command:</p>
<p>And if you really can’t see what is going on, here is an extra spoiler:</p>
<pre><code> ./huffman &lt; huffman.c 2&gt;/dev/null</code></pre>
<p>This entry was very well received at the IOCCC BOF.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
+8 -6
View File
@@ -111,20 +111,22 @@ I decided it would be better this way...
These restrictions have been removed for your convenience.
The following lines describe how this program works; if you don't
want to know it at this time, please skip them.
want to know it at this time, please skip them. If this entry would
by some mistake win the contest, please do not rot13 this - I hate
rot13 spoilers since it is somewhat complicated on a Mac to
reverse them. Anyone out there should have enough discipline and
rot13 shouldn't be required, really. After all, we are not children
anymore :-)
You should have enough discipline to make an effort to understand
the code without reading the deobfuscation information below.
After all, we are not children anymore :-)
## Deobfuscation information
## Obfuscation information:
<hr style="width:10%;text-align:left;margin-left:0">
This paragraph is not part of the author's remarks, but is a helpful
gift from the judges; if you read too fast to stop yourself, this should
give you enough time to stop, which you really need to do RIGHT NOW if
you don't want to read the deobfuscation information: we mean it.
you don't want to read the obfuscation information: we mean it.
<hr style="width:10%;text-align:left;margin-left:0">
+8 -6
View File
@@ -481,16 +481,18 @@ My first private version would only run when compiled on a Friday.
I decided it would be better this way…
These restrictions have been removed for your convenience.</p>
<p>The following lines describe how this program works; if you don’t
want to know it at this time, please skip them.</p>
<p>You should have enough discipline to make an effort to understand
the code without reading the deobfuscation information below.
After all, we are not children anymore :-)</p>
<h2 id="deobfuscation-information">Deobfuscation information</h2>
want to know it at this time, please skip them. If this entry would
by some mistake win the contest, please do not rot13 this - I hate
rot13 spoilers since it is somewhat complicated on a Mac to
reverse them. Anyone out there should have enough discipline and
rot13 shouldn’t be required, really. After all, we are not children
anymore :-)</p>
<h2 id="obfuscation-information">Obfuscation information:</h2>
<hr style="width:10%;text-align:left;margin-left:0">
<p>This paragraph is not part of the author’s remarks, but is a helpful
gift from the judges; if you read too fast to stop yourself, this should
give you enough time to stop, which you really need to do RIGHT NOW if
you don’t want to read the deobfuscation information: we mean it.</p>
you don’t want to read the obfuscation information: we mean it.</p>
<hr style="width:10%;text-align:left;margin-left:0">
<p>The source file needs to be present because the words are read from
it. The wordlist is encoded within the source using a 24 entry
+1 -1
View File
@@ -112,7 +112,7 @@ is the same as
```
- The file [dorssel.html](dorssel.html) contains all the information needed to
understand this program. For deobfuscation information, try:
understand this program. For spoiler information, try:
``` <!---sh-->
./dorssel < dorssel.md
+1 -1
View File
@@ -468,7 +468,7 @@ text that can be reversibly Morsified, i.e.</li>
<pre><code> ./dorssel &lt; dorssel.c | ./dorssel</code></pre>
<ul>
<li>The file <a href="dorssel.html">dorssel.html</a> contains all the information needed to
understand this program. For deobfuscation information, try:</li>
understand this program. For spoiler information, try:</li>
</ul>
<pre><code> ./dorssel &lt; dorssel.md</code></pre>
<!--
+1 -1
View File
@@ -116,7 +116,7 @@ looping. To see the resulting program run, redirect the output from
and then compile it.
### Deobfuscation And Hints:
### Obfuscation hints:
The big key to this program is figuring out what the names of the
functions ought to be; a bit of research may allow you to guess at
+1 -1
View File
@@ -470,7 +470,7 @@ looping. To see the resulting program run, redirect the output from
<code>schnitzi</code> into another file, like this</p>
<pre><code> ./schnitzi 4 &gt; sort.c</code></pre>
<p>and then compile it.</p>
<h3 id="deobfuscation-and-hints">Deobfuscation And Hints:</h3>
<h3 id="obfuscation-hints">Obfuscation hints:</h3>
<p>The big key to this program is figuring out what the names of the
functions ought to be; a bit of research may allow you to guess at
a few crucial ones.</p>
+1 -1
View File
@@ -99,7 +99,7 @@ Count the number of non-whitespace characters in the source
file to find out what dark force drove me to write this ;-).
### Deobfuscation
### Obfuscation
First of all, if you run a C beautifier on the program (thereby of course losing
the nice code shape I worked so hard on ;-) ) the code will become a bit more
+1 -1
View File
@@ -445,7 +445,7 @@ valid exit value to indicate failure (replace them with <code>EOF</code> resp.
<h3 id="special-notes">Special notes</h3>
<p>Count the number of non-whitespace characters in the source
file to find out what dark force drove me to write this ;-).</p>
<h3 id="deobfuscation">Deobfuscation</h3>
<h3 id="obfuscation">Obfuscation</h3>
<p>First of all, if you run a C beautifier on the program (thereby of course losing
the nice code shape I worked so hard on ;-) ) the code will become a bit more
readable.</p>
+2 -2
View File
@@ -34,7 +34,7 @@ NOTE: `n` is an integer.
## Judges' remarks:
Don't read the author remarks until you're ready for some obfuscation information.
Don't read the author's remarks until you're ready for the spoiler.
Just stop and read the program; it won't take long. Once you've figured
out what it does, run it. It may surprise you.
@@ -69,7 +69,7 @@ running the program a second time. Try:
diff textfile textfile2
```
where n is the same number (modulo 64). So, the prime number generator
where `n` is the same number (modulo 64). So, the prime number generator
is actually a simple text encoder/decoder! Of course, don't forget that
argument, otherwise the "bugs" in the program will cause it to crash!
+2 -2
View File
@@ -413,7 +413,7 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<h2 id="try">Try:</h2>
<pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Don’t read the author remarks until you’re ready for some obfuscation information.
<p>Don’t read the author’s remarks until you’re ready for the spoiler.
Just stop and read the program; it won’t take long. Once you’ve figured
out what it does, run it. It may surprise you.</p>
<p>This entry won, not because the obfuscation is impenetrable, but because
@@ -437,7 +437,7 @@ Instead, the program reads input from <code>stdin</code> and returns garbled tex
running the program a second time. Try:</p>
<pre><code> ./primenum n &lt; textfile | ./primenum n &gt; textfile2
diff textfile textfile2</code></pre>
<p>where n is the same number (modulo 64). So, the prime number generator
<p>where <code>n</code> is the same number (modulo 64). So, the prime number generator
is actually a simple text encoder/decoder! Of course, don’t forget that
argument, otherwise the “bugs” in the program will cause it to crash!</p>
<h3 id="features">Features</h3>
+1 -1
View File
@@ -117,7 +117,7 @@ the game entertaining, see if you can find
in the source code.)
### GAME STRATEGY DEOBFUSCATION
### GAME STRATEGY SPOILER
The trick, of course, is to drop items in empty rooms to mark them. That way
you usually know if you're in a room you've seen before. It greatly aids
+1 -1
View File
@@ -481,7 +481,7 @@ the game entertaining, see if you can find</p>
<pre><code> the fish scales Q)++j&lt;
the shooting star -~- ~ -~i +</code></pre>
<p>in the source code.)</p>
<h3 id="game-strategy-deobfuscation">GAME STRATEGY DEOBFUSCATION</h3>
<h3 id="game-strategy-spoiler">GAME STRATEGY SPOILER</h3>
<p>The trick, of course, is to drop items in empty rooms to mark them. That way
you usually know if you’re in a room you’ve seen before. It greatly aids
mapping.</p>
+2 -2
View File
@@ -130,12 +130,12 @@
"entry_text" : "hibachi-start.sh declarations"
},
{
"file_path" : "src/localhost/CHANGES-DEOBFUSCATED.TXT",
"file_path" : "src/localhost/CHANGES-SPOILER.TXT",
"inventory_order" : 200,
"OK_to_edit" : true,
"display_as" : "text",
"display_via_github" : false,
"entry_text" : "Debofuscation change log"
"entry_text" : "spoiler change log"
},
{
"file_path" : "2004_hibachi.tar.bz2",
+1 -1
View File
@@ -159,7 +159,7 @@ style](https://wiki.c2.com/?OneTrueBraceStyle).
* `Hibachi` can serve [www.ioccc.org](https://www.ioccc.org).
* Commented deobfuscation information available.
* Commented spoiler information available.
### Known Issues
+2 -2
View File
@@ -486,7 +486,7 @@ style</a>.</p></li>
<li><p><code>HTTP/1.0 200 OK</code> == <code>HTTP/1.1 200 OK CRLF Connection: close</code> ?</p></li>
<li><p><code>getenv()</code> == <code>putenv()</code> ?</p></li>
<li><p><code>Hibachi</code> can serve <a href="https://www.ioccc.org">www.ioccc.org</a>.</p></li>
<li><p>Commented deobfuscation information available.</p></li>
<li><p>Commented spoiler information available.</p></li>
</ul>
<h3 id="known-issues">Known Issues</h3>
<ul>
@@ -543,7 +543,7 @@ paragraph 3 sentence 2, and so fails to display responses from
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/hibachi/src/localhost/test/perl/yahoo-ticker.pl">src/localhost/test/perl/yahoo-ticker.pl</a> - stock price fetch example in Perl</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/hibachi/src/configure.in">src/configure.in</a> - GNU Autoconf script</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/hibachi/src/hibachi-start.sh.in">src/hibachi-start.sh.in</a> - hibachi-start.sh declarations</li>
<li><a href="src/localhost/CHANGES-DEOBFUSCATED.TXT">src/localhost/CHANGES-DEOBFUSCATED.TXT</a> - Debofuscation change log</li>
<li><a href="src/localhost/CHANGES-SPOILER.TXT">src/localhost/CHANGES-SPOILER.TXT</a> - spoiler change log</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
+4 -3
View File
@@ -12,7 +12,8 @@ version](#alternate-code) below. If your terminal has problems with the
make anon-no_stty
```
This will compile [anon.c](%%REPO_URL%%/2005/anon/anon.c) as `anon` to not use `stty(1)`.
This will compile [anon.c](%%REPO_URL%%/2005/anon/anon.c) as `anon` to not use
`stty(1)`, with the support of an `#ifdef..#endif` added by the author.
### Bugs and (Mis)features:
@@ -202,7 +203,7 @@ hit enter after every key), but it works.
The game requires lots of space on the runtime stack space due to deep
recursion, among other things. :-)
See the "**DEOBFUSCATION**" section below for more notes about portability.
See the "**OBFUSCATION**" section below for more notes about portability.
### ABOUT THE CODE
@@ -280,7 +281,7 @@ It probably will also compile and work on many (all?) other \*nix platforms as
well. How does it achieve this incredible feat?
### DEOBFUSCATION
### OBFUSCATION
Read the following only if you give up figuring it out :-)
+4 -3
View File
@@ -407,7 +407,8 @@ Location: <a href="../../location.html#ZZ">ZZ</a> - <em>Unknown location</em></l
version</a> below. If your terminal has problems with the
<code>stty(1)</code> commands try:</p>
<pre><code> make anon-no_stty</code></pre>
<p>This will compile <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/anon/anon.c">anon.c</a> as <code>anon</code> to not use <code>stty(1)</code>.</p>
<p>This will compile <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/anon/anon.c">anon.c</a> as <code>anon</code> to not use
<code>stty(1)</code>, with the support of an <code>#ifdef..#endif</code> added by the author.</p>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
<p>The current status of this entry is:</p>
<pre><code> STATUS: INABIAF - please DO NOT fix</code></pre>
@@ -514,7 +515,7 @@ with <code>-DNO_STTY</code>. The game interface will be a bit annoying (you will
hit enter after every key), but it works.</p>
<p>The game requires lots of space on the runtime stack space due to deep
recursion, among other things. :-)</p>
<p>See the “<strong>DEOBFUSCATION</strong>” section below for more notes about portability.</p>
<p>See the “<strong>OBFUSCATION</strong>” section below for more notes about portability.</p>
<h3 id="about-the-code">ABOUT THE CODE</h3>
<p>Clearly, the author is very, very confused. Although he has broken up the file
into sections labelled with helpful headings, and although he has left ample
@@ -577,7 +578,7 @@ on the following architectures:</p>
</ul>
<p>It probably will also compile and work on many (all?) other *nix platforms as
well. How does it achieve this incredible feat?</p>
<h3 id="deobfuscation">DEOBFUSCATION</h3>
<h3 id="obfuscation">OBFUSCATION</h3>
<p>Read the following only if you give up figuring it out :-)</p>
<h4 id="the-evil-hack">The Evil Hack</h4>
<p>The program (ab)uses an implicit assumption underlying practically all
+3 -3
View File
@@ -248,7 +248,7 @@ changing the definitions of `W`, `H` and `I` at the beginning of the code.
parameter.
### Deobfuscation
### Obfuscation
Sure, I don't want to deprive you of the pleasure of digging
into the infernal mess created by my corrupted mind (writing
@@ -262,9 +262,9 @@ of how all the program works to be worked out).
This program is a formula parser that outputs machine code that
calculates the formula and check the given conditions. The
machine code targets the x87 stack based
machine code targets the `x87` stack based
[FPU](https://en.wikipedia.org/wiki/Floating-point_unit), and it is almost
identical for x86 and x86_64 (except for the comparison
identical for `x86` and `x86_64` (except for the comparison
instructions, that have to be generated differently). The
program keeps track of the FPU stack (the FPU has a cyclic stack
of 8 registers) and will automatically swap to and from the
+3 -3
View File
@@ -553,7 +553,7 @@ numbers.</li>
<li>There should be some way to switch from Mandelbrot to Julia with chosen
parameter.</li>
</ul>
<h3 id="deobfuscation">Deobfuscation</h3>
<h3 id="obfuscation">Obfuscation</h3>
<p>Sure, I don’t want to deprive you of the pleasure of digging
into the infernal mess created by my corrupted mind (writing
this remark I noticed that I was ending sentences with ‘;’ instead
@@ -564,9 +564,9 @@ are different from the tricks used in most common IOCCC program
of how all the program works to be worked out).</p>
<p>This program is a formula parser that outputs machine code that
calculates the formula and check the given conditions. The
machine code targets the x87 stack based
machine code targets the <code>x87</code> stack based
<a href="https://en.wikipedia.org/wiki/Floating-point_unit">FPU</a>, and it is almost
identical for x86 and x86_64 (except for the comparison
identical for <code>x86</code> and <code>x86_64</code> (except for the comparison
instructions, that have to be generated differently). The
program keeps track of the FPU stack (the FPU has a cyclic stack
of 8 registers) and will automatically swap to and from the
+1 -1
View File
@@ -222,7 +222,7 @@ In Unix the min 0 on `stty` is required but circa 2001
it was not required.
### How it works (deobfuscation)
### How it works (obfuscation)
The `l` array contains the 64K memory; it is initialized with a boot image
loaded from the `C` file. The [program
+1 -1
View File
@@ -534,7 +534,7 @@ is not what is needed.</p>
<p>On PC/DOS you need to add <code>ANSI.SYS</code> to <code>CONFIG.SYS</code>.</p>
<p>In Unix the min 0 on <code>stty</code> is required but circa 2001
it was not required.</p>
<h3 id="how-it-works-deobfuscation">How it works (deobfuscation)</h3>
<h3 id="how-it-works-obfuscation">How it works (obfuscation)</h3>
<p>The <code>l</code> array contains the 64K memory; it is initialized with a boot image
loaded from the <code>C</code> file. The <a href="https://en.wikipedia.org/wiki/Program_counter">program
counter</a> is the <code>c</code> pointer and
+1 -1
View File
@@ -199,7 +199,7 @@ Just say
(Btw, tcc has its roots in IOCCC...)
### Deobfuscation
### Obfuscation
* The initialized char array includes the source code of the real program,
as well as its name and commands to build and run it, all
+1 -1
View File
@@ -536,7 +536,7 @@ C99, or long lines as an extension. This code has been tested on:</p></li>
<li><p>AIX 5.3, IBM eServer p5-550, gcc 3.3.3 and AIX CC Version 6</p>
<p>(Btw, tcc has its roots in IOCCC…)</p></li>
</ul>
<h3 id="deobfuscation">Deobfuscation</h3>
<h3 id="obfuscation">Obfuscation</h3>
<ul>
<li>The initialized char array includes the source code of the real program,
as well as its name and commands to build and run it, all
+1 -1
View File
@@ -110,7 +110,7 @@ the actual `argv` strings to be writable, though.
- Some seemingly redundant code works to eliminate warnings and evade a gcc bug.
### Deobfuscation
### Spoilers
The parser parses function names, subtraction, and division as single-letter
unary operators. A bitmask encoded hash table is used to check no-ops/digits
+1 -1
View File
@@ -462,7 +462,7 @@ the actual <code>argv</code> strings to be writable, though.</li>
<li>This program doesn’t work with <code>%e</code> style numbers like <code>1e-4</code>.</li>
<li>Some seemingly redundant code works to eliminate warnings and evade a gcc bug.</li>
</ul>
<h3 id="deobfuscation">Deobfuscation</h3>
<h3 id="spoilers">Spoilers</h3>
<p>The parser parses function names, subtraction, and division as single-letter
unary operators. A bitmask encoded hash table is used to check no-ops/digits
and another hash function maps the ASCII to a function ordinal, which is then
+1 -1
View File
@@ -153,7 +153,7 @@ reflection ray at an object's surface, given the incoming
direction and surface normal.
#### Further deobfuscation:
#### Further details:
The program is not quite a traditional [ray
tracer](https://en.wikipedia.org/wiki/Ray_tracing_&#x28;graphics&#x29;), but a "[sphere
+1 -1
View File
@@ -480,7 +480,7 @@ by the source code itself: the geometric construction of a
reflection ray at an object’s surface, given the incoming
direction and surface normal.</p></li>
</ul>
<h4 id="further-deobfuscation">Further deobfuscation:</h4>
<h4 id="further-details">Further details:</h4>
<p>The program is not quite a traditional <a href="https://en.wikipedia.org/wiki/Ray_tracing_(graphics)">ray
tracer</a>, but a “<a href="sphere-tracing.pdf">sphere
tracer</a>” which uses distance fields to encode proximity to
+1 -1
View File
@@ -259,7 +259,7 @@ a usage of `I` (complex's imaginary unit), but I bet this is cygwin's issue;
it is surely a C99 feature.
### Deobfuscation
### Obfuscation
First of all, the source code itself serves as an initial configuration.
Preprocessing directives (such as `#include`)'s `#` serve as walls.
+1 -1
View File
@@ -554,7 +554,7 @@ used to clear screen and move cursor to home.</p>
and gcc-4.5.3 and clang-3.1 on Cygwin. On Cygwin, gcc and clang complain about
a usage of <code>I</code> (complex’s imaginary unit), but I bet this is cygwin’s issue;
it is surely a C99 feature.</p>
<h3 id="deobfuscation">Deobfuscation</h3>
<h3 id="obfuscation">Obfuscation</h3>
<p>First of all, the source code itself serves as an initial configuration.
Preprocessing directives (such as <code>#include</code>)’s <code>#</code> serve as walls.</p>
<p>This program uses <code>double complex</code> to represent any 2D vector. But, note that
+2 -2
View File
@@ -150,7 +150,7 @@ The design of the program explicitly allows for `EOF` even if it does not equal
endian-independent.
### Debfuscation
### Obfuscation
Many obfuscations used are typical for standard IOCCC entries:
@@ -218,7 +218,7 @@ Having said this important trick, other details should be relatively easier to
follow. The order of lookup table, for example, is very important,
and the biggest constant 6177 is not arbitrarily chosen.
Even [more deobfuscation information](https://gist.github.com/lifthrasiir/3909337) is available.
Even more obfuscation information is [available](https://gist.github.com/lifthrasiir/3909337).
### Acknowledgement
+2 -2
View File
@@ -493,7 +493,7 @@ character set and two’s complement representation.</li>
<code>-1</code> (it has to be negative per the standard but not necessarily <code>-1</code>) and both
<code>signed char</code> and <code>unsigned char</code>, for example. Furthermore it is
endian-independent.</p>
<h3 id="debfuscation">Debfuscation</h3>
<h3 id="obfuscation">Obfuscation</h3>
<p>Many obfuscations used are typical for standard IOCCC entries:</p>
<ul>
<li>Two arguments from <code>main()</code> function are reused as normal variables.</li>
@@ -547,7 +547,7 @@ one character.</li>
<p>Having said this important trick, other details should be relatively easier to
follow. The order of lookup table, for example, is very important,
and the biggest constant 6177 is not arbitrarily chosen.</p>
<p>Even <a href="https://gist.github.com/lifthrasiir/3909337">more deobfuscation information</a> is available.</p>
<p>Even more obfuscation information is <a href="https://gist.github.com/lifthrasiir/3909337">available</a>.</p>
<h3 id="acknowledgement">Acknowledgement</h3>
<p>The cleaner (size-optimized) version of this program was originally published
in my website in July 2011. Sun Park and others have reviewed it and made me
+2 -2
View File
@@ -66,12 +66,12 @@
"entry_text" : "script to try entry"
},
{
"file_path" : "deobfuscation.html",
"file_path" : "obfuscation.html",
"inventory_order" : 200,
"OK_to_edit" : true,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "Deobfuscation information web page"
"entry_text" : "JavaScript page with full recording of development"
},
{
"file_path" : "2012_omoikane.tar.bz2",
+2 -2
View File
@@ -83,7 +83,7 @@ We have no way to test the second version, sorry (tm Canada :-) )!
## Judges' remarks:
The judges have nothing to add that has not already been written about in the
[deobfuscation.html](deobfuscation.html) (requires JavaScript) file! :-)
[obfuscation.html](obfuscation.html) (requires JavaScript) file! :-)
## Author's remarks:
@@ -195,7 +195,7 @@ default, this means `Nyaruko` may not faithfully encode files on MingW.
### Extra files
[deobfuscation.html](deobfuscation.html) - Contains full recording of how the code went from
[obfuscation.html](obfuscation.html) - Contains full recording of how the code went from
blank state to an obfuscated program, gzipped to fit under 1MB. Requires
JavaScript.
+3 -3
View File
@@ -443,7 +443,7 @@ binary mode on <code>stdin</code> and <code>stdout</code>.</p>
<p>We have no way to test the second version, sorry (tm Canada :-) )!</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>The judges have nothing to add that has not already been written about in the
<a href="deobfuscation.html">deobfuscation.html</a> (requires JavaScript) file! :-)</p>
<a href="obfuscation.html">obfuscation.html</a> (requires JavaScript) file! :-)</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="usage">Usage</h3>
<p><code>Nyaruko</code> is a binary to text filter. Given some input on <code>stdin</code>,
@@ -524,7 +524,7 @@ combinations:</p>
<p>Note that on MingW, <code>stdin</code> and <code>stdout</code> are not opened in binary mode by
default, this means <code>Nyaruko</code> may not faithfully encode files on MingW.</p>
<h3 id="extra-files">Extra files</h3>
<p><a href="deobfuscation.html">deobfuscation.html</a> - Contains full recording of how the code went from
<p><a href="obfuscation.html">obfuscation.html</a> - Contains full recording of how the code went from
blank state to an obfuscated program, gzipped to fit under 1MB. Requires
JavaScript.</p>
<!--
@@ -559,7 +559,7 @@ JavaScript.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/omoikane.c">omoikane.c</a> - entry source code</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/try.alt.sh">try.alt.sh</a> - script to try alternate code</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/omoikane/try.sh">try.sh</a> - script to try entry</li>
<li><a href="deobfuscation.html">deobfuscation.html</a> - Deobfuscation information web page</li>
<li><a href="obfuscation.html">obfuscation.html</a> - JavaScript page with full recording of development</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
File renamed without changes.
+1 -1
View File
@@ -39,7 +39,7 @@
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "author supplied debofuscation information"
"entry_text" : "author supplied obfuscation information"
},
{
"file_path" : "primes.pl",
+1 -1
View File
@@ -383,7 +383,7 @@
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: 2012/tromp/how.md -->
<h1 id="deobfuscation">Deobfuscation</h1>
<h1 id="obfuscation">Obfuscation</h1>
<p>The program implements a so called <a href="https://en.wikipedia.org/wiki/Krivine_machine">Krivine
machine</a>, enhanced with a <a href="https://en.wikipedia.org/wiki/BIOS">basic
input/output system</a> and a reference
+1 -1
View File
@@ -1,4 +1,4 @@
# Deobfuscation
# Obfuscation
The program implements a so called [Krivine
machine](https://en.wikipedia.org/wiki/Krivine_machine), enhanced with a [basic
+1 -1
View File
@@ -787,7 +787,7 @@ Higher Order Symbol. Comput. 20, 3 (September 2007), 199-207.
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/tromp/tromp.c">tromp.c</a> - entry source code</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/tromp/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/tromp/tromp.orig.c">tromp.orig.c</a> - original source code</li>
<li><a href="how.html">how.html</a> - author supplied debofuscation information</li>
<li><a href="how.html">how.html</a> - author supplied obfuscation information</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/tromp/primes.pl">primes.pl</a> - post process entry output to print primes</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/tromp/try.sh">try.sh</a> - script to try entry</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/tromp/hw.bf">hw.bf</a> - hello world brainfuck source code</li>
+3 -3
View File
@@ -106,7 +106,7 @@ and to satisfy IOCCC's size rule.
These led to the good obfuscation.
See the [deobfuscation section](#Deobfuscation) in detail, if you need.
See the [obfuscation section](#obfuscation) in detail, if you need.
### Limitation
@@ -120,7 +120,7 @@ Also, it requires a space between identifiers. In short, use `(S K)` instead of
Huge memory may be required to compile the program (about 300 MB on my machine).
In addition, there are some limitations (and workarounds) mentioned in
the [deobfuscation section](#Deobfuscation).
the [obfuscation section](#obfuscation).
But I think it would only matter when you run the attached programs.
@@ -156,7 +156,7 @@ run it as a standalone program, at least. In fact, tcc does not support the
macro, but does work.
### Deobfuscation
### Obfuscation
The whole program is interpreted by macro expansion.
For example, `S (K I)` is translated to a normal C code, `(s)((k)(i))`, or
+3 -3
View File
@@ -450,7 +450,7 @@ and to satisfy IOCCC’s size rule.</p>
<li>Short coding.</li>
</ul>
<p>These led to the good obfuscation.</p>
<p>See the <a href="#Deobfuscation">deobfuscation section</a> in detail, if you need.</p>
<p>See the <a href="#obfuscation">obfuscation section</a> in detail, if you need.</p>
<h3 id="limitation">Limitation</h3>
<p>This program supports only “Combinator-calculus style notation” of Lazy K.
“Unlambda style” and “Iota and Jot” style are not supported.</p>
@@ -458,7 +458,7 @@ and to satisfy IOCCC’s size rule.</p>
<code>(SK)</code>, “`sk”, <code>**i*i*i*ii*i*i*ii</code>, or <code>11111100011100</code>.</p>
<p>Huge memory may be required to compile the program (about 300 MB on my machine).</p>
<p>In addition, there are some limitations (and workarounds) mentioned in
the <a href="#Deobfuscation">deobfuscation section</a>.</p>
the <a href="#obfuscation">obfuscation section</a>.</p>
<p>But I think it would only matter when you run the attached programs.</p>
<h3 id="portability">Portability</h3>
<p>I confirmed that the program successfully worked with the following compilers:</p>
@@ -486,7 +486,7 @@ It is a gcc extension, and also supported by clang. If your compiler does not
support it, you cannot use the program as a library. But you can compile and
run it as a standalone program, at least. In fact, tcc does not support the
macro, but does work.</p>
<h3 id="deobfuscation">Deobfuscation</h3>
<h3 id="obfuscation-1">Obfuscation</h3>
<p>The whole program is interpreted by macro expansion.
For example, <code>S (K I)</code> is translated to a normal C code, <code>(s)((k)(i))</code>, or
simply <code>s(k(i))</code>.</p>
+1 -1
View File
@@ -62,7 +62,7 @@ I believe that the JPEG encoder is the world's smallest ever.
Nevertheless, the program was too big to meet the IOCCC's size rule. So I
created a smaller bootstrap program that generates the main program. `endoh2.c`
contains fragments of the main program *as a comment* which `iocccsize -i` does
*not* count. I gratefully thank the judges for deobfuscating the size rule this
*not* count. I gratefully thank the judges for spoiling the size rule this
year.
I think the program will work on any major platforms and compilers.
+1 -1
View File
@@ -441,7 +441,7 @@ I believe that the JPEG encoder is the world’s smallest ever.</p>
<p>Nevertheless, the program was too big to meet the IOCCC’s size rule. So I
created a smaller bootstrap program that generates the main program. <code>endoh2.c</code>
contains fragments of the main program <em>as a comment</em> which <code>iocccsize -i</code> does
<em>not</em> count. I gratefully thank the judges for deobfuscating the size rule this
<em>not</em> count. I gratefully thank the judges for spoiling the size rule this
year.</p>
<p>I think the program will work on any major platforms and compilers.</p>
<h3 id="legal">Legal</h3>
+1 -1
View File
@@ -181,7 +181,7 @@ For the same reason, do not post a score that contains only `z1092`.
You know, it is ["the famous song"](http://en.wikipedia.org/wiki/4%E2%80%B233%E2%80%B3).
### Deobfuscation
### Spoiler
Here is a magical expression which I found by brute-force:
+1 -1
View File
@@ -516,7 +516,7 @@ such as <code>C2E2</code>.</p>
But I do not attach it to protect you from W****r.</p>
<p>For the same reason, do not post a score that contains only <code>z1092</code>.
You know, it is <a href="http://en.wikipedia.org/wiki/4%E2%80%B233%E2%80%B3">“the famous song”</a>.</p>
<h3 id="deobfuscation">Deobfuscation</h3>
<h3 id="spoiler">Spoiler</h3>
<p>Here is a magical expression which I found by brute-force:</p>
<pre><code> (c % 32 + 5) * 9 / 5 % 13 + n / 32 * 12 - 22</code></pre>
<p>Interestingly, it converts an ASCII number of ABC notes
+1 -1
View File
@@ -192,7 +192,7 @@ quite memory consuming, requires IEEE754-compliant `double`, and assumes `int` t
doesn't copy saved sessions across different endianness.
### Deobfuscation
### Spoiler
```
3225 3225 3225 9 9 3225 3225
+1 -1
View File
@@ -538,7 +538,7 @@ quite memory consuming, requires IEEE754-compliant <code>double</code>, and assu
<li>Though technically endian-dependent, <code>a.c</code> remains portable providing that one
doesn’t copy saved sessions across different endianness.</li>
</ul>
<h3 id="deobfuscation">Deobfuscation</h3>
<h3 id="spoiler">Spoiler</h3>
<pre><code> 3225 3225 3225 9 9 3225 3225
1 1 1 1 1 1 1 1 1 1
4225 1226 1 1 1 1 1222 1226
+2 -2
View File
@@ -50,12 +50,12 @@
"entry_text" : "script to try entry"
},
{
"file_path" : "deobfuscation.html",
"file_path" : "obfuscation.html",
"inventory_order" : 200,
"OK_to_edit" : true,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "Deobfuscation information web page"
"entry_text" : "JavaScript page with full recording of development"
},
{
"file_path" : "2013_misaka.tar.bz2",
+1 -1
View File
@@ -115,7 +115,7 @@ PROG= ${ENTRY}
#
OBJ= misaka.o misaka2.o misaka3.o misaka4.o misaka5.o \
misaka6.o misaka7.o misaka8.o misaka9.o
DATA= bf.pl deobfuscation.html
DATA= bf.pl obfuscation.html
TARGET= ${PROG} horizontal_cat vertical_cat long_cat loong_cat \
loooong_cat loooooooong_cat long_fat_cat \
long_faat_cat same_as_long_cat
+1 -1
View File
@@ -263,7 +263,7 @@ needed for the program to work.
* [bf.pl](%%REPO_URL%%/2013/misaka/bf.pl) - a perl brainfuck interpreter, in case you don't have one
handy.
* [deobfuscation.html](deobfuscation.html) - making of this program.
* [obfuscation.html](obfuscation.html) - making of this program.
### About `Misaka`
+2 -2
View File
@@ -562,7 +562,7 @@ needed for the program to work.</p>
<ul>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/misaka/bf.pl">bf.pl</a> - a perl brainfuck interpreter, in case you don’t have one
handy.</li>
<li><a href="deobfuscation.html">deobfuscation.html</a> - making of this program.</li>
<li><a href="obfuscation.html">obfuscation.html</a> - making of this program.</li>
</ul>
<h3 id="about-misaka">About <code>Misaka</code></h3>
<p>The name, layout, and functionality of <code>Misaka</code> is inspired by a particular
@@ -601,7 +601,7 @@ stackable figure:</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/misaka/misaka.orig.c">misaka.orig.c</a> - original source code</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/misaka/bf.pl">bf.pl</a> - brainfuck interpreter in perl</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/misaka/try.sh">try.sh</a> - script to try entry</li>
<li><a href="deobfuscation.html">deobfuscation.html</a> - Deobfuscation information web page</li>
<li><a href="obfuscation.html">obfuscation.html</a> - JavaScript page with full recording of development</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
File renamed without changes.
+3 -3
View File
@@ -42,12 +42,12 @@
"entry_text" : "Ruby Makefile"
},
{
"file_path" : "deobfuscation.html",
"file_path" : "quine-qr.html",
"inventory_order" : 100,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "Deobfuscation information about Q(uine)R code generator"
"entry_text" : "information about Q(uine)R code generator"
},
{
"file_path" : "rake.sh",
@@ -218,7 +218,7 @@
"entry_text" : "markdown source for this web page"
},
{
"file_path" : "deobfuscation.md",
"file_path" : "quine-qr.md",
"inventory_order" : 4000000000,
"OK_to_edit" : true,
"display_as" : "markdown",
+1 -1
View File
@@ -112,7 +112,7 @@ PROG= prog
#
OBJ= ${PROG}.o
DATA= Rakefile alpha.rb assemble.rb ast-def.rb gen-prog.rb gen-table.rb link.rb \
machine.rb main.c parse.rb prog-tmpl.c deobfuscation.md register.rb \
machine.rb main.c parse.rb prog-tmpl.c quine-qr.md register.rb \
serialize.rb src.rb tool.rb vm.c
TARGET= ${PROG} main treacle
#
+2 -2
View File
@@ -62,9 +62,9 @@ more than 1000 words.
You may want to use a large display with a very small terminal font.
### Deobfuscation
### Q(uine)R code generator
See [deobfuscation.html](deobfuscation.html).
See [quine-qr.html](quine-qr.html).
<!--
+4 -4
View File
@@ -432,8 +432,8 @@ more than 1000 words.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="remarks">Remarks</h3>
<p>You may want to use a large display with a very small terminal font.</p>
<h3 id="deobfuscation">Deobfuscation</h3>
<p>See <a href="deobfuscation.html">deobfuscation.html</a>.</p>
<h3 id="quiner-code-generator">Q(uine)R code generator</h3>
<p>See <a href="quine-qr.html">quine-qr.html</a>.</p>
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
@@ -463,7 +463,7 @@ more than 1000 words.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/prog.orig.c">prog.orig.c</a> - original source code</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/Rakefile">Rakefile</a> - Ruby Makefile</li>
<li><a href="deobfuscation.html">deobfuscation.html</a> - Deobfuscation information about Q(uine)R code generator</li>
<li><a href="quine-qr.html">quine-qr.html</a> - information about Q(uine)R code generator</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/rake.sh">rake.sh</a> - make rake script</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/try.sh">try.sh</a> - script to try entry</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/alpha.rb">alpha.rb</a> - support program for Rakefile</li>
@@ -485,10 +485,10 @@ more than 1000 words.</p>
<ul>
<li><a href="2014_endoh1.tar.bz2">2014_endoh1.tar.bz2</a> - download entry tarball</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/deobfuscation.md">deobfuscation.md</a> - markdown source for deobfuscation.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/.entry.json">.entry.json</a> - entry summary and manifest in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/.path">.path</a> - directory path from top level directory</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/quine-qr.md">quine-qr.md</a> - markdown source for deobfuscation.html</li>
<li><a href="index.html">index.html</a> - this web page</li>
</ul>
<hr style="width:10%;text-align:left;margin-left:0">
@@ -12,8 +12,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>The International Obfuscated C Code Contest</title>
<link rel="icon" type="image/x-icon" href="../../favicon.ico">
<meta name="description" content="deobfuscation.md for 2014/endoh1">
<meta name="keywords" content="IOCCC, 2014/endoh1, deobfuscation.md">
<meta name="description" content="quine-qr.md for 2014/endoh1">
<meta name="keywords" content="IOCCC, 2014/endoh1, quine-qr.md">
</head>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
@@ -26,13 +26,13 @@
<!-- -->
<!-- This web page was formed via the tool: bin/gen-other-html.sh -->
<!-- The content of main section of this web page came from: 2014/endoh1/deobfuscation.md -->
<!-- The content of main section of this web page came from: 2014/endoh1/quine-qr.md -->
<!-- -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2014/endoh1/deobfuscation.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2014/endoh1/deobfuscation.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2014/endoh1/deobfuscation.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2014/endoh1/quine-qr.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2014/endoh1/quine-qr.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2014/endoh1/quine-qr.md !!! -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- Markdown content was converted into HTML via the tool: bin/md2html.sh -->
@@ -363,7 +363,7 @@
height=110>
</a>
<h1>The International Obfuscated C Code Contest</h1>
<h2>deobfuscation.html for 2014/endoh1</h2>
<h2>quine-qr.html for 2014/endoh1</h2>
</div>
<!-- END: this line ends content from: inc/header.default.html -->
@@ -371,7 +371,7 @@
<div class="navbar">
<a class="Left" href="index.html">&uarr; jump to index.html &uarr;</a>
<a class="Right" href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F2014%2Fendoh1%2Fdeobfuscation.html">&#x2713;</a>
<a class="Right" href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F2014%2Fendoh1%2Fquine-qr.html">&#x2713;</a>
</div>
<!-- END: this line ends content from: inc/navbar.up2index.html -->
@@ -382,7 +382,7 @@
<!-- END: this line ends content from: inc/before-content.default.html -->
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: 2014/endoh1/deobfuscation.md -->
<!-- BEFORE: 1st line of markdown file: 2014/endoh1/quine-qr.md -->
<h1 id="quiner-code-generator">Q(uine)R code generator</h1>
<h2 id="what-is-difficult">What is difficult?</h2>
<p>As you may know, QR code (specification: ISO/IEC 18004) is quite complex. It
@@ -533,7 +533,7 @@ but it appears to no longer exist.</p>
https://creativecommons.org/licenses/by-sa/4.0/
-->
<!-- AFTER: last line of markdown file: 2014/endoh1/deobfuscation.md -->
<!-- AFTER: last line of markdown file: 2014/endoh1/quine-qr.md -->
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content from: inc/after-content.default.html -->
@@ -593,7 +593,7 @@ but it appears to no longer exist.</p>
<div id="coda"><h3>Coda</h3>
<p>
<a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F2014%2Fendoh1%2Fdeobfuscation.html" rel="nofollow">Nu HTML check this web page</a><br>
<a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F2014%2Fendoh1%2Fquine-qr.html" rel="nofollow">Nu HTML check this web page</a><br>
<a href="#top">Jump to top</a> <a href="#content">Jump to Content</a>
</p>
</div>
File renamed without changes.
+2 -2
View File
@@ -58,12 +58,12 @@
"entry_text" : "script to try entry"
},
{
"file_path" : "deobfuscation.html",
"file_path" : "obfuscation.html",
"inventory_order" : 200,
"OK_to_edit" : true,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "Deobfuscation information web page"
"entry_text" : "JavaScript page with full recording of development"
},
{
"file_path" : "2014_sinon.tar.bz2",
+1 -1
View File
@@ -112,7 +112,7 @@ that there are no files named "run" and "run.c" in current directory
File size and CRC32 of [prog.c](%%REPO_URL%%/2014/sinon/prog.c) are embedded in line 7.
Process for making `Sinon` is included in [deobfuscation.html](deobfuscation.html).
Process for making `Sinon` is included in [obfuscation.html](obfuscation.html).
Layout of this code is based on Asada Shino, also known as "`Sinon`",
from Sword Art Online.
+2 -2
View File
@@ -474,7 +474,7 @@ that there are no files named “run” and “run.c” in current directory
(they will be overwritten) and run:</p>
<pre><code> perl prog.c | bash</code></pre>
<p>File size and CRC32 of <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/sinon/prog.c">prog.c</a> are embedded in line 7.</p>
<p>Process for making <code>Sinon</code> is included in <a href="deobfuscation.html">deobfuscation.html</a>.</p>
<p>Process for making <code>Sinon</code> is included in <a href="obfuscation.html">obfuscation.html</a>.</p>
<p>Layout of this code is based on Asada Shino, also known as “<code>Sinon</code>”,
from Sword Art Online.</p>
<!--
@@ -508,7 +508,7 @@ from Sword Art Online.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/sinon/glock.sh">glock.sh</a> - script to run entry</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/sinon/hecate.sh">hecate.sh</a> - script to run entry</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/sinon/try.sh">try.sh</a> - script to try entry</li>
<li><a href="deobfuscation.html">deobfuscation.html</a> - Deobfuscation information web page</li>
<li><a href="obfuscation.html">obfuscation.html</a> - JavaScript page with full recording of development</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
File renamed without changes.
+1 -1
View File
@@ -46,7 +46,7 @@ one of the all time best IOCCC entries from 1984.
We also suggest that you take a very good look at how the
[muth](muth/index.html) code makes full use of the C Pre-Processor.
...We'll stop spouting deobfuscation information now. Have fun exploring all the entries!
...We'll stop spouting spoilers now. Have fun exploring all the entries!
## Remarks on some of submissions that did not win
+4 -4
View File
@@ -106,12 +106,12 @@
"entry_text" : "test suite comparison data for 32-bit systems"
},
{
"file_path" : "deobfuscation.html",
"file_path" : "obfuscation.html",
"inventory_order" : 200,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "Deobfuscation information web page"
"entry_text" : "obfuscation information web page"
},
{
"file_path" : "src.doc.txt",
@@ -162,12 +162,12 @@
"entry_text" : "markdown source for this web page"
},
{
"file_path" : "deobfuscation.md",
"file_path" : "obfuscation.md",
"inventory_order" : 4000000000,
"OK_to_edit" : true,
"display_as" : "markdown",
"display_via_github" : true,
"entry_text" : "markdown source for deobfuscation.html"
"entry_text" : "markdown source for obfuscation.html"
},
{
"file_path" : "road.to.obscurity.md",
+2 -2
View File
@@ -228,9 +228,9 @@ This allows for a convenient test suite:
```
### Deobfuscation:
### Obfuscation:
If you do not want to puzzle out how it works, see [deobfuscation.html](deobfuscation.html).
If you do not want to puzzle out how it works, see [obfuscation.html](obfuscation.html).
<!--
+4 -4
View File
@@ -528,8 +528,8 @@ To stifle these complaints:</p>
This allows for a convenient test suite:</p>
<pre><code> ln -sf prog eprog
PATH=. eprog &lt; test.in | diff - test.out</code></pre>
<h3 id="deobfuscation">Deobfuscation:</h3>
<p>If you do not want to puzzle out how it works, see <a href="deobfuscation.html">deobfuscation.html</a>.</p>
<h3 id="obfuscation">Obfuscation:</h3>
<p>If you do not want to puzzle out how it works, see <a href="obfuscation.html">obfuscation.html</a>.</p>
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
@@ -567,16 +567,16 @@ This allows for a convenient test suite:</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/test32.out">test32.out</a> - test suite comparison data for 32-bit systems</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/test.in">test.in</a> - test suite input data</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/test.out">test.out</a> - test suite comparison data</li>
<li><a href="deobfuscation.html">deobfuscation.html</a> - Deobfuscation information web page</li>
<li><a href="obfuscation.html">obfuscation.html</a> - obfuscation information web page</li>
<li><a href="src.doc.txt">src.doc.txt</a> - hints about the source code</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_burton.tar.bz2">2015_burton.tar.bz2</a> - download entry tarball</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/deobfuscation.md">deobfuscation.md</a> - markdown source for deobfuscation.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/.entry.json">.entry.json</a> - entry summary and manifest in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/obfuscation.md">obfuscation.md</a> - markdown source for obfuscation.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/.path">.path</a> - directory path from top level directory</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/road.to.obscurity.md">road.to.obscurity.md</a> - markdown source for road.to.obscurity.html</li>
<li><a href="index.html">index.html</a> - this web page</li>
@@ -12,8 +12,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>The International Obfuscated C Code Contest</title>
<link rel="icon" type="image/x-icon" href="../../favicon.ico">
<meta name="description" content="deobfuscation.md for 2015/burton">
<meta name="keywords" content="IOCCC, 2015/burton, deobfuscation.md">
<meta name="description" content="obfuscation.md for 2015/burton">
<meta name="keywords" content="IOCCC, 2015/burton, obfuscation.md">
</head>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
@@ -26,13 +26,13 @@
<!-- -->
<!-- This web page was formed via the tool: bin/gen-other-html.sh -->
<!-- The content of main section of this web page came from: 2015/burton/deobfuscation.md -->
<!-- The content of main section of this web page came from: 2015/burton/obfuscation.md -->
<!-- -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2015/burton/deobfuscation.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2015/burton/deobfuscation.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2015/burton/deobfuscation.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2015/burton/obfuscation.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2015/burton/obfuscation.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: 2015/burton/obfuscation.md !!! -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- Markdown content was converted into HTML via the tool: bin/md2html.sh -->
@@ -363,7 +363,7 @@
height=110>
</a>
<h1>The International Obfuscated C Code Contest</h1>
<h2>deobfuscation.html for 2015/burton</h2>
<h2>obfuscation.html for 2015/burton</h2>
</div>
<!-- END: this line ends content from: inc/header.default.html -->
@@ -371,7 +371,7 @@
<div class="navbar">
<a class="Left" href="index.html">&uarr; jump to index.html &uarr;</a>
<a class="Right" href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F2015%2Fburton%2Fdeobfuscation.html">&#x2713;</a>
<a class="Right" href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F2015%2Fburton%2Fobfuscation.html">&#x2713;</a>
</div>
<!-- END: this line ends content from: inc/navbar.up2index.html -->
@@ -382,7 +382,7 @@
<!-- END: this line ends content from: inc/before-content.default.html -->
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: 2015/burton/deobfuscation.md -->
<!-- BEFORE: 1st line of markdown file: 2015/burton/obfuscation.md -->
<h3 id="deobfuscation">Deobfuscation</h3>
<p><code>calc</code> is a recursive-descent parser. It allocates from the stack deep enough
that all expressions are exhausted before the recursion stack depth reaches the
@@ -428,7 +428,7 @@ obfuscation, and remarkably effective.</p>
https://creativecommons.org/licenses/by-sa/4.0/
-->
<!-- AFTER: last line of markdown file: 2015/burton/deobfuscation.md -->
<!-- AFTER: last line of markdown file: 2015/burton/obfuscation.md -->
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content from: inc/after-content.default.html -->
@@ -488,7 +488,7 @@ obfuscation, and remarkably effective.</p>
<div id="coda"><h3>Coda</h3>
<p>
<a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F2015%2Fburton%2Fdeobfuscation.html" rel="nofollow">Nu HTML check this web page</a><br>
<a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F2015%2Fburton%2Fobfuscation.html" rel="nofollow">Nu HTML check this web page</a><br>
<a href="#top">Jump to top</a> <a href="#content">Jump to Content</a>
</p>
</div>
File renamed without changes.
Loaded 100 of 193 files, more files were not shown because too many files have changed in this diff. Show more