Reword the recent deobfuscation changes
In most cases the word was changed to 'obfuscation' as it was about
obfuscation, not deobfuscation. In some cases like 1995/leo since the
file was (in 1995/leo) about a secret switch it was changed to
'secret.md' (and 'secret.html') but there were others like that as well.
One entry had the words 'spoiling the size rule' but this had been
changed to 'deobfuscating the size rule' which was obviously wrong.
In the latter YYYY/README.md files the judges had written after some
entries (brief summaries) '...
...We'll stop spouting spoilers now. Have fun exploring all the
entries!
but that was changed to:
...We'll stop spouting deobfuscation information now. Have fun
exploring all the entries!
which wasn't really about deobfuscation but just a brief summary of what
the entries did.
And in the most problematic case (at least for me :-), 2018/ferguson) I
had put a joke in:
... but it's the only Easter egg I won't spoil
but it was changed to 'won't deobfuscate' which not only is not what it
is but it spoilt the joke.
In some cases the word was changed back to 'SPOILER' (or similar) but in
most cases not. I believe it should be better now. There are some
caveats, however, as below.
Although make find_missing_links is okay I do not remember if this will
catch links that refer to '%%REPO_URL%%' or other pandoc tokens. This
means I might have to go back to some earlier years to verify links are
okay. That should not take that much time I hope.
It might also be that some wording can still be improved some but it is
hoped this will be discovered when checking links and looking over the
manifest (which obviously changed).
This commit is contained in:
1 parent
a379c6296a
commit
1ac055fa85
193 files changed
+531
-524
No files matched your search
+10
-3
@@ -31,8 +31,6 @@ The [Best one-liner - 2018/burton1](burton1/index.html), at 109 characters, is a
|
||||
short and sweet implementation of a classic utility and a nod to a winning entry
|
||||
from 1986. Sometimes it takes 20 some years to do things the true IOCCC way.
|
||||
|
||||
The color of the remarks text this year was inspired by one of the stars
|
||||
of the [Most stellar - 2018/poikola](poikola/index.html).
|
||||
|
||||
The [Best use of python - 2018/endoh2](endoh2/index.html) is not what you might think it is.
|
||||
It is something completely different.
|
||||
@@ -42,7 +40,16 @@ The [Most likely to be awarded - 2018/ciura](ciura/index.html) has an amazing vo
|
||||
There are also nods to entries of the years [2000/bellard](../2000/bellard/index.html),
|
||||
[2015/yang](../2015/yang/index.html), ...
|
||||
|
||||
...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!
|
||||
|
||||
### Historical note:
|
||||
|
||||
In 2023-2024 the IOCCC website was drastically changed with the same look for
|
||||
every year and this changed the styling as well. But in 2018 different years had
|
||||
different stylesheets and we noted that:
|
||||
|
||||
> The color of the remarks text this year was inspired by one of the stars of
|
||||
the [Most stellar - 2018/poikola](poikola/index.html).
|
||||
|
||||
|
||||
## Remarks on some of submissions that did not win
|
||||
|
||||
@@ -42,12 +42,12 @@
|
||||
"entry_text" : "script to try entry"
|
||||
},
|
||||
{
|
||||
"file_path" : "deobfuscation.png",
|
||||
"file_path" : "spectrogram.png",
|
||||
"inventory_order" : 200,
|
||||
"OK_to_edit" : true,
|
||||
"display_as" : "image",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "Deobfuscation image"
|
||||
"entry_text" : "example spectrogram image"
|
||||
},
|
||||
{
|
||||
"file_path" : "2018_algmyr.tar.bz2",
|
||||
|
||||
@@ -83,7 +83,7 @@ from hearing. But even without training you can easily read along with the
|
||||
printed characters and have the sound make sense with the look of the
|
||||
characters.
|
||||
|
||||
See image [deobfuscation.png](deobfuscation.png) for an example spectrogram.
|
||||
See image [spectrogram.png](spectrogram.png) for an example spectrogram.
|
||||
|
||||
|
||||
### Limitations
|
||||
|
||||
@@ -448,7 +448,7 @@ could listen to a cacophony of chirpy characters.</p>
|
||||
from hearing. But even without training you can easily read along with the
|
||||
printed characters and have the sound make sense with the look of the
|
||||
characters.</p>
|
||||
<p>See image <a href="deobfuscation.png">deobfuscation.png</a> for an example spectrogram.</p>
|
||||
<p>See image <a href="spectrogram.png">spectrogram.png</a> for an example spectrogram.</p>
|
||||
<h3 id="limitations">Limitations</h3>
|
||||
<p>There is no error checking done when opening files, so expect segfaults if you
|
||||
provide the wrong path to a file.</p>
|
||||
@@ -545,7 +545,7 @@ myself. :(</p>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/algmyr/Makefile">Makefile</a> - entry Makefile</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/algmyr/prog.orig.c">prog.orig.c</a> - original source code</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/algmyr/try.sh">try.sh</a> - script to try entry</li>
|
||||
<li><a href="deobfuscation.png">deobfuscation.png</a> - Deobfuscation image</li>
|
||||
<li><a href="spectrogram.png">spectrogram.png</a> - example spectrogram image</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
|
||||
File renamed without changes.
@@ -62,12 +62,12 @@ This code has been compiled and tested on:
|
||||
* X86-FreeBSD 10.3, clang 3.4.1, -O0 and -O3
|
||||
* TCC 0.9.26 (x86-64), used as a proxy for [2001/bellard](../../2001/bellard/index.html)
|
||||
* UNIX V7 pcc (Johnson's C compiler) on a [simulated PDP-11/45](http://simh.trailing-edge.com/)
|
||||
(see the "**DEOBFUSCATION** section below for further detail)
|
||||
(see the "**SPOILER** section below for further detail)
|
||||
|
||||
<div style="margin-bottom:60em;margin-top:4em"><strong>Deobfuscation information below; scroll down.</strong></div>
|
||||
<div style="margin-bottom:60em;margin-top:4em"><strong>Spoiler below; scroll down.</strong></div>
|
||||
|
||||
|
||||
### DEOBFUSCATION:
|
||||
### SPOILER:
|
||||
|
||||
This started life as a personal challenge: write the shortest hex dump utility
|
||||
in C.
|
||||
@@ -172,7 +172,7 @@ but it uses more characters in just setting up its obfuscation than this entire
|
||||
solution!
|
||||
|
||||
|
||||
### MORE DEOBFUSCATION:
|
||||
### BIGGER SPOILER:
|
||||
|
||||
If you are unhappy with the way DEL (character 127) is handled,
|
||||
replace the cryptic expression `4<(4^l>>5)?l:46` with `32>l|l>126?46:l`.
|
||||
@@ -180,7 +180,7 @@ Both take the same number of characters, but the former is a bit more interestin
|
||||
Bonus question: how does the first expression work?
|
||||
|
||||
|
||||
### EVEN MORE DEOBFUSCATION (and some history):
|
||||
### BIGGEST SPOILER (and some history):
|
||||
|
||||
Technically, `char o[0];` is illegal (SS 6.7.6.2) according to ISO (N1570). And
|
||||
`char o[];` is a conditionally supported feature (SS 6.7.6.2, 6.10.8.3).
|
||||
|
||||
@@ -432,12 +432,12 @@ It adds several nice-to-have features, and allows salt-to-taste customizability.
|
||||
<li>X86-FreeBSD 10.3, clang 3.4.1, -O0 and -O3</li>
|
||||
<li>TCC 0.9.26 (x86-64), used as a proxy for <a href="../../2001/bellard/index.html">2001/bellard</a></li>
|
||||
<li>UNIX V7 pcc (Johnson’s C compiler) on a <a href="http://simh.trailing-edge.com/">simulated PDP-11/45</a>
|
||||
(see the “<strong>DEOBFUSCATION</strong> section below for further detail)</li>
|
||||
(see the “<strong>SPOILER</strong> section below for further detail)</li>
|
||||
</ul>
|
||||
<div style="margin-bottom:60em;margin-top:4em">
|
||||
<strong>Deobfuscation information below; scroll down.</strong>
|
||||
<strong>Spoiler below; scroll down.</strong>
|
||||
</div>
|
||||
<h3 id="deobfuscation">DEOBFUSCATION:</h3>
|
||||
<h3 id="spoiler">SPOILER:</h3>
|
||||
<p>This started life as a personal challenge: write the shortest hex dump utility
|
||||
in C.</p>
|
||||
<p>The self-imposed ground rules in the hunt for shortest:</p>
|
||||
@@ -514,12 +514,12 @@ and it is more interesting to remove characters by changing code than by filteri
|
||||
<a href="../../1986/bright/index.html">1986/bright</a> is similar in function,
|
||||
but it uses more characters in just setting up its obfuscation than this entire
|
||||
solution!</p>
|
||||
<h3 id="more-deobfuscation">MORE DEOBFUSCATION:</h3>
|
||||
<h3 id="bigger-spoiler">BIGGER SPOILER:</h3>
|
||||
<p>If you are unhappy with the way DEL (character 127) is handled,
|
||||
replace the cryptic expression <code>4<(4^l>>5)?l:46</code> with <code>32>l|l>126?46:l</code>.
|
||||
Both take the same number of characters, but the former is a bit more interesting.
|
||||
Bonus question: how does the first expression work?</p>
|
||||
<h3 id="even-more-deobfuscation-and-some-history">EVEN MORE DEOBFUSCATION (and some history):</h3>
|
||||
<h3 id="biggest-spoiler-and-some-history">BIGGEST SPOILER (and some history):</h3>
|
||||
<p>Technically, <code>char o[0];</code> is illegal (SS 6.7.6.2) according to ISO (N1570). And
|
||||
<code>char o[];</code> is a conditionally supported feature (SS 6.7.6.2, 6.10.8.3).
|
||||
However, it works in modern C implementations as an extension, including GCC,
|
||||
|
||||
@@ -161,7 +161,7 @@ determine which tool was correct when there were differences.
|
||||
> is presented for the Judge's consideration as a more accurate replacement for `iocccsize`.<br>
|
||||
> This obfuscated entry is derived from (and compatible with) that code,<br>
|
||||
> but due to obfuscation, has had some significant, deep changes for the contest.<br>
|
||||
> Nevertheless, the more clearly written code remains deobfuscation information about this entry.
|
||||
> Nevertheless, the more clearly written code remains a spoiler for this entry.
|
||||
|
||||
NB: `iocccsize` gets a different answer from `tac` on its own
|
||||
[iocccsize.c](%%REPO_URL%%/2018/iocccsize.c) source code;
|
||||
|
||||
@@ -511,7 +511,7 @@ determine which tool was correct when there were differences.</p>
|
||||
is presented for the Judge’s consideration as a more accurate replacement for <code>iocccsize</code>.<br>
|
||||
This obfuscated entry is derived from (and compatible with) that code,<br>
|
||||
but due to obfuscation, has had some significant, deep changes for the contest.<br>
|
||||
Nevertheless, the more clearly written code remains deobfuscation information about this entry.</p>
|
||||
Nevertheless, the more clearly written code remains a spoiler for this entry.</p>
|
||||
</blockquote>
|
||||
<p>NB: <code>iocccsize</code> gets a different answer from <code>tac</code> on its own
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/iocccsize.c">iocccsize.c</a> source code;
|
||||
|
||||
+10
-10
@@ -117,7 +117,7 @@ If you find yourself in an evolutionary dead end, try:
|
||||
0. Preface
|
||||
1. What it is
|
||||
2. How it works
|
||||
3. Hints (Keyboards, Options, Deobfuscation, Example Invocations)
|
||||
3. Hints (Keyboards, Options, Obfuscation, Example Invocations)
|
||||
4. Obfuscation (Techniques, Beauty)
|
||||
5. How to build (S and N Constants, Compilation, Portability, Installing)
|
||||
6. Final thoughts
|
||||
@@ -125,10 +125,10 @@ If you find yourself in an evolutionary dead end, try:
|
||||
|
||||
## **0. Preface**
|
||||
|
||||
**DEOBFUSCATION NOTES: A great deal of this document and the man page is full of
|
||||
deobfuscation information of different types; as such I would recommend that you try running the
|
||||
**OBFUSCATION NOTES: A great deal of this document and the man page is full of
|
||||
obfuscation information of different types; as such I would recommend that you try running the
|
||||
judges suggested invocations as well as running `make test` before you get into
|
||||
the document or the man page, unless you don't mind reading deobfuscation information. I don't reveal
|
||||
the document or the man page, unless you don't mind reading obfuscation information. I don't reveal
|
||||
much in the way of obfuscation however so if you just want documentation on the
|
||||
program, how to compile, etc. then there isn't need to heed this note.**
|
||||
|
||||
@@ -263,7 +263,7 @@ try and show the way they work) for those interested I will cite the summary:
|
||||
the fittest individuals dominating over the weaker ones.
|
||||
```
|
||||
|
||||
**DEOBFUSCATION NOTE: Some of the below might help you follow the code more
|
||||
**OBFUSCATION NOTE: Some of the below might help you follow the code more
|
||||
easily.**
|
||||
|
||||
For each *generation* there is a total of `N` *offspring*; generation 0 is
|
||||
@@ -387,7 +387,7 @@ can actually produce but there is a certain type of input error that might
|
||||
### Options
|
||||
</div>
|
||||
|
||||
Skip to the [deobfuscation section](#deobfuscation).
|
||||
Skip to the [obfuscation section](#obfuscation).
|
||||
|
||||
There are a number of options you can pass to the program besides the target
|
||||
string; some I will document here (the summary being in the man page). You can
|
||||
@@ -453,7 +453,7 @@ decent parameters - come to an answer here but if necessary kill the program.
|
||||
|
||||
4. Repeat the steps only this time don't enable quiet mode. Look at the
|
||||
offspring output. If you still don't see what it is and want to know see
|
||||
**[Deobfuscation information](#deobfuscation)** below.
|
||||
**[obfuscation information](#obfuscation)** below.
|
||||
|
||||
Finally any argument that doesn't start with a `-` passed into the program
|
||||
will become the target string. The same rule applies to the number for `-r`:
|
||||
@@ -558,8 +558,8 @@ it no longer cares about the `-` for option parsing. In other words options
|
||||
are only parsed if the first character is `-` and if the parser hasn't seen
|
||||
the `-` - *in an earlier element of `argv`. This is not a bug!*
|
||||
|
||||
<div id="deobfuscation">
|
||||
### Deobfuscation
|
||||
<div id="obfuscation">
|
||||
### Obfuscation
|
||||
</div>
|
||||
|
||||
Skip to [Example Invocations](#invocations).
|
||||
@@ -981,7 +981,7 @@ implementation of the Weasel program otherwise).
|
||||
There is obviously a reason `38` is the chosen size but the only hints I
|
||||
provide are those in **[How it works](#how)** and specifically an Easter egg I
|
||||
referenced there (it's *not the only Easter egg* but it's the only Easter egg I
|
||||
won't deobfuscate; yes this ironically and amusingly means I've left a rotten egg
|
||||
won't spoil; yes this ironically and amusingly means I've left a rotten egg
|
||||
somewhere!).
|
||||
|
||||
The Makefile simplifies how to reconfigure this value with the variable
|
||||
|
||||
+12
-10
@@ -470,17 +470,17 @@ while using more Cenozoic minded code migration, read <a href="rpm.html">rpm.htm
|
||||
<li>Preface</li>
|
||||
<li>What it is</li>
|
||||
<li>How it works</li>
|
||||
<li>Hints (Keyboards, Options, Deobfuscation, Example Invocations)</li>
|
||||
<li>Hints (Keyboards, Options, Obfuscation, Example Invocations)</li>
|
||||
<li>Obfuscation (Techniques, Beauty)</li>
|
||||
<li>How to build (S and N Constants, Compilation, Portability, Installing)</li>
|
||||
<li>Final thoughts</li>
|
||||
<li>Winning comments, thanks, dedications, links, etc.</li>
|
||||
</ol>
|
||||
<h2 id="preface"><strong>0. Preface</strong></h2>
|
||||
<p><strong>DEOBFUSCATION NOTES: A great deal of this document and the man page is full of
|
||||
deobfuscation information of different types; as such I would recommend that you try running the
|
||||
<p><strong>OBFUSCATION NOTES: A great deal of this document and the man page is full of
|
||||
obfuscation information of different types; as such I would recommend that you try running the
|
||||
judges suggested invocations as well as running <code>make test</code> before you get into
|
||||
the document or the man page, unless you don’t mind reading deobfuscation information. I don’t reveal
|
||||
the document or the man page, unless you don’t mind reading obfuscation information. I don’t reveal
|
||||
much in the way of obfuscation however so if you just want documentation on the
|
||||
program, how to compile, etc. then there isn’t need to heed this note.</strong></p>
|
||||
<p>I was at a loss on how to present my remarks; on the one hand I wanted to give
|
||||
@@ -580,7 +580,7 @@ try and show the way they work) for those interested I will cite the summary:</p
|
||||
principles first laid down by Charles Darwin of "survival of the fittest.".
|
||||
Since in nature, competition among individuals for scanty resources results in
|
||||
the fittest individuals dominating over the weaker ones.</code></pre>
|
||||
<p><strong>DEOBFUSCATION NOTE: Some of the below might help you follow the code more
|
||||
<p><strong>OBFUSCATION NOTE: Some of the below might help you follow the code more
|
||||
easily.</strong></p>
|
||||
<p>For each <em>generation</em> there is a total of <code>N</code> <em>offspring</em>; generation 0 is
|
||||
the pseudo-randomly initialised array <em>without parents.</em> Each offspring has its
|
||||
@@ -664,7 +664,7 @@ it includes a literal space <code>' '</code> but it doesn’t include other
|
||||
can actually produce but there is a certain type of input error that might
|
||||
<em>appear</em> to be a bug; see specifically <a href="#error">Input Error Example</a>.</p>
|
||||
<h3 id="options">Options</h3>
|
||||
<p>Skip to the <a href="#deobfuscation">deobfuscation section</a>.</p>
|
||||
<p>Skip to the <a href="#obfuscation">obfuscation section</a>.</p>
|
||||
<p>There are a number of options you can pass to the program besides the target
|
||||
string; some I will document here (the summary being in the man page). You can
|
||||
join options but there is a caveat with spaces and <code>-r</code> option as well as
|
||||
@@ -708,7 +708,7 @@ With the default string most modern systems shouldn’t take much time to - give
|
||||
decent parameters - come to an answer here but if necessary kill the program.</p></li>
|
||||
<li><p>Repeat the steps only this time don’t enable quiet mode. Look at the
|
||||
offspring output. If you still don’t see what it is and want to know see
|
||||
<strong><a href="#deobfuscation">Deobfuscation information</a></strong> below.</p></li>
|
||||
<strong><a href="#obfuscation">obfuscation information</a></strong> below.</p></li>
|
||||
</ol>
|
||||
<p>Finally any argument that doesn’t start with a <code>-</code> passed into the program
|
||||
will become the target string. The same rule applies to the number for <code>-r</code>:
|
||||
@@ -770,7 +770,7 @@ itself) and then the target string would <em>literally</em> be set to <code>-r</
|
||||
it no longer cares about the <code>-</code> for option parsing. In other words options
|
||||
are only parsed if the first character is <code>-</code> and if the parser hasn’t seen
|
||||
the <code>-</code> - <em>in an earlier element of <code>argv</code>. This is not a bug!</em></p>
|
||||
<h3 id="deobfuscation">Deobfuscation</h3>
|
||||
<h3 id="obfuscation">Obfuscation</h3>
|
||||
<p>Skip to <a href="#invocations">Example Invocations</a>.</p>
|
||||
<p>The Easter egg: Since Dawkins references the <a href="https://en.wikipedia.org/wiki/Infinite_monkey_theorem">Infinite Monkey Theorem</a> it
|
||||
simulates a monkey using a typewriter! This mode has the following changes:</p>
|
||||
@@ -990,7 +990,9 @@ invalid character (<code>'\n'</code> itself which means another line break) and
|
||||
finally the closing <code>'</code>. Specifically <code>isspace()</code> characters aren’t
|
||||
distinctly seen like a letter, digit or symbol is: <code>isprint('\n') == 0 && isspace('\n') == 1</code>. You can add these characters but the output will be
|
||||
rather confusing and hard to read.</p>
|
||||
<h2 id="obfuscation"><strong>4. Obfuscation</strong></h2>
|
||||
<div id="obfuscation">
|
||||
<h2 id="obfuscation-1"><strong>4. Obfuscation</strong></h2>
|
||||
</div>
|
||||
<h3 id="techniques">Techniques</h3>
|
||||
<p>Skip to <a href="#beauty">Beauty</a>.</p>
|
||||
<p>The following might be some of the techniques used in this entry:</p>
|
||||
@@ -1069,7 +1071,7 @@ implementation of the Weasel program otherwise).</p>
|
||||
<p>There is obviously a reason <code>38</code> is the chosen size but the only hints I
|
||||
provide are those in <strong><a href="#how">How it works</a></strong> and specifically an Easter egg I
|
||||
referenced there (it’s <em>not the only Easter egg</em> but it’s the only Easter egg I
|
||||
won’t deobfuscate; yes this ironically and amusingly means I’ve left a rotten egg
|
||||
won’t spoil; yes this ironically and amusingly means I’ve left a rotten egg
|
||||
somewhere!).</p>
|
||||
<p>The Makefile simplifies how to reconfigure this value with the variable
|
||||
<code>MAX_SIZE</code>:</p>
|
||||
|
||||
+9
-3
@@ -407,14 +407,20 @@ remains functional in what it does.</p>
|
||||
<p>The <a href="burton1/index.html">Best one-liner - 2018/burton1</a>, at 109 characters, is a
|
||||
short and sweet implementation of a classic utility and a nod to a winning entry
|
||||
from 1986. Sometimes it takes 20 some years to do things the true IOCCC way.</p>
|
||||
<p>The color of the remarks text this year was inspired by one of the stars
|
||||
of the <a href="poikola/index.html">Most stellar - 2018/poikola</a>.</p>
|
||||
<p>The <a href="endoh2/index.html">Best use of python - 2018/endoh2</a> is not what you might think it is.
|
||||
It is something completely different.</p>
|
||||
<p>The <a href="ciura/index.html">Most likely to be awarded - 2018/ciura</a> has an amazing vocabulary!</p>
|
||||
<p>There are also nods to entries of the years <a href="../2000/bellard/index.html">2000/bellard</a>,
|
||||
<a href="../2015/yang/index.html">2015/yang</a>, …</p>
|
||||
<p>…We’ll stop spouting deobfuscation information now. Have fun exploring all the entries!</p>
|
||||
<p>…We’ll stop spouting spoilers now. Have fun exploring all the entries!</p>
|
||||
<h3 id="historical-note">Historical note:</h3>
|
||||
<p>In 2023-2024 the IOCCC website was drastically changed with the same look for
|
||||
every year and this changed the styling as well. But in 2018 different years had
|
||||
different stylesheets and we noted that:</p>
|
||||
<blockquote>
|
||||
<p>The color of the remarks text this year was inspired by one of the stars of
|
||||
the <a href="poikola/index.html">Most stellar - 2018/poikola</a>.</p>
|
||||
</blockquote>
|
||||
<h2 id="remarks-on-some-of-submissions-that-did-not-win">Remarks on some of submissions that did not win</h2>
|
||||
<p>The number of entries that would have made it into the final rounds
|
||||
would have been much higher had some people paid attention to rules 2
|
||||
|
||||
@@ -65,7 +65,7 @@ So I had to sit down and solve those tricky questions with Nano and a C
|
||||
compiler.
|
||||
|
||||
|
||||
### A bit of deobfuscation:
|
||||
### Little spoilers:
|
||||
|
||||
Basically, the program draws animated ASCII art of the Big Dipper using Annie
|
||||
Jump Cannon's spectral classification system of stars and I think the colors of
|
||||
@@ -121,7 +121,7 @@ mostly is okay. YMMV, as they say.
|
||||
Please do not feed little babies chocolate.
|
||||
|
||||
|
||||
### Major deobfuscation:
|
||||
### Major spoilers:
|
||||
|
||||
I incorporated the [Fletcher 16 checksum
|
||||
algorithm](https://en.wikipedia.org/wiki/Fletcher%27s_checksum) into the source
|
||||
|
||||
@@ -429,7 +429,7 @@ file <em>poikola.pdf</em>.</p>
|
||||
this star and may I have some Easter eggs?”</p>
|
||||
<p>So I had to sit down and solve those tricky questions with Nano and a C
|
||||
compiler.</p>
|
||||
<h3 id="a-bit-of-deobfuscation">A bit of deobfuscation:</h3>
|
||||
<h3 id="little-spoilers">Little spoilers:</h3>
|
||||
<p>Basically, the program draws animated ASCII art of the Big Dipper using Annie
|
||||
Jump Cannon’s spectral classification system of stars and I think the colors of
|
||||
the output are as accurate as possible.</p>
|
||||
@@ -467,7 +467,7 @@ show anything at all. In other cases it won’t show all the colours right but
|
||||
mostly is okay. YMMV, as they say.</p>
|
||||
<h3 id="warnings-and-restrictions-required-by-law">Warnings and restrictions required by law:</h3>
|
||||
<p>Please do not feed little babies chocolate.</p>
|
||||
<h3 id="major-deobfuscation">Major deobfuscation:</h3>
|
||||
<h3 id="major-spoilers">Major spoilers:</h3>
|
||||
<p>I incorporated the <a href="https://en.wikipedia.org/wiki/Fletcher%27s_checksum">Fletcher 16 checksum
|
||||
algorithm</a> into the source
|
||||
for security reasons; it might be challenging to make changes without breaking
|
||||
|
||||
@@ -42,12 +42,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" : "2018_yang.tar.bz2",
|
||||
|
||||
+13
-13
@@ -112,7 +112,7 @@ PROG= prog
|
||||
#
|
||||
OBJ= ${PROG}.o
|
||||
CSRC= ${PROG}.o
|
||||
DATA= deobfuscation.html
|
||||
DATA= obfuscation.html
|
||||
TARGET= left right shift msg0 msg1 msg2
|
||||
#
|
||||
ALT_OBJ=
|
||||
@@ -169,17 +169,17 @@ generated5.c: ${PROG}.c right shift
|
||||
@${RM} -f $@
|
||||
./shift < $< | ./right > $@
|
||||
|
||||
#################
|
||||
# deobfuscation #
|
||||
#################
|
||||
############
|
||||
# spoilers #
|
||||
############
|
||||
|
||||
deobfuscation: deobfuscations
|
||||
spoiler: spoilers
|
||||
|
||||
deobfuscations:
|
||||
@echo "Really show deobfuscation information? Please build this target to confirm:"
|
||||
@echo " i_give_up_show_me_the_deobfuscation"
|
||||
spoilers:
|
||||
@echo "Really show spoilers? Please build this target to confirm:"
|
||||
@echo " i_give_up_show_me_the_spoilers"
|
||||
|
||||
i_give_up_show_me_the_deobfuscation: msg3 msg4 msg5 msg6 msg7 msg8 msg9
|
||||
i_give_up_show_me_the_spoilers: msg3 msg4 msg5 msg6 msg7 msg8 msg9
|
||||
|
||||
msg3: generated6.c
|
||||
$(CC) $(CFLAGS) $< -o $@
|
||||
@@ -229,11 +229,11 @@ generated11.c: generated10.c right shift
|
||||
generated12.c: msg7
|
||||
./msg7 > $@
|
||||
|
||||
#########################################
|
||||
# deobfuscation for the truly_impatient #
|
||||
#########################################
|
||||
####################################
|
||||
# spoilers for the truly impatient #
|
||||
####################################
|
||||
|
||||
deobfuscation_for_the_truly_impatient: i_just_want_to_see_the_final_message
|
||||
spoiler_for_the_truly_impatient: i_just_want_to_see_the_final_message
|
||||
|
||||
i_just_want_to_see_the_final_message: msg11.txt
|
||||
@${CAT} $<
|
||||
|
||||
+1
-1
@@ -143,7 +143,7 @@ but not limited to the "1125" at line 4 as opposed to "1025", to satisfy
|
||||
- CRC32 of the code is embedded in the code itself.
|
||||
|
||||
- Process for writing [prog.c](%%REPO_URL%%/2018/yang/prog.c) is available in
|
||||
[deobfuscation.html](deobfuscation.html).
|
||||
[obfuscation.html](obfuscation.html).
|
||||
|
||||
|
||||
### Compatibility:
|
||||
|
||||
@@ -487,7 +487,7 @@ but not limited to the “1125” at line 4 as opposed to “1025”, to satisfy
|
||||
<code>-Waggresive-loop-optimizations</code>.</p></li>
|
||||
<li><p>CRC32 of the code is embedded in the code itself.</p></li>
|
||||
<li><p>Process for writing <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/yang/prog.c">prog.c</a> is available in
|
||||
<a href="deobfuscation.html">deobfuscation.html</a>.</p></li>
|
||||
<a href="obfuscation.html">obfuscation.html</a>.</p></li>
|
||||
</ul>
|
||||
<h3 id="compatibility">Compatibility:</h3>
|
||||
<p><code>Nuko</code> and the rotated tools accept only ASCII files where each
|
||||
@@ -538,7 +538,7 @@ will look weird after rotation, for example.</p>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/yang/Makefile">Makefile</a> - entry Makefile</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/yang/prog.orig.c">prog.orig.c</a> - original source code</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/yang/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.
+5
-5
@@ -62,13 +62,13 @@ read -r -n 1 -p "Press any key to run: ./msg2: "
|
||||
echo 1>&2
|
||||
./msg2
|
||||
|
||||
read -r -p "Do you wish to see some of the deobfuscation information (Y/N)? "
|
||||
read -r -p "Do you wish to see some of the spoilers? (Y/N)? "
|
||||
if [[ "$REPLY" == "Y" || "$REPLY" == "y" ]]; then
|
||||
echo "$ make deobfuscations" 1>&2
|
||||
make deobfuscations
|
||||
echo "$ make spoilers" 1>&2
|
||||
make spoilers
|
||||
rm -f generated*.c msg*.c
|
||||
echo "$ make i_give_up_show_me_the_deobfuscation"
|
||||
make i_give_up_show_me_the_deobfuscation
|
||||
echo "$ make i_give_up_show_me_the_spoilers"
|
||||
make i_give_up_show_me_the_spoilers
|
||||
echo 1>&2
|
||||
for i in 0 1 2 3 4 5 6 7 8; do
|
||||
read -r -n 1 -p "Press any key to run: ./msg$i: "
|
||||
|
||||
Reference in new issue
Block a user