2013-11-25 3 views
0

Я реверсирую программу, и медленно начинаю строить пользовательскую структуру, которая, без сомнения, представляет класс (например, первый DWORD указывает на таблицу vtable и т. Д.).Установка этого указателя на структуру

Это двоичный код Windows с некоторой реализацией COM. Некоторые методы используют соглашение о вызове stdcall (этот вызов в стеке), какой-то метод использует это соглашение о вызове вызова (этот указатель на ECX).

Я хотел бы сообщить IDA, что этот указатель (или на ECX или в стеке) указывает на мою пользовательскую структуру, которую я проанализировал, поэтому в представлении кода я увижу ссылку на поле класса , Возможное?

ответ

1

Эффективный способ анализа программы на основе виртуальной таблицы функций - это изменение типов с использованием ida hexray addon. Этапы могут быть следующими:

  1. Преобразуйте неосязаемую функцию в poseduo C-код. Плагин hexray будет отмечать этот указатель как DWORD */int * и т. Д.
  2. Изменить тип этого указателя на тип структуры, который вы проанализировали (нажав «Y» в этой переменной указателя) Затем hexray будет реконструировать [ ecx + offset] to Yourtype-> член

Но гексаментный аддон очень экспансивный.