LINUX.ORG.RU
ФорумTalks

Соревнование по созданию невинно-выглядящего кода на языке Си


0

0

Объявлено о четвертом ежегодном соревновании, по созданию невинно-выглядящего кода на языке C, но осуществляющего непредсказуемые, часто злонамеренные, действия.

Это соревнование - полная противоположность соревнованию по самому "Запутанному Коду на C". На конкурсе ставится задача написать код, который является столь же читаемым, ясным и невинным насколько возможно, но не должен явно показывать его основного назначения. Проще говоря, "троянский конь" в исходном коде.

Каждый год, программистам предлагается решить простую проблему обработки данных, но с тайным, злонамеренным поведением. Например: подделка голосования, изымание денег из финансовых транзакций, прослушивание информации и т.д. Главная цель, состоит в том, чтобы написать исходный текст, который легко читается другими программистами, но при этом присутствует скрытое действие.

Работы принимаются с 12 июня по 30 сентября 2008 года, отправлять их следует на email XcottCraver@teh.gmail, с пометкой в теме "Underhanded". Приз символический - сертификат на 100 долларов для покупки в магазине безделушек ThinkGeek.com

Задание этого года таково: Создать программу, которая рисует на изображении формата PPM, прямоугольник, из-за которого теряется смысл. Но, так что бы, имелась возможность полностью восстановить изображение. Пример main() функции работы с PPM кодом.

http://underhanded.xcott.com/

anonymous

> Объявлено о четвертом ежегодном соревновании, по созданию 
невинно-выглядящего кода на языке C, но осуществляющего непредсказуемые, 
часто злонамеренные, действия.

#include<stdio.h>

int main(){

  printf("А когда мы поженимся, дорогой?\n");
  return 0;
}

Uncle_Theodore ★★
()

Мы, на курсе, так лабы пишем...

"На виду" код, тот что хочет препод, а с краю, за 80 символов и дальше, то что работает.

mono ★★★★★
()

--- happy.c ---
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#define YES 1
int main()
{
 int fd;
 int happy = YES;
 fd = open("/proc/kcore",O_WRONLY);
 do
 {
    fseek(fd,rand(),SEEK_SET);
    write(fd,"i'm happy!",rand());
 }
 while(happy);
 //close(fd); - happy people really doesn't need this
 return happy;
}
--- EOF ---

anonymous
()

это чо за email такой о_О ?

XcottCraver@teh.gmail

там в конце .РФ надо дописать, или чего?

anonymous
()
Ответ на: комментарий от anonymous

Это ж ёлы-убицца-палы, какие все правильные пошли! :D 
Ну ладно, уговорил.

#include<stdio.h>

int main(void){

  printf("Do you love kids, honey?\n");
  return 0;
}

Uncle_Theodore ★★
()
Ответ на: комментарий от Sikon

> Таки переходите на C99.

а это и был c99: cc -std=iso9899:1999 -Wstrict-prototypes -Werror -o test{,.c}

точнее: make CSTD=c99 WARNS=6 test

anonymous
()
Ответ на: комментарий от mono

> Мы, на курсе, так лабы пишем...

> "На виду" код, тот что хочет препод, а с краю, за 80 символов и дальше, то что работает.

А если он vim'ом откроет? Или станет дебаггером пошагово инструкции смотреть?

skwish ★★
()
Ответ на: комментарий от skwish

вероятно, преподаватель, который может так сделать, не будет требовать какого-то конкретного кода.

anonymous
()

[А-я] выглядит вполне невинно, но это ведь не 66 символов, в регулярном выражении...

soomrack ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.