Visual C decompiler, Получить исходный код программы
Гость_Undertacker_*
сообщение 12:12:2003, 15:53
Сообщение #1




      



Visual C decompiler/uncompiler/disassambler

Встречал ли кто утилиту по восстановлении исходного текста на C из выполняемого файла?
Примерно тоже, что делает IDA, но для C.
Ведь большинство функций используется из стандартных библиотек, да и другие правила компиляции известны.

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

для Turbo C вроде как существует...

посмотрел plugin для IDA - Desquirr, отчасти решает эти вопросы
Перейти в начало страницы
 
Цитата Цитировать сообщение
 
Start new topic
Ответов (1 - 17)
Серёга
сообщение 12:12:2003, 21:15
Сообщение #2

Репутация:     12  



Undertacker
Ну полный код такая утила не восстановит, только что приблизительно. Такие есть, но для C++ не знаю такого, я не спец по ним. Мот прийдет кто потолковее типа kagor или ????.


--------------------
В отъезде.
Перейти в начало страницы
 
Цитата Цитировать сообщение
kagor
сообщение 12:12:2003, 21:47
Сообщение #3
Вставить ник
Продвинутый
Иконка группы

Репутация:     0  



Серёга
Не знаю как насчет ???? но, я таких программ не видел, всегда пользовался дизассемблерами типа IDA или W32Dasm.

Сообщение отредактировал kagor - 12:12:2003, 21:52


--------------------
Disassemble Your life and get the key!
Перейти в начало страницы
 
Цитата Цитировать сообщение
AlexGin
сообщение 12:12:2003, 22:23
Сообщение #4
Вставить ник
Разработчик "Inet"
Иконка группы

Репутация:     0  



Однозначное восстановление кода по исполнимому файлу
для языков высокого уровня (и тем более об'ектно ориентированных)
- задача очень сложная и слабо поддающаяся автоматизации.

ИМХО существующие программные средста скорее
могут запутать, чем помогут что-то прояснить...

Для ассемблеров - эта задача вполне реализуемая и
относительно простая.
Перейти в начало страницы
 
Цитата Цитировать сообщение
Гость_Папа программирования_*
сообщение 14:12:2003, 12:51
Сообщение #5




      



Ок. Хорошо. Можно восстановить по паттернам стандартные библиотеки.
Как восстановить небиблиотечный код? Особенно после а) утери смысла переменных, б) оптимизвции компилятором.

другое дело что результат получаемый далек от идеала
даже не от что от идеала, а от вообще смысла декомпиляции...
Прогу в три строчки можно осилить и самому... А приличный проект - ни с помощью магического "декомпилятора" ни в лоб... Просто не потянешь. Нужно очень хорошо представлять - как оно работает, но если представляешь - почему бы не написать самому??

ЗЫ Я по работе частенько лажу по ВЦ-шному коду... Тут иногда не то что декомпилятор, тут у самого глаза вылязят, особенно если оптимизация включена.
Перейти в начало страницы
 
Цитата Цитировать сообщение
Гость_::medium_*
сообщение 25:03:2004, 10:24
Сообщение #6




      



[SIZE=7][COLOR=red]
Все это лажа!!!
WinDasm
SI
IDA
А декомпиляция если и пройдет, то ни фига не понятно будет!!
Перейти в начало страницы
 
Цитата Цитировать сообщение
Серёга
сообщение 25:03:2004, 16:07
Сообщение #7

Репутация:     12  



::medium
ну естественно.
ну хоть что-то рахобрать можно. (IMG:http://forum.codeby.net/style_emoticons/default/smile.gif)


--------------------
В отъезде.
Перейти в начало страницы
 
Цитата Цитировать сообщение
Kernel
сообщение 29:03:2004, 04:15
Сообщение #8
Вставить ник
Новенький
Иконка группы

Репутация:     0  



Просто декомпилятор для С

asm
{
//Ассемблерный код полученный из любого дизассемблера
}

(IMG:http://forum.codeby.net/style_emoticons/default/smile.gif)


--------------------
This message was sent with 100% recyclable electrons.
Перейти в начало страницы
 
Цитата Цитировать сообщение
Гость_SkipZoner_*
сообщение 3:04:2004, 19:15
Сообщение #9




      



Папа программирования

(IMG:/quotes/quot-top-left.gif) Цитата: (IMG:/quotes/quot-top-right.gif)
(IMG:/quotes/quot-top-right-10.gif)
 
Ок. Хорошо. Можно восстановить по паттернам стандартные библиотеки.
Как восстановить небиблиотечный код? Особенно после а) утери смысла переменных, б) оптимизвции компилятором.
(IMG:/quotes/quot-bot-left.gif) (IMG:/quotes/quot-bot-right.gif)


Смотря что ты хочешь получить на выходе.
1) смысл переменных можно восстановить анализируя и трассируя полученный код на С
2) оптимизация тоже не помеха если понимать оптимизатор


(IMG:/quotes/quot-top-left.gif) Цитата: (IMG:/quotes/quot-top-right.gif)
(IMG:/quotes/quot-top-right-10.gif)
 
другое дело что результат получаемый далек от идеала
даже не от что от идеала, а от вообще смысла декомпиляции...
(IMG:/quotes/quot-bot-left.gif) (IMG:/quotes/quot-bot-right.gif)


У тебя есть примеры ? Какого идеала ?


(IMG:/quotes/quot-top-left.gif) Цитата: (IMG:/quotes/quot-top-right.gif)
(IMG:/quotes/quot-top-right-10.gif)
 
Прогу в три строчки можно осилить и самому... А приличный проект - ни с помощью магического "декомпилятора" ни в лоб... Просто не потянешь. Нужно очень хорошо представлять - как оно работает, но если представляешь - почему бы не написать самому??
(IMG:/quotes/quot-bot-left.gif) (IMG:/quotes/quot-bot-right.gif)


Опять ты не прав. Приведу пример. Есть база данных с недокументированным внутренним стоением. Есть код (dll), ее читающий. Необходимо получить свои процедуры работы с базой.
1) Берем IDA, качественно дизассемблируем.
2) Берем (никем еще не написаный) интерактивный декомпилирующий плагин к IDA и переводим в Си функцию за функцией. (этот процесс можно делать и руками, но с декомпилятором процесс во много раз ускорится).
3) Компилим, трассируем и продолжаем восстанавливать алгоритмы если это нужно.
Не потянешь - ? Я тянул и тяну (IMG:http://forum.codeby.net/style_emoticons/default/wink.gif)
Конечно для понимания нужно представлять как оно МОЖЕТ работать.

(IMG:/quotes/quot-top-left.gif) Цитата: (IMG:/quotes/quot-top-right.gif)
(IMG:/quotes/quot-top-right-10.gif)
 
ЗЫ Я по работе частенько лажу по ВЦ-шному коду... Тут иногда не то что декомпилятор, тут у самого глаза вылязят, особенно если оптимизация включена.
(IMG:/quotes/quot-bot-left.gif) (IMG:/quotes/quot-bot-right.gif)


У тебя мало опыта и все тут.
Перейти в начало страницы
 
Цитата Цитировать сообщение
Гость_борисыч_*
сообщение 2:05:2004, 12:39
Сообщение #10




      




(IMG:/quotes/quot-top-left.gif) Цитата: (IMG:/quotes/quot-top-right.gif)
(IMG:/quotes/quot-top-right-10.gif)
 
Встречал ли кто утилиту по восстановлении исходного текста на C из выполняемого файла?
Примерно тоже, что делает IDA, но для C.
(IMG:/quotes/quot-bot-left.gif) (IMG:/quotes/quot-bot-right.gif)




Не уверен что такие уже существуют, но знаю, что разрабатываются. Например, можно сходить
]]>сюда]]>
Перейти в начало страницы
 
Цитата Цитировать сообщение
Гость_Gogan.exe_*
сообщение 5:05:2004, 06:09
Сообщение #11




      



Сколько С не учил, меня всегда убеждали, что ничего похожего на Декомпайлер нет, и быть не может! во как... а тут говорят, что есть... парадокс!
Перейти в начало страницы
 
Цитата Цитировать сообщение
AlexGin
сообщение 5:05:2004, 09:25
Сообщение #12
Вставить ник
Разработчик "Inet"
Иконка группы

Репутация:     0  



Да, просмотрел я на ]]>http://shulgaaa.at.tut.by]]> -
штука, конечно же, интересная и (вероятоно)
даже полезная, но информативности
в таком "высокоуровневом" C коде ИМХО не
больше, чем в голом ассемблерном.

Для целей изучения работы компилятора
инструмент неплохой, для изучения логики
задачи - похоже неудобный.

Что, например, за переменная _151h ?
Перейти в начало страницы
 
Цитата Цитировать сообщение
Гость_Guest_*
сообщение 17:05:2004, 16:36
Сообщение #13




      



sosis
Перейти в начало страницы
 
Цитата Цитировать сообщение
Гость_|_Guest_|_*
сообщение 5:06:2004, 01:34
Сообщение #14




      



]]>http://www.backerstreet.com/rec/rec.htm]]>
Перейти в начало страницы
 
Цитата Цитировать сообщение
Гость_logosman_*
сообщение 6:06:2004, 10:34
Сообщение #15




      



Да для VC++ декомпилер бы не помешал (к примеру dcc для GCU), но ещё больше нужен для Delphi, т.к. программисты в последнее время стали сверх ленивыми и пишут шаравары на Дельфинах и вообще о том что такое АСМ понятия не имеют!!! И ещё программистами зовутся, козлы...ой что-то меня понесло(IMG:http://forum.codeby.net/style_emoticons/default/smile.gif)
А вообще можно полазить на хорошо всем знакомом ]]>http://www.wasm.ru]]>

P.S. Может самому декомпилер начать писать?
Перейти в начало страницы
 
Цитата Цитировать сообщение
Гость_Gim_*
сообщение 7:06:2004, 17:43
Сообщение #16




      




(IMG:/quotes/quot-top-left.gif) Цитата: (IMG:/quotes/quot-top-right.gif)
(IMG:/quotes/quot-top-right-10.gif)
 
Да для VC++ декомпилер бы не помешал (к примеру dcc для GCU), но ещё больше нужен для Delphi, т.к. программисты в последнее время стали сверх ленивыми и пишут шаравары на Дельфинах и вообще о том что такое АСМ понятия не имеют!!! И ещё программистами зовутся, козлы...ой что-то меня понесло(IMG:http://forum.codeby.net/style_emoticons/default/smile.gif)
А вообще можно полазить на хорошо всем знакомом ]]>http://www.wasm.ru]]>

P.S. Может самому декомпилер начать писать?
(IMG:/quotes/quot-bot-left.gif) (IMG:/quotes/quot-bot-right.gif)



Да, начни. В этой жизни начнешь, а в следующей закончишь, безрогий ты наш.
Перейти в начало страницы
 
Цитата Цитировать сообщение
Гость_[zEX0dEx]_*
сообщение 22:06:2004, 13:47
Сообщение #17




      



Давайте возмём оракл, посмотрим на звёзды и сделаем универсальный декомпилер с любого языка програмирования да ещё с коментариями создателей (IMG:http://forum.codeby.net/style_emoticons/default/smile.gif) , всего лишь пару тысячилетий и мы по звёздам угадаем код программы (IMG:http://forum.codeby.net/style_emoticons/default/smile.gif)
Перейти в начало страницы
 
Цитата Цитировать сообщение
Гость_Hex_*
сообщение 3:07:2004, 11:50
Сообщение #18




      



Для Delphi и VB(Native) думаю легко можно написать компилятор. Там оптимизации 0. Сплошные паттерны.
Перейти в начало страницы
 
Цитата Цитировать сообщение

Ссылка на тему:
BBCode: 
HTML:      
Fast ReplyReply to this topicStart new topic

 

> Быстрый ответ
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись |  AJAX?
   

Свернуть

>

  Тема
Нет новых сообщений Visual Studio 2010
Поиск информации
0 Sediment 46 Сегодня, 05:33 Sediment
Нет новых сообщений Перевод программы C++ -> Visual Basic
2 vitx 264 8:07:2010 - 15:45 romanriddick
Нет новых сообщений Файловый менеджер Visual Basic
0 chelis 227 19:06:2010 - 07:02 chelis
Перемещена Перевод программы C++ -> Visual Basic
0 vitx 0 16:06:2010 - 17:37 vitx
Нет новых сообщений Графики в Visual Basic
Построение графика
2 Ranger11 330 6:06:2010 - 06:42 Ranger11