Remove hint.html and index.html
As per discussions on GitHub the index.html and hint.html files should be deleted in favour of README.md files (from any .text/.txt/.markdown/.md files which will be turned into README.md in an upcoming commit).
This commit is contained in:
1 parent
ee8a36310f
commit
77fb0f11a2
143 files changed
-28606
No files matched your search
@@ -1,151 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="GENERATOR" content="mkd2html 2.1.5a DL=DISCOUNT">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
|
||||
<link rel="stylesheet"
|
||||
type="text/css"
|
||||
href="../hint.css">
|
||||
<title>Balanced use of obfuscation - Gold award</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Balanced use of obfuscation - Gold award</h1>
|
||||
|
||||
<p>Adar Zeitak<br>
|
||||
<a href="mailto:aa4z2@walla.co.il">aa4z2@walla.co.il</a></p>
|
||||
|
||||
<h2>Judges' comments:</h2>
|
||||
|
||||
<h3>To build:</h3>
|
||||
|
||||
<pre><code>make zeitak
|
||||
</code></pre>
|
||||
|
||||
<h3>To run:</h3>
|
||||
|
||||
<pre><code>./zeitak < file.c
|
||||
</code></pre>
|
||||
|
||||
<p>where file.c is the file to be checked for nesting errors. For example, you may
|
||||
try incorrect.c and the program itself.</p>
|
||||
|
||||
<h3>Try:</h3>
|
||||
|
||||
<pre><code>./zeitak < zeitak.c
|
||||
./zeitak < incorrect.c
|
||||
</code></pre>
|
||||
|
||||
<h3>Selected Judges Remarks:</h3>
|
||||
|
||||
<p>This is an extremely subtle and twisted piece of Gold award winning code!</p>
|
||||
|
||||
<p>The judges had spent a considerable amount of time analyzing this entry.
|
||||
At one point we spent
|
||||
<a href="https://twitter.com/ioccc/status/252162898800033792">18 minutes</a>
|
||||
just to understand 18 key characters of this code.</p>
|
||||
|
||||
<p>The file zeitak_deobfucate.c provides a version that has been slightly
|
||||
deobfuscated. You may find reading that file helpful in your attempt
|
||||
to understand this extremely subtle entry.</p>
|
||||
|
||||
<h2>Author’s comments:</h2>
|
||||
|
||||
<h3>Nesting Errors Detector</h3>
|
||||
|
||||
<h4>What does it do</h4>
|
||||
|
||||
<p>As you have probably understood by looking at the source*, this program has
|
||||
something to do with parenthesis (and equality of opening and closing
|
||||
parenthesis, if you look close enough). It goes over the file given to it and
|
||||
checks that every opening (, [, or { has a matching closing one and
|
||||
vice versa. It also checks that every “ or ‘ is closed.</p>
|
||||
|
||||
<p>If an error is detected, an error message will be printed. If the problem
|
||||
is a superfluous closing bracket, it will even print a few characters
|
||||
around it’s position.</p>
|
||||
|
||||
<ul>
|
||||
<li>Make sure you view the source with 4 spaces tab width.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h4>Features</h4>
|
||||
|
||||
<ul>
|
||||
<li><p>Ignores parenthesis inside strings or character constants, so no errors
|
||||
will be detected in the following line:</p>
|
||||
|
||||
<pre><code> printf(")");
|
||||
</code></pre></li>
|
||||
<li><p>Doesn’t get confused by the 1984/anonymous entry!</p></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h4>Mis-Features</h4>
|
||||
|
||||
<ul>
|
||||
<li><p>Escapes (e.g. <code>\"</code>) are ignored, so the following line will produce
|
||||
an error:</p>
|
||||
|
||||
<pre><code>printf("\"");
|
||||
</code></pre></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h4>Obfuscation</h4>
|
||||
|
||||
<p>IOCCC winners already contain entries without digits, control-flow
|
||||
keywords and certain operators in their source. This entry has an
|
||||
even more limited source, that is:</p>
|
||||
|
||||
<ul>
|
||||
<li>Without any digits.</li>
|
||||
<li>Without any character constants.</li>
|
||||
<li>Without using functions from headers other than stdio.</li>
|
||||
<li>Without any control-flow keywords (not even the ?: operator).</li>
|
||||
<li>Without any arithmetic or logic operators!</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>So, what’s left? Parenthesis, and lots of them, as looking at the source will
|
||||
reveal immediately. The main obfuscation is building the whole algorithm using
|
||||
only function calls, typecasts, array lookups and pointer operators.</p>
|
||||
|
||||
<p>Additional obfuscations include:</p>
|
||||
|
||||
<ul>
|
||||
<li>Extensive reuse of identifiers: Macros share names with variables, inner
|
||||
curly braces scopes contain variables with names identical to those in the
|
||||
outer scopes and some of the variables have different uses in different
|
||||
parts of the program. Even the large array has more than one use.</li>
|
||||
<li>A complicated data structure with “unused” fields.</li>
|
||||
<li>Mostly one-letter identifiers.</li>
|
||||
<li>Complex recursion: A function might call itself once, twice, or not at all.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h4>Compilation/Running Notes</h4>
|
||||
|
||||
<ul>
|
||||
<li><p>The program requires <code>char</code> to be one byte and pointers to be
|
||||
at least two bytes long.</p></li>
|
||||
<li><p>The program was tested on the following platforms:</p></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p><strong> Ubuntu 9.04 32-bit with GCC
|
||||
</strong> Windows 7 32-bit with GCC
|
||||
** Windows 7 32-bit with OpenWatcom</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<TABLE><TR>
|
||||
<TD><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a></TD>
|
||||
<TD><P>© Copyright 1984-2015,
|
||||
<A HREF="/judges.html">Leo Broukhis, Simon Cooper, Landon Curt Noll</A>
|
||||
- All rights reserved<BR>
|
||||
This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</P></TD>
|
||||
<TD> <!--<a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>--></TD>
|
||||
</TR></TABLE>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user