IOCCC image by Matt Zucker

The International Obfuscated C Code Contest

1998/dlowe - Best utility

Author:

To build:

    make all

There is an alternate version available. See Alternate code below for more details.

To use:

    ./dlowe < file > pootfile

    ./dlowe < file

Bugs and (Mis)features:

The current status of this entry is:

STATUS: missing or dead link or links - please provide it or them

For more detailed information see 1998/dlowe in bugs.html.

Try:

    ./dlowe < README.md
    ./dlowe < README.md > README.poot.md

Why is there different output?

Also try:

    ./try.sh

Did you spot the Easter egg there?

Alternate code:

The original entry was just a text based pootifier. This alternate version is that program.

Alternate build:

    make alt

Alternate use:

    ./dlowe.alt < file > pootfile

What’s the difference between this and dlowe?

Alternate try:

    ./try.alt.sh

Did you spot the Easter egg there?

Judges’ remarks:

Why could this this entry be considered a utility? Well because it is able to convert content-free web pages into useful web pages.

To see why, try using an online version, modified for use as a CGI program: https://web.archive.org/web/20001025182142/http://pootpoot.com/poot/pootify?URL=http://www.microsoft.com

We are sure that you will find that new web page to make a much more consistent level of quality. :-)

Historical remarks:

A CGI script such as:

    #!/bin/sh
    # pootify - a sample CGI pootifier
    #
    POOT="/usr/local/bin/dlowe"
    LYNX="/usr/local/bin/lynx"
    ECHO="/usr/bin/echo"
    EXPR="/usr/bin/expr"
    ${ECHO} "Content-type: text/html"
    ${ECHO}
    if [ -z "${QUERY_STRING}" ]; then
        ${ECHO} "QUERY_STRING not found"
    else
        URL=`${EXPR} "$QUERY_STRING" : '[Uu][Rr][Ll]=\(.*\)'`
        if [ -z "${URL}" ]; then
            ${ECHO} "No URL given in QUERY_STRING"
        elif [ X`${EXPR} "${URL}" : '[Ff][Ii][Ll][Ee]:'` != X0 ]; then
            ${ECHO} "file: based URLs are not allowed"
        else
            ${LYNX} -restrictions=all -source "${URL}" | ${POOT}
        fi
    fi

can be used to pootify web pages. This has been added as pootify.cgi.sh which forbids file:// based URLs and which uses lynx(1) with the option referred to above. This will not, of course, render it as html but rather show the modified html. Nevertheless, this has NOT been tested as a CGI script with a webserver to display a pootified web page.

The pootify.sh script has also been added which is a modification to the above script which can be used to render html files locally with the added bonus that one can use file:// URLs. If one wants a CGI script they should use the above one instead. You can use the script pootify.sh, however, to download and generate html files that you can look at locally in a browser or pipe through less(1). For instance:

    ./pootify.sh URL=https://microsoft.com | less

    ./pootify.sh -r URL=https://microsoft.com > ms.html

where the first one would show the text as rendered but without links, images etc. and the second one would write the html to ms.html so that you could open it in a browser.

For an old example of it working as a CGI script see https://web.archive.org/web/20040326083431/http://www.pootpoot.com/poot/pootify/?URL=http%3A%2F%2Fwww.ioccc.org.

Author’s remarks:

This program is a text filter, it reads stdin and outputs the “corrected” text to stdout.

It is obfuscated in that the code is painful to look at and its purpose and mode of operation are not terribly obvious. More importantly, it is a tool for further obfuscation, in that it can take any text and render it unintelligible.

Suggested uses: add to your MANROFFSEQ environment variable for man page enjoyment; use it to turn the GPL into the PPL; see what happens when you run perl4 programs after they’ve been run through it; “encrypt” sensitive (but unnecessary) documents…

Inventory for 1998/dlowe

Primary files

Secondary files


Jump to: top