Риск я, похоже, недооценил

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

- Профессор, а можно задать вам один вопрос?
- Да, конечно.
- На нашей последней лабораторной работе мы должны были писать тесты к следующему проекту и вы давали нам скомпилированную версию вашего собственного рабочего варианта этого проекта. Вы не опасались, что кто-то может это использовать, чтобы реверс-ижинирингом вытащить исходники и сдать их под видом своих?
- Ну, вообще, так как мы пишем на С++, я посчитал, что риск подобного не так велик. Если бы мы писал на Java или C#, то я бы никогда так не сделал - там из скомпилированного файла можно вытащить исходный код в чистом виде. Декомпиляция С++ же даст исходники на чистом Си, поэтому восстанавливать их не так уж и просто.

На этом этапе, надо сказать, наша компания студентиков хитро переглянулись. С Си мы все были знакомы относительно неплохо - да и те, кто уже ранее работал со средствами декомпиляции, тоже имелись. Профессор тем временем продолжил:

- Впрочем, судя по выражению ваших лиц, риски я всё-таки недооценил. Я, кажется, забыл отключить при компиляции режим дебага и включить оптимизацию... Если бы я это сделал, декомпиляция давала бы такой код, работать с которым было бы крайне затруднительно. Эх, надо было это сделать... Мой косяк. Но я уверен, что проверяющие смогут мой код узнать.

Стоит ли говорить, что, выходя из лектория, мы обсуждали иключительно то, как бы потом вручить профессору его собственные исходники?

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

3
Автор поста оценил этот комментарий

Студент, который первый сумеет в реверсиржениринг должен получить автомат :)


ИМХО, это сложнее лабораторной невысокого уровня.

Что вы пишите? Сортировки? Калькуляторы? Повороты АВЛ или красного-черного дерева?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Предпоследнее :D С небольшим нюансом, что ноды без правых детей указывают на следующий по величине элемент + на этой основе есть дополнительный поиск ключей в диапазоне.

показать ответы
Автор поста оценил этот комментарий

В какой среде это все?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Для структур данных - кто в какую горазд. Я раньше все проекты в Visual Studio вытаскивала, а теперь мне лень и я использую то, что полностью подготавливается профом (в плане доп. файлов) - Codio. К тому же там же легко ранить Valgrind и проверять прогу на наличие утечек памяти. Сдаём мы все проги путём залива исходников на сервис, на котором гоняется автоматический оценщик корректности.
А так вообще у всех курсов свои требования. Тот, что я брала в прошлом семестре, базировался полностью на Codio и оценивался там же. Второй практический курс этого семестра очень хочет, чтоб мы исходники компилировали ручками на виртуальной машине под линуксом (и юзали vim для редактирования) х)

DELETED
Автор поста оценил этот комментарий

Не очень понятно, разве в момент компиляции транслятор не подменяет код на более ему удобный и менее читаемый человеком?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну, естественно - но при большом желании читать вполне можно (именно потому, что наш проф несколько облажался при компиляции). Специально попросила товарища отскринить, что ему декомпилятор выдал - основная структура кода осталась на месте.

Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
Автор поста оценил этот комментарий

Ну т.е. да - проще. Да и разобраться в деревьях гораздо полезнее будет :)

раскрыть ветку (1)
Автор поста оценил этот комментарий

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