From 94bdb2c1d85cb7c094241baede2360ac4234f317 Mon Sep 17 00:00:00 2001
From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com>
Date: Mon, 15 Jul 2024 10:46:22 -0700
Subject: [PATCH] Add unobfuscated alt code to 2020/otterness
This code was found on the author's web page about the entry and has
been added as prog.alt.c. I added the try.alt.sh script as well.
Manifest updated and rebuilt .entry.json and index.html files.
---
2020/otterness/.entry.json | 16 +++
2020/otterness/.gitignore | 1 +
2020/otterness/Makefile | 7 +-
2020/otterness/README.md | 41 ++++++
2020/otterness/index.html | 22 +++
2020/otterness/prog.alt.c | 284 +++++++++++++++++++++++++++++++++++++
2020/otterness/try.alt.sh | 26 ++++
thanks-for-help.html | 5 +-
thanks-for-help.md | 5 +-
tmp/manifest.csv | 2 +
tmp/manifest.numbers | Bin 1355869 -> 1356923 bytes
tmp/path_list.found.txt | 2 +
tmp/path_list.manifest.txt | 2 +
tmp/path_list.required.txt | 2 +
14 files changed, 411 insertions(+), 4 deletions(-)
create mode 100644 2020/otterness/prog.alt.c
create mode 100755 2020/otterness/try.alt.sh
diff --git a/2020/otterness/.entry.json b/2020/otterness/.entry.json
index 71b6d2aef..1aaab4556 100644
--- a/2020/otterness/.entry.json
+++ b/2020/otterness/.entry.json
@@ -33,6 +33,14 @@
"display_via_github" : true,
"entry_text" : "original source code"
},
+ {
+ "file_path" : "try.alt.sh",
+ "inventory_order" : 100,
+ "OK_to_edit" : true,
+ "display_as" : "shellscript",
+ "display_via_github" : true,
+ "entry_text" : "script to try alternate code"
+ },
{
"file_path" : "try.sh",
"inventory_order" : 100,
@@ -41,6 +49,14 @@
"display_via_github" : true,
"entry_text" : "script to try entry"
},
+ {
+ "file_path" : "prog.alt.c",
+ "inventory_order" : 120,
+ "OK_to_edit" : true,
+ "display_as" : "c",
+ "display_via_github" : true,
+ "entry_text" : "unobfuscated source code"
+ },
{
"file_path" : "cvikl.mid",
"inventory_order" : 150,
diff --git a/2020/otterness/.gitignore b/2020/otterness/.gitignore
index b89f0ad1b..454f4b5d8 100644
--- a/2020/otterness/.gitignore
+++ b/2020/otterness/.gitignore
@@ -6,6 +6,7 @@ indent
indent.c
indent.o
prog
+prog.alt
prog.orig
!cvikl.mid
!entertainer.mid
diff --git a/2020/otterness/Makefile b/2020/otterness/Makefile
index 1a89cefc6..9cc95acc2 100644
--- a/2020/otterness/Makefile
+++ b/2020/otterness/Makefile
@@ -115,8 +115,8 @@ OBJ= ${PROG}.o
DATA=
TARGET= ${PROG}
#
-ALT_OBJ=
-ALT_TARGET=
+ALT_OBJ= ${PROG}.alt.o
+ALT_TARGET= ${PROG}.alt
#################
@@ -139,6 +139,9 @@ ${PROG}: ${PROG}.c
alt: data ${ALT_TARGET}
@${TRUE}
+${PROG}.alt: ${PROG}.alt.c
+ ${CC} ${CFLAGS} $< -o $@ ${LDFLAGS}
+
# data files
#
data: ${DATA}
diff --git a/2020/otterness/README.md b/2020/otterness/README.md
index 2ab1f5144..986a5ca00 100644
--- a/2020/otterness/README.md
+++ b/2020/otterness/README.md
@@ -4,6 +4,9 @@
make
```
+There is an unobfuscated version for those who wish to see the original final
+prior to obfuscation. See [Alternate code](#alternate-code) below.
+
### Bugs and (Mis)features:
@@ -33,6 +36,37 @@ Now play `output.mid` and `output2.mid` in an audio player that can play MIDI
files.
+## Alternate code:
+
+### NOTICE to those who wish for a greater challenge:
+
+**If you want a greater challenge, don't check this version**:
+just try to understand the program via the entry source.
+
+If you get stuck, come back and take a look at the alternate, unobfuscated code,
+described by the author as:
+
+> If you're curious about the un-obfuscated program that I originally wrote,
+this was the final working version. I tried to keep the functions names and
+comments understandable, but it will make a lot more sense to readers familiar
+with the MIDI "SMF" file format.
+
+... at their [web page about the
+entry](https://www.nathanotterness.com/2021/04/obfuscated_c_2020.html).
+
+
+## Alternate use:
+
+Use `prog.alt` as you would `prog`.
+
+
+### Alternate try:
+
+```
+ ./try.alt.sh
+```
+
+
## Judges' remarks:
In an entry that boasts not using literals, one would expect to see
@@ -105,6 +139,13 @@ especially true for "live performance" .mid files.
correctly parse, but I have rarely seen this in practice. The largest
cause of program failures, in my experience, has been Limitation 2.
+### NOTICE to those who wish for a greater challenge:
+
+**If you want a greater challenge, don't read any further**:
+just try to understand the program via the source.
+
+If you get stuck, come back and read below for additional hints and information.
+
#### Obfuscation notes
diff --git a/2020/otterness/index.html b/2020/otterness/index.html
index ecdf516f2..bce40cad3 100644
--- a/2020/otterness/index.html
+++ b/2020/otterness/index.html
@@ -409,6 +409,8 @@ Location: US - United States of America
To build:
make
+There is an unobfuscated version for those who wish to see the original final
+prior to obfuscation. See Alternate code below.
Bugs and (Mis)features:
The current status of this entry is:
STATUS: INABIAF - please DO NOT fix
@@ -419,6 +421,24 @@ Location: US - United States of America
./try.sh
Now play output.mid and output2.mid in an audio player that can play MIDI
files.
+Alternate code:
+NOTICE to those who wish for a greater challenge:
+If you want a greater challenge, don’t check this version:
+just try to understand the program via the entry source.
+If you get stuck, come back and take a look at the alternate, unobfuscated code,
+described by the author as:
+
+If you’re curious about the un-obfuscated program that I originally wrote,
+this was the final working version. I tried to keep the functions names and
+comments understandable, but it will make a lot more sense to readers familiar
+with the MIDI “SMF” file format.
+
+… at their web page about the
+entry.
+Alternate use:
+Use prog.alt as you would prog.
+Alternate try:
+ ./try.alt.sh
In an entry that boasts not using literals, one would expect to see
straightforward ways to produce small integers like !(x^x)<<!(x^x), etc. but
@@ -537,7 +557,9 @@ very thoroughly).
prog.c - entry source code
Makefile - entry Makefile
prog.orig.c - original source code
+try.alt.sh - script to try alternate code
try.sh - script to try entry
+prog.alt.c - unobfuscated source code
cvikl.mid - sample MIDI file
entertainer.mid - sample MIDI file
diff --git a/2020/otterness/prog.alt.c b/2020/otterness/prog.alt.c
new file mode 100644
index 000000000..f1a520cb4
--- /dev/null
+++ b/2020/otterness/prog.alt.c
@@ -0,0 +1,284 @@
+#include
+#include
+#include
+#include
+
+uint16_t ReadBigEndian16(uint8_t *c) {
+ return *(c + 1) | (uint16_t) (*c) << 8;
+}
+
+void WriteBigEndian16(uint8_t *c, uint16_t v) {
+ c[1] = v;
+ c[0] = v >> 8;
+}
+
+uint32_t ReadBigEndian32(uint8_t *c) {
+ return (uint32_t) ReadBigEndian16(c) << 16 | ReadBigEndian16(c + 2);
+}
+
+void WriteBigEndian32(uint8_t *c, uint32_t v) {
+ WriteBigEndian16(c + 2, v);
+ WriteBigEndian16(c, v >> 16);
+}
+
+// Fills in the *value. Returns the length in bytes.
+int ReadVarInt(uint8_t *content, uint32_t *value) {
+ int i;
+ uint8_t b;
+ *value = 0;
+ for (i = 0; i < 4; i++) {
+ b = content[i];
+ *value |= b & 0x7f;
+ if (!(b & 0x80)) return i + 1;
+ *value = *value << 7;
+ }
+ fprintf(stderr, "Bad variable int.\n");
+ exit(1);
+}
+
+uint8_t HighestBit(uint32_t n) {
+ uint8_t r = 1;
+ if (!n) return 0;
+ while (n >>= 1) r++;
+ return r;
+}
+
+uint8_t VarIntBytes(uint32_t n) {
+ uint8_t bits = HighestBit(n);
+ return bits / 7 + !!(bits % 7);
+}
+
+int WriteVarInt(uint32_t n, uint8_t *c) {
+ uint8_t bytes_needed = VarIntBytes(n);
+ *c = 0;
+ if (!n) return bytes_needed;
+ if (bytes_needed > 4) {
+ fprintf(stderr, "Int too big for MIDI.\n");
+ exit(1);
+ }
+ c += bytes_needed - 1;
+ while (n != 0) {
+ *c = n & 0x7f;
+ n = n >> 7;
+ c--;
+ }
+ return bytes_needed;
+}
+
+// Advances past the next MIDI message, returning a pointer after it, and
+// updating running status if necessary.
+uint8_t* AdvancePastMessage(uint8_t *c, uint8_t *running_status) {
+ uint32_t tmp;
+ uint8_t b;
+ switch (*c) {
+ case 0xf0:
+ case 0xf7:
+ // Skip past system exclusive messages
+ *running_status = 0;
+ c++;
+ c += ReadVarInt(c, &tmp);
+ return c + tmp;
+ case 0xff:
+ // Skip past meta events
+ *running_status = 0;
+ c++;
+ c++;
+ c += ReadVarInt(c, &tmp);
+ return c + tmp;
+ }
+ // We're assuming this is a channel voice message now.
+ if (*c & 0x80) {
+ // Advance past the new status byte.
+ b = *c;
+ c++;
+ *running_status = b;
+ } else {
+ b = *running_status;
+ }
+ // Just test the different channel voice message types.
+ switch (b >> 4) {
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 14:
+ return c + 2;
+ case 12:
+ case 13:
+ return c + 1;
+ }
+ fprintf(stderr, "Bad message status byte: %x\n", b);
+ exit(1);
+ return c;
+}
+
+// Assumes we're pointing at the start of a MTrk. Returns a pointer to the
+// start of the next track.
+uint8_t* GetTrackTicks(uint8_t *c, uint32_t *ticks) {
+ uint32_t length, tmp;
+ uint8_t *end;
+ uint8_t running_status = 0;
+ *ticks = 0;
+ if (c[3] != 'k') {
+ fprintf(stderr, "Not at a track start.\n");
+ exit(1);
+ }
+ length = ReadBigEndian32(c + 4);
+ c += 8;
+ end = c + length;
+ while (c < end) {
+ c += ReadVarInt(c, &tmp);
+ *ticks += tmp;
+ c = AdvancePastMessage(c, &running_status);
+ }
+ return c;
+}
+
+// Requires a pointer to the start of the first track, and the total number of
+// tracks.
+uint32_t GetHighestTrackTicks(uint8_t *c, int track_count) {
+ uint32_t tmp, max = 0;
+ int i;
+ for (i = 0; i < track_count; i++) {
+ c = GetTrackTicks(c, &tmp);
+ fprintf(stderr, "Track %d: %u ticks\n", i, (unsigned) tmp);
+ if (tmp > max) max = tmp;
+ }
+ return max;
+}
+
+void DumpHex(uint8_t *data, int size) {
+ int i;
+ for (i = 0; i < size; i++) {
+ fprintf(stderr, "%p + %d: 0x%02x\n", data, i, data[i]);
+ }
+}
+
+uint8_t *beat = NULL;
+uint8_t *note_off_note = NULL;
+// Writes a beat at the given offset. Requires the beat size.
+uint8_t* WriteBeat(uint8_t *c, int i, int bs) {
+ uint8_t n = 42, v = 80;
+ if ((i % 4) == 0) {
+ n = 36;
+ v = 120;
+ } else if ((i % 4) == 2) {
+ n = 40;
+ v = 100;
+ }
+ beat[1] = n;
+ beat[2] = v;
+ *note_off_note = n;
+ memcpy(c, beat, bs);
+ return c + bs;
+}
+
+void WriteBootsAndCats(uint8_t *c, uint32_t length) {
+ uint16_t ticks_per_beat, track_count;
+ uint32_t beats_to_generate, tmp, data_size, beat_size;
+ uint8_t *cur, *data = NULL;
+ track_count = ReadBigEndian16(c + 10);
+ ticks_per_beat = ReadBigEndian16(c + 12) >> 1;
+ if (ticks_per_beat >> 15) {
+ fprintf(stderr, "SMPTE timing isn't supported\n");
+ exit(1);
+ }
+ beats_to_generate = GetHighestTrackTicks(c + 14, track_count) / ticks_per_beat;
+ // A "beat" is simply a note-on followed by a note-off event. The tricky part
+ // is the delta time may be more than one byte. We'll assume running status.
+ // Note on = 00
+ // Note off = 00
+ beat_size = 5 + VarIntBytes(ticks_per_beat);
+ beat = malloc(beat_size);
+ if (!beat) {
+ fprintf(stderr, "Failed allocating beat.\n");
+ exit(1);
+ }
+ // This requires 8 bytes in the track header + 4 bytes for end-of-track +
+ // the track data, plus an additional byte to set up running status in the
+ // first beat.
+ data_size = beats_to_generate * beat_size + 13;
+ data = malloc(data_size);
+ if (!data) {
+ fprintf(stderr, "Failed allocating data.\n");
+ exit(1);
+ }
+ fprintf(stderr, "Data size: %d (0x%x), beat size %d, # beats %d\n",
+ (int) data_size, data_size, beat_size, beats_to_generate);
+ memcpy(data, "MTrk", 4);
+ WriteBigEndian32(data + 4, data_size - 8);
+ fprintf(stderr, "Data size: %d\n", (int) data_size);
+
+ // Build the "beat" data
+ cur = beat;
+ *cur++ = 0;
+ // Initial note number and velocity.
+ *cur++ = 36;
+ *cur++ = 120;
+ cur += WriteVarInt(ticks_per_beat, cur);
+ // Keep a pointer to where to write the note to turn off
+ note_off_note = cur;
+ *cur++ = 36;
+ // The note-off velocity is 0.
+ *cur = 0;
+
+ cur = data + 8;
+ // Write the first note-on and off:
+ *cur++ = 0;
+ *cur++ = 0x99;
+ memcpy(cur, beat + 1, beat_size - 1);
+ cur += beat_size - 1;
+ for (tmp = 1; tmp < beats_to_generate; tmp++) {
+ cur = WriteBeat(cur, tmp, beat_size);
+ }
+ *cur++ = 0;
+ *cur++ = 0xff;
+ *cur++ = 0x2f;
+ *cur = 0;
+ // Update the original MIDI header to increment the track count and make sure
+ // the format is 1.
+ c[9] = 1;
+ WriteBigEndian16(c + 10, track_count + 1);
+ fwrite(c, length, 1, stdout);
+ fwrite(data, data_size, 1, stdout);
+}
+
+int main(int argc, char **argv) {
+ FILE *f = NULL;
+ uint8_t *content = NULL;
+ long size = 0;
+ int result;
+ if (argc != 2) {
+ fprintf(stderr, "Usage: %s \n", argv[0]);
+ return 1;
+ }
+ f = fopen(argv[1], "rb");
+ if (!f) {
+ fprintf(stderr, "Coudn't open %s\n", argv[1]);
+ return 1;
+ }
+ fseek(f, 0, SEEK_END);
+ size = ftell(f);
+ fseek(f, 0, SEEK_SET);
+ content = malloc(size);
+ if (!content) {
+ fprintf(stderr, "Couldn't allocate content buffer.\n");
+ fclose(f);
+ return 1;
+ }
+ result = fread(content, size, 1, f);
+ fclose(f);
+ if (result != 1) {
+ fprintf(stderr, "Couldn't read %s.\n", argv[1]);
+ free(content);
+ return 1;
+ }
+ if ((content[3] != 'd') || (content[7] != 6)) {
+ fprintf(stderr, "Bad MIDI file.\n");
+ free(content);
+ return 1;
+ }
+ WriteBootsAndCats(content, size);
+ free(content);
+ return 0;
+}
diff --git a/2020/otterness/try.alt.sh b/2020/otterness/try.alt.sh
new file mode 100755
index 000000000..5adc123c4
--- /dev/null
+++ b/2020/otterness/try.alt.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+#
+# try.sh - demonstrate IOCCC entry 2020/otterness alt code
+#
+
+# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
+# this way allows us to have the user specify a different compiler in an easy
+# way.
+[[ -z "$CC" || ! -f "$CC" || ! -x "$CC" ]] && CC="cc"
+
+make CC="$CC" alt >/dev/null || exit 1
+
+# clear screen after compilation so that only the entry is shown
+clear
+
+read -r -n 1 -p "Press any key to run: ./prog.alt < cvikl.mid > output.mid: "
+echo 1>&2
+./prog.alt < cvikl.mid > output.mid
+echo "Now play output.wav in an audio player that can play MIDI files." 1>&2
+echo 1>&2
+
+read -r -n 1 -p "Press any key to run: ./prog.alt < entertainer.mid > output2.mid: "
+echo 1>&2
+./prog.alt < entertainer.mid > output2.mid
+echo "Now play output2.wav in an audio player that can play MIDI files." 1>&2
+echo 1>&2
diff --git a/thanks-for-help.html b/thanks-for-help.html
index e219a1aee..a048be0d9 100644
--- a/thanks-for-help.html
+++ b/thanks-for-help.html
@@ -4659,7 +4659,10 @@ Tolkien.
entertainer.mid from the URLs we suggested so
that one need not download them and to make sure they can always be obtained
even if the domain or link goes dead.
-Cody also added the try.sh script.
+Cody also added the try.sh script and the
+try.alt.sh script for the author’s
+unobfuscated version that Cody added as
+prog.alt.c.
Winning entry source code: prog.c
diff --git a/thanks-for-help.md b/thanks-for-help.md
index 37691468b..549e44779 100644
--- a/thanks-for-help.md
+++ b/thanks-for-help.md
@@ -6038,7 +6038,10 @@ Tolkien](https://www.tolkienestate.com/life/biography/).
that one need not download them and to make sure they can always be obtained
even if the domain or link goes dead.
-Cody also added the [try.sh](%%REPO_URL%%/2020/otterness/try.sh) script.
+Cody also added the [try.sh](%%REPO_URL%%/2020/otterness/try.sh) script and the
+[try.alt.sh](%%REPO_URL%%/2020/otterness/try.alt.sh) script for the author's
+unobfuscated version that Cody added as
+[prog.alt.c](%%REPO_URL%%/2020/otterness/prog.alt.c).
diff --git a/tmp/manifest.csv b/tmp/manifest.csv
index b2f75ff4f..301307f23 100644
--- a/tmp/manifest.csv
+++ b/tmp/manifest.csv
@@ -4319,7 +4319,9 @@
2020,otterness,prog.c,20,true,c,true,entry source code
2020,otterness,Makefile,30,true,makefile,true,entry Makefile
2020,otterness,prog.orig.c,50,false,c,true,original source code
+2020,otterness,try.alt.sh,100,true,shellscript,true,script to try alternate code
2020,otterness,try.sh,100,true,shellscript,true,script to try entry
+2020,otterness,prog.alt.c,120,true,c,true,unobfuscated source code
2020,otterness,cvikl.mid,150,true,midi,false,sample MIDI file
2020,otterness,entertainer.mid,159,true,midi,false,sample MIDI file
2020,otterness,2020_otterness.tar.bz2,1415926535,false,tbz2,false,download entry tarball
diff --git a/tmp/manifest.numbers b/tmp/manifest.numbers
index 374da28474c084972206afb4334e144813cacfe5..5889f6f1ab29d726fc0930f3e41687123463b763 100644
GIT binary patch
delta 58107
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