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