Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Декомпилятор для Delphi 7


Автор: astradan 23.4.2006, 22:46
Вообще существует такое понятие декомпилятор для Delphi. чтоб из exe файла выдал весь проект проги с *.dpr, *.pas ну всем остальным..  
А то исходники потерял в результате падения 40 гб инфы. 

Автор: Albinos_x 23.4.2006, 23:10
DeDe
только в процедурах выдаёт ассемблерный код, результат не откомпилишь, переменные не восстанавливает, и в ассемблерном коде для вызва различных процедур и функций использует вызов по адресу 
к примеру:
call 0040400

поэтому восстанавливать код нужно будет в ручную, если хорошо знаешь ассмеблер думаю проблем не возникнет... 

Автор: Yanis 24.4.2006, 00:16
Исходники можно восстановить в виде ассемблерного кода. Ресурсы типа dfm файлов можно посмотреть и подпавить через Restorator. 

Автор: Albinos_x 24.4.2006, 01:07
Цитата(Albinos_x @  23.4.2006,  23:10 Найти цитируемый пост)
только в процедурах выдаёт ассемблерный код, результат не откомпилишь, переменные не восстанавливает, и в ассемблерном коде для вызва различных процедур и функций использует вызов по адресу 
к примеру:
call 0040400

поэтому восстанавливать код нужно будет в ручную, если хорошо знаешь ассмеблер думаю проблем не возникнет... 

забыл упомянуть, что формы восстанавливает без проблем... 

Автор: Sunvas 24.4.2006, 01:07
Да нифига вы не восстановите! Только ассемблерный код и все. Даже если и хорошо знать ассемблер нужно еще иметь и хорошую соображалку чтобы перевести программу из низкоуровневого когда в высокоуровневый. Конечно если программка просто то это сделать будет не слоно, но если довольно заковыристая то ваще никак! 

Автор: Albinos_x 24.4.2006, 01:17
Цитата(Sunvas @  24.4.2006,  01:07 Найти цитируемый пост)
Да нифига вы не восстановите! Только ассемблерный код и все. Даже если и хорошо знать ассемблер нужно еще иметь и хорошую соображалку чтобы перевести программу из низкоуровневого когда в высокоуровневый. Конечно если программка просто то это сделать будет не слоно, но если довольно заковыристая то ваще никак!

ну формы восстановятся, далее если сам писал прогу, то код по аасемблерному восстановить можно, в другом случае, нужно очень долго промучаться... 

Автор: Sunvas 24.4.2006, 01:57
Цитата(Albinos_x @  24.4.2006,  01:17 Найти цитируемый пост)
ну формы восстановятся

Ну да.. Это если компонентов всяких извращенных не использовал.
Цитата(Albinos_x @  24.4.2006,  01:17 Найти цитируемый пост)
далее если сам писал прогу, то код по аасемблерному восстановить можно, в другом случае, нужно очень долго промучаться... 

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

Автор: Yanis 24.4.2006, 02:03
Цитата(Sunvas @  24.4.2006,  01:57 Найти цитируемый пост)
то легче будет восстановить по логике чем по ассемблеру.   

Ошибаешься. 

Автор: Sunvas 24.4.2006, 02:18
Цитата(Yanis @  24.4.2006,  02:03 Найти цитируемый пост)
Ошибаешься. 

Да, я вот сейчас дизасемблировал одну программу и понял, что вообще текст программы высокого уровня восстановить не удасться. Так что лучше на это дело забить. 

Автор: SerGreY 24.4.2006, 11:14
Если бы так легко можно было получить исходники из ехе-шников, можно бы было вскрыть любую программу.
Я сам пробовал небольшую прогу делфовую восстановить. Реально возможно получить только ASM-код. 

Автор: astradan 24.4.2006, 15:55
может дадить прямую ссылку на деасемблер 

Автор: Leningrad 24.4.2006, 16:37
Вообще самая лучшая программа декомпиляции на данный момент это:
DeDe 
DeDe довольно шустрая программка, позволяющая анализировать экзешники, скомпилированные в Delphi. После декомпиляции DeDe даёт Вам следующее: 
Все dfm файлы. Вы сможете открывать их и редактировать в Delphi 
Все объявленные методы с хорошо комментированным кодом на ассемблере с ссылками на строки, импортированных функций, методов и компонент в юните, блоки Try-Except и Try-Finally. 
Большое количество дополнительной информации. 
Вы можете создать папку Delphi проекта со всеми файлами dfm, pas, dpr. Не забудьте, что pas файлы содержат ассемблерный код. 

И всётаки один нюанс если вы откроете файл dpr или pas после декомпиляции то там будет ассемблерный код - но чтобы его перевести на нормальную форму , то это уже другая история, надо использовать другие программы для дешифровки асс кода...  

Автор: Yanis 24.4.2006, 16:39
Цитата(Leningrad @  24.4.2006,  16:37 Найти цитируемый пост)
дешифровки асс кода...  

Хорошая фраза... 

Автор: Leningrad 24.4.2006, 16:48
Цитата(Yanis @ 24.4.2006,  16:39)
Цитата(Leningrad @  24.4.2006,  16:37 Найти цитируемый пост)
дешифровки асс кода...  

Хорошая фраза...

Однако ты злостный флудер, я через минуту это исправил... Лучше бы помог как перевести код после дешифровки exe файла *.dfm, pas,dpr, txt в изначальный вид кода Delphi... 

Автор: Yanis 24.4.2006, 17:16
Цитата(Leningrad @  24.4.2006,  16:48 Найти цитируемый пост)
Лучше бы помог как перевести код после дешифровки exe файла *.dfm, pas,dpr, txt в изначальный вид кода Delphi...  

Прочитай весь топик от начала до конца. 

Автор: Sunvas 25.4.2006, 00:18
Цитата(Leningrad @  24.4.2006,  16:37 Найти цитируемый пост)
Все dfm файлы. Вы сможете открывать их и редактировать в Delphi 

Это если в программе не использованы всякие извращенские компоненты.

Цитата(Leningrad @  24.4.2006,  16:37 Найти цитируемый пост)
Все объявленные методы с хорошо комментированным кодом на ассемблере с ссылками на строки,

Но нужно учитывать, что все коментарии сделаны по шаблону и далеко не для каждого случая подходят.
Цитата(Leningrad @  24.4.2006,  16:37 Найти цитируемый пост)
Вы можете создать папку Delphi проекта со всеми файлами dfm, pas, dpr. Не забудьте, что pas файлы содержат ассемблерный код. 

Токо хрен ты после этого компильнешь программу! Т.е. после декомпиляции она точно работать не будет.
Цитата(Leningrad @  24.4.2006,  16:37 Найти цитируемый пост)
 надо использовать другие программы для дешифровки асс кода...  

Куда уж дальше дешифровать?? 

Автор: Leningrad 25.4.2006, 02:14
Подведём итог, итого получается идеальной программы нету чтобы декомпилировать exe , а если получиться то скомпилировать обработанное нельзя – итог таков декомпиляция просто нужна если хочешь хоть немного изучить программу, а не изменить и в дальнейшем делать под себя…. Надеюсь когда найдется программа которая обойдет шифровку при компиляции Delphi- это мечта )). Имхо люди ломают exe и без декомпиляции но единицы…. Но эту систему надо досконально изучать…. 

Автор: bems 25.4.2006, 04:14
Цитата(Leningrad @  25.4.2006,  02:14 Найти цитируемый пост)
и в дальнейшем делать под себя…

 smile  
Этим и заканчивается любая декомпиляция  smile  

Автор: Sh@dow 25.4.2006, 10:38
DeDe больше подходит для новичков, которые хотят разобраться в море компонентов. Смотрим на полученные формы после декомпиляции, изучаем накиданные компоненты, что для чего и зачем. Потом пытаемся все это как то связать.. Кстати можно много чего поучительного найти и не только новичкам smile.  

Автор: Sunvas 26.4.2006, 06:55
Наконец-то со мной согласились умные люди (Leningrad, bems, Sh@dow).
Декомпиляция - пустая трата времени, так что лучше не тратить его зря а заняться делом. 

Автор: Sh@dow 26.4.2006, 17:20
Цитата(Sunvas @ 26.4.2006,  06:55)
Декомпиляция - пустая трата времени, так что лучше не тратить его зря а заняться делом.

В принципе соглашуся. Но если и правда я декомпиирую СВОЮ прогу написанную скажем так лет 8 назад, то я могу получить следующие плюсы и минусы.
 + Мне не надо будет рисовать заново все формы 
-  за это время появилося много новых компонентов которые могли бы оживить интерфейс
 + Декомпилированый код создает как бы конву по которой я воссоздаю заново прогу 
- возможно за это время я уже чему то научился, что то подсмотрел у других... зачем мне сново наступать на свои грабли. 

и т.д. короче это тема еще та. 

Автор: Sunvas 27.4.2006, 07:56
Цитата(Sh@dow @  26.4.2006,  17:20 Найти цитируемый пост)
написанную скажем так лет 8 назад

Тогда и системы были другие и среда программирования немного хуже..


Цитата(Sh@dow @  26.4.2006,  17:20 Найти цитируемый пост)
Мне не надо будет рисовать заново все формы 

Ну сделать заново интерфейс это где-то 20% программы. И воссаздать его знаво обычно не составляет труда.


Цитата(Sh@dow @  26.4.2006,  17:20 Найти цитируемый пост)
Декомпилированый код создает как бы конву по которой я воссоздаю заново прогу 

Зачем же ее заново воссаздовать?? Лучше где-то надежно хранить исходник.


Цитата(Sh@dow @  26.4.2006,  17:20 Найти цитируемый пост)
В принципе соглашуся.

Вот и хорошо! 

Автор: EggHead 24.10.2013, 02:59
смотри декомпиляторы тут (по списку)
http://demono.ru/links.html

Автор: DYUMON 24.10.2013, 10:57
скачай IDR  он умеет генерить довольно понятный код

Автор: MetalFan 24.10.2013, 12:39
что это за шевеление трупа?

Автор: bems 24.10.2013, 14:20
MetalFan, а это участник, решивший продвинуть свой ресурс регистрируясь на форумах и оставляя ссылки

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)