Есть ли какой-нибудь дизассемблер (не только живой отладчик), уступающий IDA по возможностям? IDA - замечательный, и в какой-то степени удивительный в том, насколько он надежен и полезен для реверсирования. Однако ее лицензирование обходится довольно дорого. Есть ли любая жизнеспособная альтернатива, или IDA держит монополию на этом рынке?
Я не ожидаю, что альтернатива будет так же хороша, как IDA, просто ищу другие варианты, которые могут быть более доступными и достаточно полезными.
EDIT: Желательно, чтобы существовала многоплатформенная поддержка, хотя это необязательно. MIPS, ARM, x86 и x86-64 было бы неплохо, но дизассемблер, который работает с любой из этих платформ - хороший вариант, о котором стоит знать.
Вы ничего'т упомянуть платформы (Windows, ОС Linux, ОС macOS, и т. д.), Но вот некоторые большие дизассемблеры.
Ghidra-это программный реинжиниринг (ТЭЗ) рамки создает и ведет Национальный исследовательский Дирекция охранного агентства. Windows, для Mac OS и Linux.
возможности включают в себя демонтаж, сборка, декомпиляции, графиков и сценариев, вместе с сотнями других функций. Ghidra поддерживает широкий спектр процесс наборы инструкций и исполняемых форматов и может работать в оба пользователя-интерактивный и автоматический режимы. Пользователи также могут разрабатывать свои собственные подключаемые Ghidra компонентов и/или скрипты, используя Java или Python.
Radare2 является открытым исходным кодом инструмент, разбирать, отладки, анализа и манипулировать двоичными файлами.
Это на самом деле поддерживает множество архитектур (x86{16,32,64}, Далвик, АВР рука, Ява, процессор PowerPC, SPARC и MIPS) и несколько двоичных форматов (ПЭ{32,64}, [сало]mach0{32,64}, эльф{32,64}, Декс и Java-классы), помимо поддержки образов файловой системы и многие другие функции.
Это работает в командной строке, но он имеет графический интерфейс, который называется резца, которое поддерживает некоторые его уже имеет.
Бинарные ниндзя инженерный платформы. Она фокусируется на чистой > и легкий в использовании интерфейс с мощным многопоточный анализ построен на таможне иль быстро адаптироваться к различным архитектурам платформами и компиляторами. Работает на macOS, Windows и Linux.
Хоппер-это инструмент обратного проектирования для macOS и Linux, что позволяет дизассемблировать, декомпилировать и отладки операционной системы (OS X только) свой 32/64бит процессор Intel с Mac, Windows и iOS (ARM) и исполняемые файлы.
с открытым исходным кодом х64/Х32 отладчик для Windows.
отладчик иммунитета является филиалом OllyDbg В1.10, со встроенной поддержкой для написания скриптов на Python и многое другое.
ЧП проводник дизассемблер предназначен, чтобы быть легким в использовании по сравнению с другой дизассемблеры. В этой связи, некоторые функции нашли В других продуктов был оставлен для того, чтобы держать процесс простой и быстрый. В то время, как мощный, как более дорогие, выделенных дизассемблеры, ЧП исследователь фокусируется на простоте использования, наглядности и навигация.
Hiew-отличный дизассемблер, предназначенные для хакеры, как имя предполагает. Он поддерживает три режима - текст, шестнадцатеричный декодировать (демонтажу) режиме.
В онлайн-дизассемблер-это бесплатный веб-основе, обратный инженерные платформы, что поддерживает более 60 организаций и объектов форматов из всех основные операционные системы, включая Windows, Mac ОС X, Linux и мобильных У платформ.
Relyze является коммерческой интерактивный дизассемблер для x86, x64 и ARM программное обеспечение с грузчиками для PE или ELF форматы файлов. Он поддерживает интерактивные плоская и графической видом на разборку, генерируя вызов > и ссылочные графы, бинарные сравниваете два исполняемых файла, исследуя > в исполняемый файл's структура и Руби плагин API. Она также может обрабатывать такие вещи, как символы (pdb и#39;ы), функции локальных переменных, переключатель заявления, обработчики исключений, статические библиотеки идентификации и больше.
Медузы с открытым исходным кодом дизассемблер с x86, х64, Z80 и частичное поддержка ARM. Она работает на Windows и Linux. Он имеет интерактивные плоская и представления графа.
Если вы ищете соперника, то я считаю, что ImmunityDebugger и OllyDbg могут конкурировать частично за [tag:dynamic-analysis] и Hopper частично за [tag:static-analysis].
Тем не менее, существует большой разрыв между возможностями, которые вы получаете с помощью вышеупомянутых программ и IDA.
IDA Pro довольно уникален своими возможностями, а если добавить в уравнение плагин Hex-Rays Decompiler Plugin, то ситуация выглядит мрачно для претендентов на победу. Однако для повседневной разборки и даже некоторой декомпиляции Hopper кажется хорошим выбором для тех, кто не готов выложить сотни баксов за IDA Pro. Если вы хотите бесплатной езды, radare2, вероятно, следующий в очереди, но к нему нужно привыкнуть.
Получив свою первую лицензию IDA Pro Standard еще студентом, я должен признать, что цена на нее высока, но она стоит каждого пенни. Когда я начал профессионально работать с вещами, связанными с RCE, я сначала перешел на "обычную" лицензию, а затем перешел на IDA Pro Advanced, чтобы получить поддержку x64.
Также не забывайте, что существует бесплатная версия IDA с лицензионными ограничениями (но подходит для любителей или студентов) и ограничениями возможностей.
Некоторые другие дизассемблеры / декомпиляторы
W32Dasm <БР>W32DASM был отличным 16/32-битный дизассемблер для Windows, кажется, он больше не развивается. последняя доступная версия-от 2003 <п> камень <БР>Дипломный проект представляет собой легкий мультиплатформенный, мульти-архитектура рамках разборки. <п> Борг дизассемблер <БР>Борг-это отличный Win32 с дизассемблера с GUI. <п> РС студия дизассемблер <БР>ДСМ Studio-это простой в использовании, но всеобъемлющий приложение, которое может помочь вам в разборки и проверки исполняемых файлов, причине для архитектуры Intel х86. <п> программа <БР>Decompiler является простым в использовании и просто приложение, предназначенное для чтения программы и декомпилировать исполняемый файл или dll-файлы. Приложение предназначено для декомпилировать исполняемые файлы для любой архитектуры процессора, а не быть привязанной к определенному набору инструкции. Хотя в настоящее время реализована только в х86 передний конец, ничто не препятствует тебе от реализации 68k, так, СПАРК, или VAX переднего плана, если он вам нужен. <п> Лида - ОС Linux интерактивный дизассемблер <БР>Лида-это быстрый многофункциональный интерактивный дизассемблер эльф / код/cryptoanalyzer на основе ублюдки libdisasm <п> BugDbg 64-разрядной версии v0.7.5 <БР>BugDbg x64 является пользователем земельного отладчик предназначен для отладки 64-разрядных приложений. BugDbg выпущен как freeware. <п> distorm3 <БР>легкий, простой в использовании и быстрый дизассемблер/Разлагателя библиотеки для x86/amd64 на <п> Udis86 <БР>Udis86-это простой в использовании, минималистичный библиотека дизассемблер (libudis86) для класса х86 архитектур системы команд. Он имеет удобный интерфейс для использования в анализе и инструментария двоичного кода. <п> BeaEngine <БР>этот проект представляет собой пакет с мульти-платформы и библиотеки для архитектуры x86 и x64 дизассемблер (Солярис, Mac и OSX, AIX и Irix версии ОС OS/2, Linux и ОС Windows) <п> С4 декомпилятор
- Общий машинный код в C декомпилятор
- Бесплатно Windows І64и выпуск
- Интерактивный графический интерфейс Windows. <п> запись в студии 4 - обратный инженерные компилятор <БР>отдых Studio-это интерактивный декомпилятор. Он читает Windows, Линукс, Мак ОС Х или сырые исполняемый файл, и пытается произвести на C-как представление кода и данных, используемых для построения исполняемого файла. Она была разработана, чтобы читать файлы, созданные для разных целей, и он был составлен на нескольких хост-систем. <п> Переназначаемая декомпилятор <БР>в переназначаемая декомпилятор, который может быть использован для восстановления исходного кода, статический анализ вредоносных программ и др. Декомпилятор должен быть не привязаны к какой-либо конкретной целевой архитектуры, операционной системы, или исполняемый файл формата. <п> миазм <БР>миазм является свободным и открытым исходным кодом (GPLv2 в) обратного инжиниринга фреймворк, написанный на Python. Миазм направлено на анализ/изменение/генерации двоичных программ. <п> бесплатный код манипуляции библиотека <БР>это универсальный машинный код манипуляции библиотека для IA-32 и Intel 64 архитектур. Библиотека поддерживает Unix-подобных систем, а также для Windows и портативный. <п> для Intel® х86 кодер декодер программного обеспечения библиотека <БР>процессор Intel® основных-это библиотека программного обеспечения (и их заголовки) для кодирования и декодирования х86 (архитектурой ia32 и Intel64) инструкции. <п> грж <БР>грж-это платформа для анализа бинарников. Она посвящена статической и динамической символической (на"concolic" с) анализа, что делает его применимым для различных задач. <п> джеб декомпилятор <БР>джеб-это реверс-инжиниринг платформы, чтобы выполнить разборку, декомпиляцию, отладки и анализа кода и файлов документов, вручную или в составе конвейера анализ. <п> резца <БР>на Qt и C++ GUI для реверс-инжиниринга radare2 базы (первоначально Iaito). Резец не направлена на существующие пользователи radare2. Вместо этого она фокусируется на тех, кто еще не radare2 пользователей из-за кривой обучения, потому что они не'т, как приложений командной строки или из-за сложности/нестабильность radare2. <п> REDasm <БР>REDasm представляет собой интерактивный, multiarchitecture дизассемблер, написанный на C++ с использованием Qt5 в рамках пользовательского интерфейса. Ее ядром является легкий и простой, он может быть расширен для поддержки новых наборов инструкций и форматов файлов.
Обратный - инженерный инструмент для x86/АРМ/МИПС. Создает отступ псевдо-C с цветным синтаксиса.
SmartDec (он же снеговик) представляет собой нативный код на C/с++ декомпилятор. Поддержка ПЭ и эльф (32 и 64bit) также имеет плагин модули для IDA (6.1, 6.4, 6.5).
В настоящее время поддержка процессоров Intel x86 и x86-x64 архитектурами. Реконструкция с++ поддерживает 32-битные Аби используемого компилятора MSVC под Windows.
С реконструкции является универсальным и может быть использован в коде практически любой компилятор для x86 и x86-x64 архитектурами.
Еще один механизм, чтобы проверить это VDB и Распотрошишь
Relyze является коммерческой интерактивный дизассемблер для x86, x64 и программного обеспечения АРМ с грузчиками для PE или ELF форматы файлов. Он поддерживает интерактивные плоская и графической видом на разборку, генерируя вызов и справка графики, двоичный сравниваете два исполняемых файла, исследуя исполняемый файл's структура и Руби плагин API. Он также может обрабатывать вещи, как символы (pdb-файл'ы), функции локальных переменных, операторы Switch, обработчики исключений, идентификации статических библиотек и многое другое.
Медуза является открытым исходным кодом дизассемблер с x86, х64, Z80 и частичной поддержки рукоятки. Она работает на Windows и Linux. Он имеет интерактивные плоская и видом на график.
Одно из моих любимых альтернатив Ида редактор ХТ.
Я'вэ использовал его на x86 и x64 двоичных файлов и файлов класса java. Я думаю, он имеет поддержку для многих других архитектурах/байткода. Это кросс-платформенный и имеет некоторые приятные особенности.
В последнее время я использую Hopper, и хотя он не дотягивает до уровня IDA, он действительно удивительно сложен, особенно учитывая его стоимость. Основная платформа - OS X, но есть версии и для Linux и Windows. Версия для OS X также имеет некоторую интеграцию с gdb, поэтому вы можете использовать ее в качестве отладчика.
Просто для полноты картины: еще один дизассемблер, Бинарные ниндзя:
А сейчас (9/26/2016) он имеет следующие свойства:
Я бы еще добавил
С PEBrowse дизассемблер, можно открыть и изучить исполняемый без необходимости его загрузки в рамках активной процесс с помощью отладчика. Приложения, системные библиотеки DLL, устройство-драйверы > и Майкрософт .Net-сборок все кандидаты для автономного анализа помощью программы PEBrowse. Информация организована в удобный TreeView элемент индекса с основными подразделениями архив PE отображается в виде узлов. В большинстве случаев выбор узлов позволит контекстная несколькими посмотреть меню, включая двоичный дамп, В разделе детали, разборки и опции структуры, а также отображение подпунктов, таких как необязательный заголовок записи в каталоге или экспортируемые функции, которые могут быть найдены как часть файла блока ПЭ. несколько таблица показывает, шестигранные/эквиваленты ASCII, окно сообщений и коды ошибок, а также калькулятор и scratchpads доступны из главного меню (калькулятор, сообщения и коды в PEBrowse профессиональные только).
Это удивительный инструмент с большим количеством полезных функций, касающихся исполняемых анализ, и есть также версия, которая может быть использована и интерактивный отладчик.
Вы проверили с открытым исходным кодом база Metasm? Это фреймворк Ruby для манипуляции ассамблеи, и смогут конкурировать с Ида'статические возможности анализа С. Она имеет вид графика, можно сделать демонтаж/декомпиляции на x86/64, MIPS и PPC и поддерживает пару форматы исполняемых файлов.
Я считаю, что она также была включена в проекта Metasploit.
ОДА (Интернет-дизассемблер) поддерживает множество архитектур и обеспечивает базовый набор функций. Вы можете ввести двоичные данные в прямом эфире смотреть и смотреть разборках появляются при вводе, или вы можете загрузить файл разобрать. Приятной особенностью этого сайта является то, что вы можете поделиться ссылкой на разборки с другими.
ScratchABit является открытым исходным кодом, интерактивные, инкрементные, прямые манипуляции(*) дизассемблер с IDAPython-совместимый API, позволяющий повторное использование множества плагинов, разработанных сообществом. ScratchABit магазинах государственной программы в текстовых файлах, что позволяет легко повторного использования информации и взаимодействия с другими приложениями и скриптами, или отслеживание истории и совместной работы с использованием систем контроля версий, и минимизируя риск повреждения базы данных и усилий по восстановлению.
Полное раскрытие: я'м автор ScratchABit и незавершенного проекта.
(*) Прямая манипуляция означает, что вы нажимаете клавишу Command и сразу же получить реакцию, вы не'т необходимость ввода длинных команд вручную с указанием адреса и параметров и нажмите Enter.
Первый инструмент, который приходит на ум, это Hopper, который больше не привязан к OSX. Он имеет некоторую поддержку отладки (по крайней мере, на OSX), но фокусируется на статическом анализе, что похоже на то, что вы ищете.
В нем есть возможность разбивать основные блоки на графы потока управления, рудиментарная поддержка декомпиляции, и вы можете переименовывать функции по мере их понимания. Возможно, кто-то, кто использует его вместо IDA, сможет привести более точное сравнение, я лишь бегло поиграл с ним.
Кроме того, бесплатная версия IDA довольно функциональна и заслуживает внимания, если вы ее еще не пробовали.