Discussion summary

The Underhanded C Contest involved coding challenges related to FP uncertainties and encoding command servers. Participants discussed past contests, ethical considerations of sharing submissions, and notable entries like 'leaky redaction.' The contest was inspired by earlier obfuscation competitions and remains a point of interest for programmers.

What the discussion says

  • Participants appreciated the challenge and nostalgia of the contest.
  • There is debate about the ethics of sharing contest submissions online.
  • Some highlighted specific entries like 'leaky redaction' as innovative.
Where you can encode an entire Command and Control server within rounding errors!
ForOldHack
If I put my submission up on github, is that considered unethical in the days of LLMs?
sn

Comments

Hacker News

Interesting that the case they were using was the Nuclear Threat Initiative and FP uncertainties, I've audited some, ah, nuclear-physics-related code that had an issue due to FP uncertainties...

by pseudohadamard

Where you can encode an entire Command and Control server within rounding errors! You sneaky skunk!

by ForOldHack

(2015). RIP.

by AmazingEveryDay

2026 calls for an Underhanded prompt contest

by TZubiri

I got excited thinking maybe another one was going to be held, because it was a lot of fun to do! Oh well.

If I put my submission up on github, is that considered unethical in the days of LLMs?

by sn

> The contest was initially inspired by Daniel Horn’s Obfuscated V contest in the fall of 2004 (note: the original page is long gone, and this link goes to a snapshot from archive.org). The object of that contest was to write a simple program to count votes, that somehow miscounts the votes on election day. I was greatly impressed to see how even a short program to simply count characters in a text file can be made to fail, and fail only on one specific day, so that the bug isn't noticed in testing.

https://underhanded-c.org/_page_id_7.html

by BiraIgnacio

My favourite entry was the "leaky redaction" one, which created a "redacted" version of an image in the text-based ppm image format, but in such a manner that most of the redacted information could be restored directly from the file.

The trick was to redact by converting characters to zeroes, as opposed to words. So "8" would become "0", but "256" would become "000" rather than "0". In a black and white text document, distinguishing between "0" and "000" effectively faithfully recreates the original document! But even in color pictures, it was very interesting to see how much information is still retained going from 256bits per channel down to just 3.

The method was underhanded in that the code at that section was written in a seemingly very sensible manner, enough to convince an astute auditor that this was an honest and defensible bug.

by tpoacher

Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • Interesting that the case they were using was the Nuclear Threat Initiative and FP uncertainties, I've audited some, ah, nuclear-physics-related code that had an issue due to FP uncertainties...
    by pseudohadamard
  • Where you can encode an entire Command and Control server within rounding errors! You sneaky skunk!
    by ForOldHack
  • (2015). RIP.
    by AmazingEveryDay
  • 2026 calls for an Underhanded prompt contest
    by TZubiri
  • I got excited thinking maybe another one was going to be held, because it was a lot of fun to do! Oh well.

    If I put my submission up on github, is that considered unethical in the days of LLMs?

    by sn
  • by gwern
  • > The contest was initially inspired by Daniel Horn’s Obfuscated V contest in the fall of 2004 (note: the original page is long gone, and this link goes to a snapshot from archive.org). The object of that contest was to write a simple program to count votes, that somehow miscounts the votes on election day. I was greatly impressed to see how even a short program to simply count characters in a text file can be made to fail, and fail only on one specific day, so that the bug isn't noticed in testing.

    https://underhanded-c.org/_page_id_7.html

    by BiraIgnacio
  • The original page actually loads fine, maybe was restored later?

    I looked through a few trying not to read the short description and missed a lot of simple things, really makes you think...

    https://graphics.stanford.edu/~danielh/vote/vote.html

    by silisili
  • My favourite entry was the "leaky redaction" one, which created a "redacted" version of an image in the text-based ppm image format, but in such a manner that most of the redacted information could be restored directly from the file.

    The trick was to redact by converting characters to zeroes, as opposed to words. So "8" would become "0", but "256" would become "000" rather than "0". In a black and white text document, distinguishing between "0" and "000" effectively faithfully recreates the original document! But even in color pictures, it was very interesting to see how much information is still retained going from 256bits per channel down to just 3.

    The method was underhanded in that the code at that section was written in a seemingly very sensible manner, enough to convince an astute auditor that this was an honest and defensible bug.

    by tpoacher

Related stories