bash.im ithappens.me zadolba.li
1381

Потоковый эксплойт

28 октября 2009, 09:00

Обучаясь на первом курсе, попал я на зачёте по программированию к преподавателю нестрогому, но весьма вольно понимающему задания из листка «к зачёту». В итоге моя программа была забракована, хотя и работала правильно, и соответствовала заданию. После этого мне было выдано новое задание: написать прогу, складывающую две вводимые строки в одну без использования кошерных функций.

Маленький экскурс в компьютерную систему здания: все студенты работают на тонких клиентах, подключенных к могучему серверу с неадекватным поведением. Одной из черт его характера было то, что потоковый ввод надо закрывать дважды. Тёмные увлечения, а также нежелание сидеть на зачёте лишнее время не позволили пропустить такой шанс воспользоваться глобальной уязвимостью. Мной был написан код:

cin >> SumString;
cout << "Сумма строк: " << SumString;

На экране же это выглядело так:

> Это полов <Enter>
> ина строки <Enter>
> Сумма строк: Это половина строки
> Press any key to continue...

Пока препод в ведомости не расписался, нажимать на Any Key я не давал.