Высокоуровневая функция, анализирует байты по адресу ea, и преобразует их в код.
Анализирует байты байты по адресу ea, преобразует их в код, а также производит некоторые сопутствующие действия (например, применение fixups, увеличение сегментов и т.д.)
Наша рабочая лошадка - просто анализирует байты по адресу ea, заполняя структуру cmd, при этом загруженная база данных не изменяется.
Все эти три функции возвращают длину декодированной инструкции, или 0, если инструкция не опознана. Аргумент ea - адрес (ea_t - просто ulong).
Указатель на функцию, эмулирующую выполнение инструкции. Несмотря на отсутствие аргументов, эта функция имеет доступ к ранее заполненной в результате анализа структуре cmd для эмулируемой инструкции. Именно наличием эмулятора (а также наличием встроенной в IDA виртуальной регистровой машины) и объясняются её выдающиеся способности - инструкции не просто дизассемблируются, но и частично эмулируются, что позволяет производить более глубокий анализ кода. Эта функция отвечает за создание кросс-ссылок, за включение в зону анализа ветвей исполнения (для инструкций переходов и вызова функций) и множество других вещей...
Генерирует текстовое представление инструкции по ранее заполненной структуре cmd.
Генерирует текстовое представление операнда op_t инструкции. Возвращает 1 в случае успеха, и 0, если операнд скрыт.
Все эти функции не изменяют загруженную базу данных, генерируемый ими текст доступен через глобальную переменную u_line.
Массив описаний инструкций (см. подробности ниже).
Структура instruc_t используется для внутреннего представления характеристик инструкции, и имеет всего два члена:
Строка - имя инструкции
Характеристики инструкции. Битовая маска, могущая состоять из следующих значений: