Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: дизассемблер c++  (Прочитано 5713 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн qwerty12344321

  • Автор темы
  • Участник
  • *
  • Сообщений: 166
  • DIY or DIE
    • Просмотр профиля
    • мой GitHub
дизассемблер c++
« : 23 Февраля 2015, 11:34:37 »
Посоветуйте дизассемблер c++.Только в теме не надо хлам разводить типа "дизассемблеров нет для высоких уровней программирования" или "легче заново написать".дизассемблер c++ нужен только для само-развития.

Оффлайн Softwayer

  • Активист
  • *
  • Сообщений: 706
  • Arch Linux
    • Просмотр профиля
Re: дизассемблер c++
« Ответ #1 : 24 Февраля 2015, 16:38:49 »
Непонятно, что Вы подразумеваете под «дизассемблером C++». В привычном понимании этого слова дизассемблировать можно бинарник, и тогда неважно, на чём написан код. Если же у Вас есть C++-исходник и Вы хотите посмотреть, в какой ассемблерный код он скомпилируется, то это не дизассемблирование, а компиляция, и выполняется она чем-нибудь типа g++ -S source.cpp

Оффлайн qwerty12344321

  • Автор темы
  • Участник
  • *
  • Сообщений: 166
  • DIY or DIE
    • Просмотр профиля
    • мой GitHub
Re: дизассемблер c++
« Ответ #2 : 24 Февраля 2015, 16:44:40 »
Softwayer,
После компиляции имеется простенькая прога,надо посмотреть что было до компиляции.

Оффлайн Softwayer

  • Активист
  • *
  • Сообщений: 706
  • Arch Linux
    • Просмотр профиля
Re: дизассемблер c++
« Ответ #3 : 24 Февраля 2015, 17:04:44 »
А, то есть Вы хотите декомпилировать бинарник обратно в C++?
Есть такой boomerang, говорят, он даже работает (правда, декомпилирует в C).

Пользователь решил продолжить мысль 24 Февраля 2015, 17:12:22:
На самом деле, вменяемый декомпилятор в C++ реализовать не представляется возможным хотя бы по той причине, что при компиляции утрачивается достаточно много данных (например, те же темплейты); к тому же, компилятор при оптимизации может настолько изощрённо издеваться над кодом, что он будет не похож на исходный даже до компиляции. Ну и один и тот же код на C++ можно написать достаточно большим количеством способов, поэтому совершенно непонятно, во что декомпилировать тот или иной код.
« Последнее редактирование: 24 Февраля 2015, 17:12:22 от Softwayer »

Оффлайн qwerty12344321

  • Автор темы
  • Участник
  • *
  • Сообщений: 166
  • DIY or DIE
    • Просмотр профиля
    • мой GitHub
Re: дизассемблер c++
« Ответ #4 : 24 Февраля 2015, 17:14:21 »
Softwayer,
Спасибо,сеичас побробую

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: дизассемблер c++
« Ответ #5 : 24 Февраля 2015, 17:23:20 »
qwerty12344321, обычно можно гораздо проще дизассемблировать (тебе же не декомпилятор нужен)
objdump -d твой_бинарик

Оффлайн Softwayer

  • Активист
  • *
  • Сообщений: 706
  • Arch Linux
    • Просмотр профиля
Re: дизассемблер c++
« Ответ #6 : 24 Февраля 2015, 17:25:45 »
peregrine,
судя по фразе «надо посмотреть что было до компиляции», нужен как раз декомпилятор

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.