IDA Pro fun

Введение

В этом разделе я буду выкладывать интересные вещи, связанные с известным дизассемблером IDA Pro. В большинстве своем - это переводы того, что найдено на просторах сети или в книгах (да, выходили такие - в основном за рубежом).

Процессорные модули

Процессорные модули (для краткости я обозначаю их как ПМ) - внешний компонент IDA, для написания которых используется поставляемый с программой пакет разработчика (SDK). Процессорные модули ответственны за все операции дизассемблирования, которые имеют место быть внутри IDA (тот самый ассемблерный код, что мы видим на экране). Помимо обычного преобразования с языка машинных опкодов в их соответствующее представление на языке ассемблера, ПМ также отвечают за такие задачи, как создание функций, генерацию перекрестных ссылок, и отслеживание поведения стекового указателя. Причем, начиная с IDA 5.7, в IDA Pro можно создавать ПМ с помощью одного из скриптовых языков IDA (имеется в виду поддержка скриптов на языке Python, с помощью них возможно написать любой внешний компонент - будь то плагин, загрузчик или ПМ). ПМ на Python'e - очень удобная и масштабируемая вещь.
И еще один момент. Не очевидный случай использования ПМ - дизассемблирование инструкций пользовательских виртуальных машин, встроенных для обфускации выполняемого кода.

Перевод 19-й главы "Процессорные модули" из книги Chris Eagle "THE IDA PRO BOOK" 2-я редакция
Краткая схема написания процессорного модуля
ПМ для .pyc файлов (откомпилированный Python-код) - http://www.idabook.com/examples/index.html (примеры для 19-й главы)

Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License