Задача декомпилирования двоичного кода играет важную роль в задачах анализа кода, повторной оптимизации, деобфускации, рекомпиляции и многих других. В этой области существует несколько инструментов с открытым исходным кодом, обладающих разными возможностями, поддержкой разных платформ и языков, уровнем поддержки и т.п. Одним из популярных целевых языков для декомпилирования является LLVM IR, поэтому данная практика будет ограничена именно этим языком.
В данной работе требуется провести обзор современных технологий и инструментов для решения задачи поднятия. Это подразумевает не только изучение описаний проектов и статей, но и запуск каждого инструмента на отдельно подобранном наборе тестов на разных платформах. Затем предлагается подгружение в один или несколько выбранных инструментов и улучшение их показателей.
Знание ассемблера любой архитектуры, знакомство с LLVM IR будет большим плюсом
2 курс, 3 курс
Смирнов Кирилл Константинович
YADRO