Декомпиляция – одна из сложнейших задач обратной инженерии. В задаче декомпиляции можно выделить подзадачу – восстановление типов данных. Данная статья посвящена методам восстановления высокоуровневых типов данных языка C по низкоуровневому представлению программы на языке ассемблера. В статье подробно описан метод восстановления базовых типов языка C и производных, таких как структуры, массивы, массивы структур и т. д. Также представлено описание реализации предложенных методов в декомпиляторе TуDec, который разрабатывается авторами.
Декомпилятор – это инструмент, позволяющий восстанавливать программы из низкоуровневого представления в высокоуровневое представление. На сегодняшний день все известные декомпиляторы имеют цель – восстановить программу корректно. Однако этого не достаточно для повышения уровня представления программы. В данной работе к декомпиляции, помимо корректного восстановления, выдвигается дополнительное требование – качественное восстановление программ. Инструментальное средство восстановления программ – декомпилятор TyDec – восстанавливает программы в низкоуровневом представлении трассы программ в программы на языке Си корректно и качественно.