Введение

Инструмент обратной разработки программного обеспечения

Интерактивный дезассемблер (IDA) – это дезассемблер для компьютерного программного обеспечения, который генерирует исходный код на языке ассемблера из машинного кода. Он поддерживает различные форматы исполняемых файлов для разных процессоров и операционных систем. Его также можно использовать в качестве отладчика для исполняемых файлов Windows PE, Mac OS X Mach-O и Linux ELF. Приобрести отдельно можно плагин-декомпилятор, который генерирует высокоуровневое представление анализируемой программы, подобное исходному коду на языке C. IDA широко используется в обратной разработке программного обеспечения, включая анализ вредоносного ПО и исследование уязвимостей. IDA часто называют «де-факто отраслевым стандартом дезассемблера».

История

Ильфак Гильфанов начал работу над IDA в 1990 году и первоначально распространял её как условно-бесплатное приложение. В 1996 году бельгийская компания DataRescue взяла на себя разработку IDA и начала продавать её как коммерческий продукт под названием IDA Pro. Первоначальные версии IDA не имели графического пользовательского интерфейса (GUI) и работали как расширенная консольная программа для DOS, OS/2 или Windows. В 1999 году DataRescue выпустила первую версию IDA Pro с графическим интерфейсом, IDA Pro 4.0. В 2005 году Гильфанов основал Hex Rays для разработки декомпилятора Hex Rays, расширения для IDA. В январе 2008 года Hex Rays взяла на себя разработку и поддержку IDA Pro от DataRescue. В 2022 году Hex Rays была приобретена компанией Smartfin, европейским венчурным и частным инвестиционным фондом.

Сценарий

Скрипты IDC позволяют расширить функциональность дизассемблера. Предоставляются некоторые полезные скрипты, которые могут служить основой для скриптов, написанных пользователями. Чаще всего скрипты используются для дополнительной модификации сгенерированного кода. Например, можно загружать внешние таблицы символов, используя имена функций из исходного кода. Пользователи создали плагины, позволяющие использовать другие распространенные языки скриптов вместо IDC или в дополнение к нему. IdaRUB поддерживает Ruby, а IDAPython добавляет поддержку Python. Начиная с версии 5.4, IDAPython (требующий Python 2.5) предустановлен в IDA Pro.

Версии

Последняя полная версия IDA Pro является коммерческой (версия 8.2 на декабрь 2022 года), а менее функциональная версия под названием IDA Free доступна для бесплатной загрузки.