История
Версия для печати

Архив форума

Зануда 06.05.2004 19:54
Вот тут у меня возникли интересные мысли по поводу тестирующей системы "Made in USU", которая вроде бы от Клепинина. Этими мыслями я поделился с Сандро, и тот посоветовал мне опубликовать их здесь.
Дело вот в чём. На "стандартных" (не-спортивных, не-командных) российских олимпиадах по программированию стало традицией выдавать участникам после олимпиады дискетки с архивом - все решения всех участников, тесты жюри, проверяющая система и т.д., чтобы сомневающиеся могли провести у себя дома перепроверку всех решений и убедиться в объективности жюри. Тестирующую программу совершенствуют каждый год вплоть до радикального переписывания не только из-за необходимости добавления новых фишек, но и из-за (по слухам) прецедентов "работы на дому" уже участвовавших в олимпиаде с этой системой. Т.е. "продвинутые" программеры раскапывают адрес переменной, где хранится результат теста "пройден - не пройден", и в своей программе записывают по этому адресу единичку. Отловить такие случаи в общем возможно, но гораздо тяжелее, чем, скажем, попытки отформатировать диск :-) и по-моему, к этому никто и не стремится, ведь гораздо проще обеспечить уникальность адреса в каждой новой версии системы.
Впрочем, на российских олимпиадах, где крутятся Большие Деньги, говорят, мухлёж ещё тот идёт, чуть ли даже системный таймер не перепрограммируют, чтоб медленнее тикал :-)
Это всё вводные речи, а суть вот в чём. Наша тестирующая система не меняется годами, а ведь есть люди, участвующие в одних соревнованиях как участники и в других - как жюри (не будем показывать пальцами), и у этих людей есть доступ не только к бинарникам, но и к исходникам тестирующей системы. Что им, абстрактно говоря, мешает вставить в сдаваемую задачу аналогичный трюк - установку флага "тест пройден" в тестирующей системе?
Сандро 06.05.2004 20:03
Мда, надо будет думать впредь, перед тем, как советовать :)

Слава богу, хоть не стал подозревать неназванных лиц в использовании этой практики на соревнованиях...
boris 07.05.2004 08:23
На российских олимпиадах специально раздают и все тесты, и решение всех участников, и решения жюри. Все эти материалы также доступны на сайте neerc.ifmo.ru. Такая открытость и позволяет избежать всякого рода махинаций. Что касается тестирующих систем, то чтобы отловить вмешательство в свою работу, они должны анализировать исходники на присутствие в них асм-вставок, использование вызывов прерываний и т.д. Также можно сделать не доступными некоторые модули. Но проблема все-таки есть, так как на контестах обычно собираются действительно очень квалифицированные программисты, и авторам тестирующих систем надо быть более опытными и хитрыми, чем они.