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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Декомпилляторы С/С++  (Прочитано 2395 раз)

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

Оффлайн Imago!

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
  • Информационная Эра. Информация превыше всего
    • Просмотр профиля
Декомпилляторы С/С++
« : 13 Ноября 2009, 12:49:20 »
Подскажите пожалуйста более-менее грамотные декомпилляторы... ???

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #1 : 13 Ноября 2009, 13:23:46 »
Дизассемлеры - это понятно.
А декомпилятоы С/C++ ... :-\

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #2 : 13 Ноября 2009, 20:11:56 »
более менее грамотный декомпилятор - это человек-специалист в этой области
Гы...

Оффлайн st_vladm

  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #3 : 13 Ноября 2009, 20:48:23 »
Есть такой дизассемблер IDA Pro. Он умеет опознавать вызовы функций Windows API. Возможно, знаком и с Linux. Облегчает понимание кода. А декомпиляторов  "в чистом виде" для компилируемых языков высокого уровня не существует.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #4 : 13 Ноября 2009, 20:52:56 »
st_vladm, ох зря ты сказал что их не существует. он же сейчас бросится писать такой декомпилятор =)

Оффлайн st_vladm

  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #5 : 13 Ноября 2009, 21:32:40 »
А вдруг напишет? Будет богаче создателя Гугла!  :D

Оффлайн Imago!

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
  • Информационная Эра. Информация превыше всего
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #6 : 13 Ноября 2009, 23:06:14 »
ну ладно вам тут холивары устраивать :coolsmiley: ну да, не разбараюсь я в программирование, что ж поделать, не особо люблю... просто есть пара простеньких прог, написанных на С или С++, и надо вытащить исходный код...

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #7 : 14 Ноября 2009, 20:28:13 »
мда... этот топик первый кандидат на субботник форума =) гы.
если не понимаешь, не любишь тогда плати тем кто плнимает и любит

P.S. исходники легче вытаскиваются терморектальным методом чем декомпилятором

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5761
  • Все по палатам!
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #8 : 14 Ноября 2009, 20:54:14 »
есть пара простеньких прог
Проще заново написать :idiot2:
Извините, я все еще учусь

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #9 : 14 Ноября 2009, 21:02:52 »
:LOL:, чувак, как найдешь - не забудь дать ссылку)))

Оффлайн st_vladm

  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #10 : 14 Ноября 2009, 21:07:46 »
Есть такая страшная вещь - оптимизация кода при компиляции. После нее бывает такой винигрет, что написать с нуля гораздо проще. Вот утрированный пример, в реальной жизни все еще хуже. Представь - есть 2 подпрограммы. Одна выводит слово "благоустроить", другая "строительство". Компилятор выделит участок, выводящий слово "строит", в отдельную подпрограмму, и будет вызывать ее из 2-х мест. Автор кода, понятное дело, так не задумывал. Но результат все равно одинаковый, а размер программы - меньше. Или такой случай. Есть функция, вычисляющая сложным способом результат на основе полученных аргументов. Функция несомненно имеет смысл, важный для понимания программы. Но, если в данной реализации она вызывается всего один раз и с одним константным аргументом -  компилятор вычислит результат и вместо вызова функции сделает присвоение переменной этого результата.

Декомпилированный код (допустим существование гипотетического декомпилятора) не будет идентичен исходному.

Оффлайн nikulyan

  • Активист
  • *
  • Сообщений: 858
  • Чем хуже дела у Мелкософта, тем лучше у Linux'а
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #11 : 15 Ноября 2009, 04:08:57 »
Если не разбираешься и не сможешь!
Получишь "кашу" на "выходе", тут ещё и думать много надо!

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #12 : 16 Ноября 2009, 08:23:50 »
Получаемый нативный код зависит от компилятора, которым компилировался исходный код. Про оптимизацию разговор особый.
Правильно люди говорят, что легче что-то свое написать, чем изучать машинный код.

Оффлайн bektau

  • Участник
  • *
  • Сообщений: 140
  • US 9.04, US 9.10 , Lucid 10.04 (fix)
    • Просмотр профиля
Re: Декомпилляторы С/С++
« Ответ #13 : 16 Ноября 2009, 09:24:47 »
сорри, никогда не занимался компилированием и дизассемблированием
так как далёк от этого, по роду своей деятельности.

а для чего тогда дизассемблеры ?
в целях образовательных хочу спросить,  что они могут дать и рекомендацию под Linux.

Lifewalker

  • Гость
Re: Декомпилляторы С/С++
« Ответ #14 : 16 Ноября 2009, 09:59:05 »
а для чего тогда дизассемблеры ?
в целях образовательных хочу спросить,  что они могут дать и рекомендацию под Linux.

Сейчас не более чем в познавательных целях. Современные оптимизирующие компиляторы, которые не только инлайн функции умеют обрабатывать, но и целые куски кода превращать в вермишель из переходов и размазывают данные по десятку регистров, превращают дело дизассемблирования и уж тем более декомпиляции в бессмысленную затею.

Единственное что можно теоретически вытянуть, так это общую структуру алгоритма и более или менее отследить что за чем следует.

 

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