Компания «Софтком» запускает студенческий проект, связанный с развиваемыми в компании направлениями промышленного программирования. По каждому направлению предлагается ряд курсовых работ для студентов 2-3 курсов, имеющих опыт программирования на языках C/С++/Python и интересующихся разработками сложных систем (в том числе и систем реального времени).
Во многих ситуациях возникает необходимость защиты программ от несанкционированного анализа. Одним из способов такой защиты является «запутывание» - то есть такое преобразование программы, которое не изменяет ее функциональность, но делает программный код намного сложнее для понимания и анализа. Широко известны инструменты для «запутывания» программ на уровне исходного кода (например, на языках Javascript или C#), но «запутывание» на уровне машинных кодов исполняемой программы (дающее гораздо большую эффективность защиты) остается существенно более сложной задачей.
Реализация различных техник и приемов «запутывания» для программ на языках C/С++. Такие приемы, как перемещение участков кода, вставка «мертвого» кода, шифрование фрагментов исполняемого кода, и ряд других, существенно повышают уровень защиты. В рамках работы предлагается реализация этих и других приемов для различных целевых процессоров. Рассчитано на 1-2 человек.
Расширение целевых платформ. В первую очередь методы «запутывания» реализуются нашими специалистами под платформу Intel x64 (и, отчасти – под архитектуру MIPS). В связи с этим возникают задачи реализации аналогичных методов и алгоритмов под другие распространенные целевые платформы – такие, как ARM, RISC V и т.д. Поскольку используемые методы и приемы «запутывания» сильно зависят от системы команд целевого процессора, каждый такой перенос представляет из себя нетривиальную задачу, требующую творческого подхода и изобретательности. Рассчитано на 1-2 человек на каждую целевую архитектуру
2 курс, 3 курс
еще не назначен
Смирнов Кирилл Константинович
Софтком