Интерактивный дизассемблер
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Оригинальный автор(ы) | Ильфак Гуильфанов |
---|---|
Разработчик(и) | Шестнадцатеричные лучи |
Первоначальный выпуск | 21 мая 1991 г [1] |
Стабильная версия | 8.4СП2 [2]
/ 27 мая 2024 г |
Написано в | С++ [3] |
Операционная система | Microsoft Windows , Mac OS X и Linux |
Доступно в | английский , русский |
Тип | Дизассемблер , Декомпилятор |
Лицензия | Собственный |
Веб-сайт | шестигранные лучи |
Интерактивный дизассемблер ( IDA ) — это дизассемблер компьютерного программного обеспечения , который генерирует на языке ассемблера исходный код из машинно-исполняемого кода . Он поддерживает множество форматов исполняемых файлов для разных процессоров и операционных систем . Его также можно использовать в качестве отладчика для исполняемых файлов Windows PE , Mac OS X Mach-O и Linux ELF . Плагин декомпилятора , который генерирует высокоуровневое C , доступен за дополнительную плату. представление анализируемой программы, подобное исходному коду [4] [5]
IDA широко используется при обратном проектировании программного обеспечения , в том числе для анализа вредоносного ПО. [6] [7] и исследование уязвимостей программного обеспечения . [8] IDA называют «дизассемблером де-факто отраслевых стандартов». [9] [10] [11] [12]
История
[ редактировать ]Ильфак Гуйльфанов начал работать в IDA в 1990 году. [13] [14] [15] [16] и первоначально распространял его как условно-бесплатное приложение. В 1996 году бельгийская компания DataRescue взяла на себя разработку IDA и начала продавать ее как коммерческий продукт под названием IDA Pro. [17] [18]
Первоначальные версии IDA не имели графического пользовательского интерфейса (GUI) и работали как DOS , OS/2 или Windows расширенное консольное приложение . [19] В 1999 году DataRescue выпустила первую версию IDA Pro с графическим интерфейсом — IDA Pro 4.0. [20]
В 2005 году Гуильфанов основал Hex-Rays для разработки расширения IDA Hex-Rays Decompiler. [21] [22] В январе 2008 года Hex-Rays взяла на себя разработку и поддержку IDA Pro компании DataRescue. [23] [24]
В 2022 году Hex-Rays была приобретена Smartfin, европейским венчурным и частным инвестором . [25] [26]
Функции
[ редактировать ]IDA дизассемблирует скомпилированную программу обратно в представление на языке ассемблера. Помимо выполнения базовой дизассемблирования, IDA также автоматически аннотирует дизассемблированные программы информацией о: [27]
- перекрестные ссылки между кодом и данными в программе
- Расположение функций, фреймы стека функций и соглашения о вызове функций.
- восстановленные типы данных
Однако характер разборки исключает полную точность, и обязательно требуется значительное вмешательство человека; IDA имеет интерактивные функции, помогающие улучшить разборку. Типичный пользователь IDA начинает с автоматически созданного листинга дизассемблирования, а затем преобразует разделы из кода в данные и наоборот, переименовывает, аннотирует и иным образом добавляет информацию в листинг, пока его функциональность не станет ясной.
Сценарии
[ редактировать ]«IDC-скрипты» позволяют расширить работу дизассемблера. Предоставляются некоторые полезные сценарии, которые могут служить основой для сценариев, написанных пользователем. Чаще всего скрипты используются для дополнительной модификации сгенерированного кода. Например, таблицы внешних символов можно загрузить, используя имена функций исходного исходного кода.
Пользователи создали плагины, которые позволяют использовать другие распространенные языки сценариев вместо IDC или в дополнение к нему. ИдаРУБ [28] поддерживает Ruby и IDAPython [29] добавляет поддержку Python . Начиная с версии 5.4, IDAPython (зависит от Python 2.5) поставляется с предустановленным IDA Pro.
Отладка
[ редактировать ]IDA Pro поддерживает ряд отладчиков, [30] включая:
- Удаленные приложения для Windows, Linux и Mac (предоставленные Hex-Rays) позволяют запускать исполняемый файл в его собственной среде (предположительно с использованием виртуальной машины для вредоносного ПО).
- Отладчик GNU (gdb) поддерживается в Linux и OS X, а также в родном отладчике Windows.
- Плагин Bochs предназначен для отладки простых приложений (например, поврежденных сжатых UPX или mpress исполняемых файлов).
- Отладчик PIN-кода Intel на основе
- Воспроизведение трассировки
Версии
[ редактировать ]Последняя полная версия IDA Pro является коммерческой (версия 8.4 по состоянию на июнь 2024 г.), а менее функциональная версия под названием IDA Free доступна для бесплатной загрузки. [31]
Поддерживаемые системы/процессоры/компиляторы
[ редактировать ]- Системные хосты
- Windows x86 и ARM
- Линукс х86
- Mac OS X x86
- Распознаваемые форматы исполняемых файлов
- COFF и производные, включая Win32/64/generic PE
- ELF и производные (общие)
- Мах-О ( Мах )
- НЛМ ( NetWare )
- LC/LE/LX (OS/2 2.x+ и различные расширения DOS)
- NE (OS/2 1.x, Win16 и различные расширители DOS)
- МЗ ( MS-DOS )
- OMF и производные (генерические)
- AIM (общий)
- необработанный двоичный файл, например образ ПЗУ или COM-файл
- Наборы инструкций
- Intel 80x86 Семейство
- ARM-архитектура
- Моторола 68к и H8
- Зилог Z80
- МОС 6502
- Интел i860
- ДЭК Альфа
- Аналоговые устройства ADSP218x
- Ангстрем КР1878
- Atmel AVR Серия
- Серия DEC PDP11
- Fujitsu F2MC16L/F2MC16LX
- Семейство 32-разрядных версий Fujitsu FR
- Хитачи SH3 /SH3B/ SH4 /SH4B
- Хитачи H8 : h8300/h8300a/h8s300/h8500
- Серия Intel 196: 80196/80196NP
- Серия Intel 51: 8051/80251b/80251s/80930b/80930s
- Intel i960 Серия
- Intel Itanium (ia64) Серия
- виртуальная машина Java
- MIPS : mipsb/mipsl/mipsr/mipsrl/r5900b/r5900l
- Микрочип ПОС: PIC12Cxx/PIC16Cxx/PIC18Cxx
- MSIL
- Семейство Mitsubishi 7700: m7700/m7750
- Митсубиси м32/м32рх
- Митсубиси м740
- Митсубиси м7900
- Семейство Motorola DSP 5600x: dsp561xx/dsp5663xx/dsp566xx/dsp56k
- Моторола КолдФайр
- Моторола HCS12
- НЭК 78К0/78К0С
- ПА-РИСК
- PowerPC
- Семейство ксеноновых PowerPC
- СГС-Томсон ST20/ST20c4/ST7
- СПАРК Семья
- Самсунг САМ8
- Сименс С166
- TMS320Cxxx Серия
- Компилятор/библиотеки (для автоматического распознавания функций библиотеки) [32]
- Borland C++ 5.x для DOS/Windows
- Борланд С++ 3.1
- Borland C Builder v4 для DOS/Windows
- GNU C++ для Cygwin
- Майкрософт С
- Microsoft QuickC
- Microsoft Visual С++
- Watcom C/C++ (16/32 бит) для DOS / OS2
- АРМ С v1.2
- GNU C++ для Unix/общий
Логотип
[ редактировать ]Логотип IDA Pro представляет собой обрезанное изображение Франсуазы д'Обинье, маркизы де Ментенон . Изображение логотипа похоже на миниатюрную картину Франсуазы д'Обинье, засвидетельствованную художником из круга Пьера Миньяра . [33]
Исходная версия логотипа в оттенках серого была представлена в сентябре 1999 года с выпуском IDA 4.0. [15] Ильфак Гильфанов заявил, что логотип не является изображением святой Иды Лувенской . [34]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Чоков, Джеффри (20 мая 2021 г.). «IDA: празднование 30-летия инноваций в бинарном анализе» . Шестнадцатеричные лучи . Проверено 19 марта 2023 г.
- ^ «ИДА 8.4.240527 (8.4сп2)» . Архивировано из оригинала 2 июня 2024 года . Проверено 28 июня 2024 г.
- ^ «Шестнадцатеричные лучи Домой» . Архивировано из оригинала 26 мая 2024 г. Проверено 31 марта 2008 г.
- ^ Игл, Крис (2011). «Глава 23: Реальные плагины IDA». Книга IDA Pro: неофициальное руководство по самому популярному дизассемблеру в мире (2-е изд.). Сан-Франциско: Пресса без крахмала. стр. 500–502. ISBN 978-1-59327-395-8 . OCLC 830164382 .
- ^ «Декомпилятор Hex-Rays» . hex-rays.com . Проверено 18 марта 2023 г.
- ^ Персонал, СК (11 сентября 2017 г.). «Гекс-Рэйс ИДА Про» . СК Медиа . Проверено 13 марта 2023 г.
- ^ Сикорский, Майкл (2012). «Глава 5. IDA Pro». Практический анализ вредоносного ПО: практическое руководство по анализу вредоносного ПО . Эндрю Хониг. Сан-Франциско: Пресса без крахмала. ISBN 978-1-59327-430-6 . OCLC 830164262 .
- ^ Шошитаишвили, Ян; Ван, Жоюй; Саллс, Кристофер; Стивенс, Ник; Полино, Марио; Датчер, Эндрю; Грозен, Джон; Фэн, Сиджи; Хаузер, Кристоф; Крюгель, Кристофер; Винья, Джованни (22 мая 2016 г.). «СОК: (Состояние) искусства войны: наступательные методы в бинарном анализе» . Симпозиум IEEE по безопасности и конфиденциальности (SP) 2016 г. стр. 138–157. дои : 10.1109/СП.2016.17 . hdl : 11311/1161277 . ISBN 978-1-5090-0824-7 . S2CID 3337994 . Архивировано из оригинала 8 декабря 2022 г. Проверено 17 марта 2023 г.
- ^ Бен Хадра, М. Аммар; Стоффель, Доминик; Кунц, Вольфганг (01 октября 2016 г.). «Спекулятивная дизассемблирование двоичного кода» . Материалы Международной конференции по компиляторам, архитектурам и синтезу для встраиваемых систем . СЛУЧАИ '16. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1–10. дои : 10.1145/2968455.2968505 . ISBN 978-1-4503-4482-1 . S2CID 16206393 .
Он превосходит IDA Pro, де-факто стандартный дизассемблер, с точки зрения правильности дизассемблирования.
- ^ Ди Федерико, Алессандро; Пайер, Матиас; Агоста, Джованни (05 февраля 2017 г.). «Rev.ng: унифицированная среда двоичного анализа для восстановления CFGS и границ функций» . Материалы 26-й Международной конференции по построению компиляторов . CC 2017. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 131–141. дои : 10.1145/3033019.3033028 . ISBN 978-1-4503-5233-8 . S2CID 15830760 .
Мы оцениваем реализацию нашего прототипа на соответствие де-факто отраслевому стандарту статического бинарного анализа IDA Pro.
- ^ Гарсиа Прадо, Карлос; Эриксон, Джон (10 апреля 2018 г.). «Решение специальных проблем с помощью Hex-Rays API» . Блог FireEye об исследовании угроз . Архивировано из оригинала 2 июня 2022 г. Проверено 12 марта 2023 г.
IDA Pro является фактическим стандартом двоичного обратного проектирования.
- ^ Андрисс, Деннис (2019). «Приложение C: Список инструментов двоичного анализа». Практический двоичный анализ: создайте свои собственные инструменты Linux для двоичного измерения, анализа и дизассемблирования . Сан-Франциско, Калифорния. ISBN 978-1-59327-913-4 . OCLC 1050453850 .
Этот [IDA Pro] является де-факто рекурсивным дизассемблером, являющимся отраслевым стандартом.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ Гильфанов, Ильфак (22 May 2003). "IDA Pro - samyj moshhnyj dizassembler v mire" IDA Pro - самый мощный дизассемблер в мире [IDA Pro - the most powerful disassembler in the world] (Interview) (in Russian). Interviewed by Доля, Алексей. Компания "Ф-Центр". sec. 2.30. Archived from the original on May 15, 2021 . Retrieved 14 March 2023 .
Он начался как хобби в далеком 1991 году, просто увлечением для себя и для друзей.
- ^ "IDA Pro - Часто задаваемые вопросы" . Archived from the original on December 19, 2003.
Первые строки для IDA были написаны в декабре 1990.
- ^ Jump up to: а б Чоков, Джеффри (20 мая 2021 г.). «IDA: празднование 30-летия инноваций в бинарном анализе» . Шестнадцатеричные лучи . Проверено 19 марта 2023 г.
- ^ «Hex Rays — современные решения для анализа двоичного кода» . hex-rays.com . Архивировано из оригинала 31 мая 2023 г. Проверено 21 июля 2023 г.
- ^ Гильфанов, Ильфак, CODE BLUE 2014: Ильфак Гильфанов - Основной доклад: История IDA Pro , получено 16 марта 2023 г. ,
Datarescue преобразовала мой хобби-проект в коммерческую программу в 1996 году.
- ^ «Страница DataRescue IDA Pro» . Спасение данных . Архивировано из оригинала 14 февраля 1997 г.
- ^ «Страница DataRescue IDA: загрузите ознакомительную версию» . Спасение данных . Архивировано из оригинала 14 февраля 1997 г.
- ^ «DataRescue IDA Pro Что нового на странице» . Спасение данных . Архивировано из оригинала 10 октября 1999 г.
- ^ «Данные зарегистрированной организации | Публичный поиск KBO» . kbopub.economie.fgov.be . Проверено 13 марта 2023 г.
- ^ «Декомпилятор Hex-Rays» . Шестнадцатеричные лучи . Архивировано из оригинала 11 октября 2007 г.
- ^ «Домашняя страница DataRescue: домашняя страница дизассемблера IDA Pro и PhotoRescue» . Спасение данных . Архивировано из оригинала 21 февраля 2008 г.
Новости 01.07.2008: IDA Pro переходит на Hex-Rays.
- ^ «Домашняя страница Hex-Rays» . Шестнадцатеричные лучи . Архивировано из оригинала 12 февраля 2008 г.
- ^ «Консорциум инвесторов приобретает Hex-Rays – Hex Rays» . Архивировано из оригинала 21 июля 2023 г. Проверено 21 июля 2023 г.
- ^ «Индустрия новостей | Консорциум под руководством Smartfin приобретает Hex-Rays для ускорения усилий по созданию инновационных продуктов» . Помогите Net Security . 20 октября 2022 г. Архивировано из оригинала 21 июля 2023 г. Проверено 21 июля 2023 г.
- ^ Игл, Крис (2011). «Часть II. Базовое использование IDA». Книга IDA Pro: неофициальное руководство по самому популярному дизассемблеру в мире (2-е изд.). Сан-Франциско: Пресса без крахмала. ISBN 978-1-59327-395-8 . OCLC 830164382 .
- ^ «Архивная копия» . Архивировано из оригинала 8 января 2016 г. Проверено 5 декабря 2011 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ «Идапитон [d-dome.net]» . Архивировано из оригинала 16 января 2006 г.
- ^ Игл, Крис (2008). Книга IDA Pro: неофициальное руководство по самому популярному в мире дизассемблеру . Пресс без крахмала . ISBN 978-1-59327-178-7 .
- ^ «Загрузка бесплатной версии IDA Pro» . Архивировано из оригинала 8 августа 2008 г. Проверено 31 марта 2008 г.
- ^ «Поддержка компилятора FLIRT» . Шестнадцатеричные лучи . Архивировано из оригинала 3 октября 2011 г. Проверено 13 апреля 2010 г.
- ^ «Французская школа, преемница Пьера Миньяра — Пасхальный аукцион 17 апреля 2019 г. — эстимейт: от 1500 до 2600 евро — Доротеум» . www.dorotheum.com (на австрийском немецком языке). Архивировано из оригинала 14 августа 2023 г. Проверено 8 июля 2024 г.
- ^ Гуильфанов, Ильфак (13 апреля 2006 г.). «Святая Ида | Шестнадцатеричный блог» . Шестнадцатеричный блог . Архивировано из оригинала 17 июня 2011 г. Проверено 8 июля 2024 г.
Дальнейшее чтение
[ редактировать ]- Эйлам, Эльдад (2005). Реверс: секреты реверс-инжиниринга . Издательство Уайли . п. 595. ИСБН 0-7645-7481-7 .
Внешние ссылки
[ редактировать ]- Официальный сайт
- «IDA Pro в Интернет-архиве» (на русском языке). Архивировано из оригинала 16 января 2015 г.
- «Плагины и скрипты IDA» . Открытая разработка обратного кода (OpenRCE) .