Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[35.171.45.182] |
|
Сообщ.
#1
,
|
||||||||||||||||||||||||||||
|
Привет реверс-инженерам. Это не рекламный пост. Я просто нашел для себя одно довольно прикольное
решение на замену дизассемблеру IDA с декомпилятором hex-rays (..., SmartDec, etc.) и теперь хочу поделиться, подкрепив салат порцией объективной инфы, кое-что сравнив. Думаю, есть много людей, которые это решение пока ещё не видели, потому что оно не особо популярно. Или по крайней мее, я не так часто встречаю упомянания об нем. Это дизассемблер-декомпилятор Hopper. Впечатление от этого инструмента у меня осталось настолько хорошее, что мне захотелось поделиться с теми, кто про хоппер пока не слышал. Собсно, идея в том, что некто Vincent Bénony (имеющий по его словам Ph.D в США) замутил на Qt-гуе дизассемблер-декомпилятор-отладчик, который работает на Mac OS X, Linux и Windows (автор - любитель apple-девайсов и софта, что мне симпатизирует). Вот workspace хоппера в работе. Этот дизассемблер-блабла похож на IDA, очень обрезанную IDA, в которой, не смотря на это, все же остался самый нужный "ядерный" функционал. Даже большинство хот-кеев соответствует по смыслу. Хоппер использует и другие популярные бесплатные/условно-бесплатные компоненты, такие, как Graphviz (для рендеринга control-flow graph) и LLVM (видимо, для компиляции С-like выражений и других символьных заморочек). Дизассемблер у хоппера поддерживает множество нужных форматов бинарников (включая Win32, ELF, Mach-O), поддерживает, в частности, x86_64 и ARMv7. А самое главное - декомпилятор у Hopper спокойно декомпилирует x64- и ARM- код!. Инструментам, предоставленным юзеру хоппером, конечно, не достает некоторой гибкости и детализированности. Например, окно control-flow graph (graphviz) имеет только zoom +/- и save pdf и выглядит так: Быстрой навигации нет ни по декомпилированному коду, ни по графу: Но тем не менее, я уверен, что автор рано или поздно все это добавит (я ему даже написал всяких предложений на мыло, включая предложение бесплатно помочь в разработке), да и в большинстве задач без этой гибкости вполне можно жить и не обламываться. Раз уж пошел разговор о том, чего нет, но хотелось бы, тобишь, о минусах, то, пожалуй, дам себе волю высказаться. А потом я по-нормальному опишу IDA в сравнении с Hopper и покажу плюсы. Теперь очень хочется поговорить о плюсах. О том, почему я вообще обратил внимание на это изделие и купил себе его. Конечно, кое-где я сравниваю его с пиратской IDA, это абсолютно не честно, но все же из-за того, что много ресирчеров используют именно пиратскую IDA (просто не говорят ), такого рода сравнение будет все же актуально. Итак, IDA 6.1 не понимала у меня некоторые Mach-O бинарники от iOS: вместо нормальных ARMv6 - инструкций из instruction set-а отображались сплошные DB, т.е. байтовые значения в секции кода. Я уже собрался дописывать к IDA свой cpu-модуль или как-то фиксить существующий, но заметил, что у Hopper-а такой проблемы нет. Итого, он понимает самые последние бинарники, взятые с iPhone with ARMv7, из iOS7. Это было для меня первым преимуществом. Во-вторых, выяснилось, что в отличии от IDA, у которой есть только x86- и ARM-декомпиляторы (причем они оба стоят значительных денег ~ 2000$, а в паблик утекает только x86-), Hopper нормально декомпилирует и ARM и x86 и x64 ! Поддерживается Objective-C. Да, тут конечно нет кропотливой работы над Signature повадок компиляторов, т.е. то, что применяет IDA, чтобы понять, каким компилятором был сгенерирован код для более гладкой его декомпиляции. Тут бывает слишком много Label-ов. Не такой удобный GUI. Но в целом код понятен и никаких страшных глюков я не заметил. Работать можно, сомнений быть не может. Считаю, что это огромный плюс. Кстати, да, в отличии от SmartDec В-третьих, цена. Цена Hopper - самое приятное, смотрите сами.
Bundles:
Для сравнения, IDA Pro с декомпилятором hex-rays для ARM обойдется вам примерно в 3000$. Ну и в четвертых, создается ощущение, что Hopper таки будет развиваться быстро и в нужную сторону, автор, надеюсь, открыт предложениям и пожеланиям. Хотя на почту он мне так и не ответил Вот FAQ на оффсайте http://www.hopperapp.com/faq.html И ещё там у них есть туториал http://www.hopperapp.com/tutorial.html А вот физиономия автора:) Всем технических успехов! |