Underhanded C Contest
From Wikipedia, the free encyclopedia
The Underhanded C Contest is a programming contest to turn out code that is malicious, but passes a rigorous inspection, and looks like an honest mistake. The contest rules define a task, and a malicious component. Entries must perform the task in a malicious manner as defined by the contest, and hide the malice. Contestants are allowed to use C-like compiled languages to make their programs.
The 2005 contest had the task of image processing, while embedding a watermark. Winning entries from 2005 used uninitialized data structures, reuse of pointers, and an embedding of shellcode in constants.
The 2006 contest required entries to count word occurrences, but have vastly different runtimes on different platforms. To accomplish the task, entries used fork implementation errors, optimization problems, and various API implementation differences. The winning results can be viewed here.
The recently commenced 2007 contest requires entries to encrypt and decrypt files with a strong, readily available encryption algorithm such that a low percentage (1% - 0.01%) of the encrypted files may be cracked in a reasonably short time. The contest commenced on April 16 and ended on July 4th with results to be released sometime during the year.