IDA
IDA Pro Disassembler (англ. Interactive DisAssembler) — интерактивный дизассемблер, который широко используется для реверс-инжиниринга. Он отличается исключительной гибкостью, наличием встроенного командного языка, поддерживает множество форматов исполняемых файлов для большого числа процессоров и операционных систем. Первоначальный автор и основной разработчик — Ильфак Гильфанов[2].
Позволяет строить блок-схемы, изменять названия меток, просматривать локальные процедуры в стеке и многое другое.
В последних версиях имеет встроенный отладчик x86 и ARM.
IDA, до определённой степени, умеет автоматически выполнять анализ кода, используя перекрёстные ссылки, знание параметров вызовов функций стандартных библиотек, и другую информацию. Однако вся сила его проявляется в интерактивном взаимодействии с пользователем. В начале исследования дизассемблер выполняет автоматический анализ программы, а затем пользователь с помощью интерактивных средств IDA начинает давать осмысленные имена, комментировать, создавать сложные структуры данных и другим образом добавлять информацию в листинг, генерируемый дизассемблером пока не станет ясно, что именно и как делает исследуемая программа.
Дизассемблер имеет консольную и графическую версии. Поддерживает большое количество форматов исполняемых файлов. Одной из отличительных особенностей IDA Pro является возможность дизассемблирования байт-кода виртуальных машин Java и .NET. Также поддерживает макросы, плагины и скрипты, а последние версии содержат интегрированный отладчик.
Что важно знать
| IDA Pro Disassembler | |||
|---|---|---|---|
| Тип | Дизассемблер | ||
| Разработчик | hex-rays | ||
| Написана на | C++ | ||
| Операционные системы | Windows, Linux, Mac OS X | ||
| Последняя версия | 7.7sp1[1] (12 января 2022) | ||
| |||
| |||
| Лицензия | proprietary | ||
| Сайт | hex-rays.com/products/id… | ||
Версии поставки
Существует несколько версий IDA Pro — бесплатная (freeware), стандартная (standard) и расширенная (advanced). Бесплатная версия обладает ограниченными возможностями по сравнению со стандартной и расширенной версиями — поддерживается только архитектура x86 и отсутствует поддержка подключаемых модулей.
Поддерживаемые форматы исполняемых файлов
- ELF (UNIX-подобные)
- MZ (DOS)
- PE (Windows)
- Mach-O (MacOS X)
- Netware .exe
- OS/2 .exe
- Geos .exe
- «Сырой» двоичный код (например, дамп памяти)
См. также
Примечания
Литература
- Крис Касперски. Искусство дизассемблирования. — 1-е изд. — М.: «BHV», 2008. — С. 896. — ISBN 978-5-9775-0082-1.


