bash.im ithappens.me zadolba.li
1708

Обфускация: вводный курс

На первом курсе мы занимались моделированием простеньких физических систем. Очередным заданием было смоделировать колебание маятника и получить петлю гистерезиса. Задание я выполнил за пару, все работало в моём понимании как нужно — понёс сдавать. Преподаватель посмотрел на работу программки, открыл код и, быстренько прокрутив колёсиком, заявил, что у меня не хватает зависимости от массы. Моё разочарование было настолько сильным, что я и не подумал расспросить более конкретно, о чём идет речь.

В течение недели я пыхтел над кодом, всматриваясь в каждую строку и пытаясь понять, о чём шла речь и что не так. На очередном занятии я всё же решил спросить препода, что имелось в виду? Он мне рассказал о том, как нужно писать код: оказывается, «зависимость от массы» — некий кусок той математической формулы, которую я использовал; от меня требовалось добавить комментарий и выписать этот кусок на отдельной строке.

Требуемые операции были сделаны, и я с полной увереностью понес сдавать прогу, но история повторилась. Препод запускает прогу, смотрит на её безупречную работу, открывает код, мельком просматривает и заявляет, что у меня не хватает обособленного куска программы.

Следующую неделю я опять в негодовании пытался понять, о чём говорил преподаватель. В итоге решил сделать кусок бесполезного кода с нужными комментариями — написал длинную строку с хитрой формулой, незаметно множившейся на ноль. Надеясь на авось, я решил попытаться сдать прогу — как ни странно, история с отсутствием куска кода повторилась, но фальшивый код замечен не был.

Каждую неделю до конца семестра я дописывал по «болванке». Код финального варианта программы увеличился раз в пять по сравнению с начальным и оброс густыми ненужными комментариями. Преподаватель, окинув взглядом объём, наконец заявил, что теперь программу примет. Так меня учили индийскому программированию.