На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Hopper: pretty new disassembler , /Debugger/Decompiler
    Привет реверс-инженерам. Это не рекламный пост. Я просто нашел для себя одно довольно прикольное
    решение на замену дизассемблеру IDA с декомпилятором hex-rays (..., SmartDec, etc.) и теперь хочу
    поделиться, подкрепив салат порцией объективной инфы, кое-что сравнив.
    Думаю, есть много людей, которые это решение пока ещё не видели, потому что оно не особо
    популярно. Или по крайней мее, я не так часто встречаю упомянания об нем.
    Это дизассемблер-декомпилятор Hopper. Впечатление от этого инструмента у меня осталось
    настолько хорошее, что мне захотелось поделиться с теми, кто про хоппер пока не слышал.

    Собсно, идея в том, что некто Vincent Bénony (имеющий по его словам Ph.D в США) замутил
    на Qt-гуе дизассемблер-декомпилятор-отладчик, который работает на Mac OS X, Linux и Windows (автор -
    любитель apple-девайсов и софта, что мне симпатизирует).

    user posted image

    Вот workspace хоппера в работе.

    user posted image

    Этот дизассемблер-блабла похож на 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 и выглядит так:

    user posted image

    Быстрой навигации нет ни по декомпилированному коду, ни по графу:

    user posted image

    Но тем не менее, я уверен, что автор рано или поздно все это добавит (я ему даже написал всяких
    предложений на мыло, включая предложение бесплатно помочь в разработке), да и в большинстве задач без этой гибкости вполне можно жить и не обламываться.

    Раз уж пошел разговор о том, чего нет, но хотелось бы, тобишь, о минусах, то, пожалуй, дам себе волю
    высказаться. А потом я по-нормальному опишу IDA в сравнении с Hopper и покажу плюсы.

    • Отладка только через gdbserver для Hopper. Он есть только под Mac OS X и доступен на оффсайте. Хотя это инструмент для декомпиля и дизасма, с отладчиками всё и так в порядке, они есть.
    • Не хватает навигации в окне декомпилированного кода. Это просто текст в QEditBox-е. DClick/Enter, переводящего на идентификатор, как в IDA/hex-rays, нет.
    • Определение границ процедуры сделано не так дотошно, как в IDA. Тоесть, некоторые функции просто не декомпилируются, потому что hopper не может сам определить где конец. Есть проблема с множественными RET - один из них может стать концом там, где есть ещё продолжение (какой-то код).
    • Нет imports/exports viewer-ов. Но думаю, что advanced-исследователю, автоматически декомпилирующему код и ксорящему DWORD-ы в уме нужны только самые базовые функции работы с кодом, а перегруженный кнопочками интерфейс как у IDA не особо-то и нужен.

    Теперь очень хочется поговорить о плюсах. О том, почему я вообще обратил внимание на это изделие
    и купил себе его. Конечно, кое-где я сравниваю его с пиратской 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 :)

    user posted image

    В-третьих, цена. Цена Hopper - самое приятное, смотрите сами.

    USDEUR
    Hopper for Mac$5945€
    Hopper for Windows$4535€
    Hopper for Linux$4535€


    Bundles:

    USDEUR
    Mac + Windows$83.264€
    Mac + Linux$83.264€
    Linux+Windows$7256€
    Mac + Windows + Linux$104.380.5€


    Для сравнения, IDA Pro с декомпилятором hex-rays для ARM обойдется вам примерно в 3000$.

    Ну и в четвертых, создается ощущение, что Hopper таки будет развиваться быстро и в нужную сторону,
    автор, надеюсь, открыт предложениям и пожеланиям. Хотя на почту он мне так и не ответил :)

    Вот FAQ на оффсайте
    http://www.hopperapp.com/faq.html

    И ещё там у них есть туториал
    http://www.hopperapp.com/tutorial.html

    А вот физиономия автора:)

    user posted image

    Всем технических успехов!
    Сообщение отредактировано: reinterpret_alexey -
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0184 ]   [ 15 queries used ]   [ Generated: 10.09.24, 21:56 GMT ]