Аналогов конечно нет. По техническим крутостям это гигантская "топорная" штука т.е. за 20 лет многие другие могли-бы сделать аналог, при соответствующем финансировании. Главный досадный недостаток это плохая заточенность под MASM.
по соотношению цена/качество ида - полный гуан... хексрейз - полный гуан... ильфак - полный гуан... есть несколько опенсорцовых проектов интеллектуальных дизассемблеров и декомпиляторов в си код, которые пытаются за пару лет догнать наработки ильфаковской конторы за десятки лет... но пока ни у кого из них не получилось сделать что-то стоющее... лично меня этот факт жутко расстраивает... то есть, резюмируя: рад бы не использовать иду, но не использовать иду не могу...
Зачем-же так. Ни один опенсорцовый проект даже по отдельным деталям не превосходит IDA, просто констатация факта. Цена/качество прежде всего не на российский реалм расчитана.
именная лицензия IDA Pro = 809 евро именная лицензия IDA Pro + Hex-Rays = 1721 евро ни на про версию, ни тем более на хексрейз у меня денег нет...
да и хрен с этой лицензией, боевой набор уплывший от есета во всю везде гуляет. я иду использую иногда в паре с дебугером, не идовым конечно, ибо высер. в основном конечно в статическом анализе.
Мне кажется странным, что не упомянули самого главного: это единственный годный инструмент для восстановления логики\алгоритмов бинарей не имея исходного кода, т.е. не просто повтыкать в бинарь пару часов и вытащить оттуда какой-нибудь нюанс, а долго полностью\почти полностью восстанавливать логику всей программы, иерархию классов или структур и т.д. Одно дело когда у тебя бинарь с символами, и ты просто как бы почитал "ассемблерный исходник", другое дело когда ни одного символа нет и в итоге тебе как бы нужно руками как-то адекватно "назвать" все функции, извлечь и изучить структуры\классы и их методы. Собственно имхо, что для этого абсолютно необходимо, и что ставит иду в отношение "продвинутый ИДЕ" - "блокнот" в отношении других аналогичных инструментов, если спроецировать реверсинг на разработку серьезного проекта : - определение собственных типов данных, возможность их динамического расширения, редактирования и самое главное применение имен полей этих типов к константным смещениям + база стандартных типов, если бы этого не было реверсинг усложнился бы в разы. - то же с константами, имхо гораздо менее критично, но удобно и очень полезно - перекрестные ссылки -- почти всегда находятся исчерпывающе и адекватно, опять же особенно на ранних этапах восстановления логики, смысл того что делает функция (по крайней мере по моему опыту) во многом извлекается из контекста ее вызовов, чем больше вызовов можно проанализировать, тем понятней становятся типы аргументов и их значение и т.д. Про ссылки на данные как бы вообще ценность очевидна =) - комментарии, в которые можно включать адреса, по которым потом можно переходить, объявление прототипа функции, которое потом автоматом апплаится в комментами на все пуши аргументов при любом ее вызове - часто экономит порядочно времени -назвать-переназвать можно любую фигню, от локальной переменной, до регистра в функции, опять же проапплаить структуру на любую область памяти -адекватнейшее распознование локальных переменных при любом виде адресации, если ида что-то не совсем правильно видит - всегда можно указать\поправить руками, то же относится к определениям функций. - все это дело отлично скриптуется, что часто экономит кучу времени - хекс-рэйз - имхо прикольная штука, но лично я ставлю ее полезность под большое сомнение, прикинуть в общих чертах, что делает функция, когда не нужно вникать в детали - ок, изучать подробно код - мне удобней в ассемблерном виде. Ну это как бы очевидные все вещи. Ну и с другой стороны для анпака, изучения обфусцированного кода ида не оч пригодна, я пару раз пытался мазохистически что-то поколупать в статике со скриптами - очень быстро бросил эту затею, хотя возможно просто я не знаю каких-то ида-фишек для этого =)
если существует хороший дисасм, двух или трех проходной, то без иды точно можно обойтись. Это ключ, думается. Кстати, не ковырял еще, никто не знает база Иды открыта или нет? Можно к ней утилиту свою присобачить?
Прежде всего - единственный дизассемблер с приличным гуем, позволяющим наращивать метаданные по ходу исследования программы - именовать адреса, методы, комментарии писать и т.п. Потом - FLIRT Потом - скриптовый язык. Как забросивший олдскульщик, с hexrays дела не имел.
scf Да где же он приличный? Архаичный донельзя, Ильфак походу доисторический консольный движок всё пилит-пилит, пристрелить не может. Сейчас же моден закос под веб-морбу с гиперссылками и всей хнёй. Однако другой иды у нас нет.