Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];

Вниз

Есть ли декомпилятор прог написаных на делфи ?   Найти похожие ветки 

 
Фёдор Мегатронов   (2004-09-26 21:43) [0]

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

потому что по всем законам физики и квантовой термоджинамики - она работать отказываеться 8) я над ней сижу уже не первый месяц.


 
reticon ©   (2004-09-26 21:59) [1]

Удалено модератором


 
Dimaxx   (2004-09-26 22:15) [2]

DeDe - прога такая DElphi DEcompiler.


 
_silver ©   (2004-09-26 23:33) [3]

Декомпиляторов не существует по определению компиляторов.
Но DeDe - удобный дизассемблер для delphi.


 
Gero ©   (2004-09-26 23:35) [4]


> Декомпиляторов не существует по определению компиляторов.
> Но DeDe - удобный дизассемблер для delphi.

DeDe как раз это декомпилятор.


 
_silver ©   (2004-09-26 23:39) [5]

Я предполагая что Фёдор Мегатронов спрашивал "как из ехе получить код на паскале", а таких прог не было, нет и не будет.
DeDe - дизассемблер, заточеный под проги написанные на delphi.


 
Gero ©   (2004-09-26 23:42) [6]


> Я предполагая что Фёдор Мегатронов спрашивал "как из ехе
> получить код на паскале",

Вобще-то он спрашивал "Есть ли декомпилятор прог написаных на делфи ?".

> а таких прог не было, нет и не будет

Не факт.

> DeDe - дизассемблер, заточеный под проги написанные на delphi.

Декомпилятор. Так как кроме асма мы получаем еще и структуру проекта, и все формы.


 
_silver ©   (2004-09-26 23:43) [7]

Я долгое время сам занимался проблемой декомпиляции.
Перечитав кучу книг и после многих неудачных опытов я забросил это безнадёжное дело.


 
_silver ©   (2004-09-26 23:44) [8]


> Декомпилятор. Так как кроме асма мы получаем еще и
> структуру проекта, и все формы.

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


 
Gero ©   (2004-09-26 23:44) [9]

А я долгое время занимался проблемой компиляции.
Перечитав кучу книг и после многих неудачных опытов я так же забросил это безнадёжное дело.


 
Gero ©   (2004-09-26 23:45) [10]


> Все формы можно получить любым редактором ресурсов.

Конечно можно, хоть и не любым.

А что в твоем определении есть декомпилятор?


 
_silver ©   (2004-09-26 23:46) [11]

Gero ©   (26.09.04 23:44) [9]
Я не говорю "что раз я не сделал никто не сделает", но надо смотреть на факты - пока таких прог нет и врядли будет.


 
DrPass ©   (2004-09-26 23:48) [12]

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


 
_silver ©   (2004-09-26 23:49) [13]

Gero ©   (26.09.04 23:45) [10]
В моём понимании декомпилятор выполняет процесс обратный компиляции.
Т.е из exe - pas(хотябы очень приближённо).
А из exe - asm - это дизассемблер.


 
Gero ©   (2004-09-26 23:53) [14]


> Т.е из exe - pas(хотябы очень приближённо).

А оно так и есть.

> но надо смотреть на факты - пока таких прог нет и врядли
> будет.

Почему ты уверен, что их не будет?


 
_silver ©   (2004-09-26 23:53) [15]

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


 
_silver ©   (2004-09-26 23:54) [16]

Gero ©   (26.09.04 23:53) [14]

> А оно так и есть.

Это слишком сильное приближение.


 
Gero ©   (2004-09-26 23:55) [17]


> _silver ©   (26.09.04 23:54)

Никакого приближения, из exe - pas, что и требовалось.


 
Gero ©   (2004-09-26 23:55) [18]


> Таких прог не было, нет и не будет.

Почему не будет?


 
KilkennyCat ©   (2004-09-27 00:05) [19]

опять двадцать пять...

сколько можно обсуждать это?

де-де - фигня полная,и программеры, которые хотят "декомпилятор" - не программеры.


 
_silver ©   (2004-09-27 00:06) [20]

Gero ©   (26.09.04 23:55) [18]
Да потому что алгоритм генерации кода изменяется от версии к версии.
И вообще результирующий код зависит от многих причин - оптимизация, и т.д.
А если ассемблерные вставки? Как их переварит декомпилятор?
А если я напишу
a := 1;
b := sqrt(1);
c := a-b;
if a-b = c then ..
врядли декомпилятор выдаст такойже результат.
А апи как с ними быть?
А COM, DCOM?
Не слишком ли много проблем?


 
_silver ©   (2004-09-27 00:12) [21]

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


 
Gero ©   (2004-09-27 00:18) [22]


> _silver ©   (27.09.04 00:06)

Ну и что, это не значит ведь, что задача невозможна.


 
_silver ©   (2004-09-27 00:21) [23]

Gero ©   (27.09.04 0:18) [22]
Не бывает не возможных задач.
Бывают задачи которые не оправдывают вложеные в них затраты.
Декомпилятор совсем не тривиальная задача.


 
_silver ©   (2004-09-27 00:22) [24]

И самый главный вопрос - "зачем он нужен?"


 
Gero ©   (2004-09-27 00:23) [25]


> _silver ©   (27.09.04 00:21)

Да ну и что, это же не значит, что его никогда не будет!


 
Gero ©   (2004-09-27 00:24) [26]


> зачем он нужен

Чтобы из exe"шника получать pas. Ты сам же твердил это.
Или уже забыл?


 
Profi ©   (2004-09-27 00:28) [27]

Gero ©   (26.09.04 23:53) [14]
Возьми DeDe, дезассемблирую любой exe и попробуй засунуть получившийся код обратно в компилятор.


 
_silver ©   (2004-09-27 00:28) [28]

Gero ©   (27.09.04 0:23) [25]
Это как раз и значит что его никогда не будет.
Один человек врядли справится с этой задачей.
Будут ли оправданы усилия группы разработчиков(в смысле "кто им будет платить" borland:-)?)?
Ктому же полной декомпиляции добиться не возможно.


 
_silver ©   (2004-09-27 00:29) [29]


> Profi ©   (27.09.04 0:28) [27] [Новое
>сообщение][Ответить]
>Gero ©   (26.09.04 23:53) [14]
> Возьми DeDe, дезассемблирую любой exe и попробуй
> засунуть получившийся код обратно в компилятор.

Вот именно.


 
_silver ©   (2004-09-27 00:31) [30]

Для особо упрямых:
Компиляция - одно направленый процесс...
Не значит ли это невозможность существования декомпиляторов?


 
Германн ©   (2004-09-27 03:48) [31]

2_silver ©   (27.09.04 00:31) [30]

>Для особо упрямых:
>Компиляция - одно направленый процесс...
>Не значит ли это невозможность существования декомпиляторов?

Не значит!

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


 
Gero ©   (2004-09-27 07:24) [32]


> Возьми DeDe, дезассемблирую любой exe и попробуй засунуть
> получившийся код обратно в компилятор.

Зачем? Мне что, больше делать нечего?

> Один человек врядли справится с этой задачей.
> Будут ли оправданы усилия группы разработчиков

Декомпилятор невозможен, потому что никто не захочет его написать. Смешно.
А вот представь, что некий Вася и пара его друзей решат написать нечто подобное. Совершенно бескорыстно.
И напишут. А потом ты им тоже будешь доказывать, что это невозможно?..

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


 
KSergey ©   (2004-09-27 07:32) [33]

> [31] Германн ©   (27.09.04 03:48)
> >Не значит ли это невозможность существования декомпиляторов?
> Не значит!
> Но значит, что декомпилляция - многовариантный процесс.
> И, следовательно сложный, неоднозначный и требующий "огромных
> трудовремячеловекозатрат" процесс! Отсюда может возникнуть
> тезис о "Невозможности существования декомпилляторов".

Начало мне понравилось, а вот вывод - не понятен.
Скорее следует то, что невозможно декомпиляцией получить однозначно исходный код.
Что-то получить - да, думаю возможно. Исходный код (сделать полностью обратный процесс) - нет.


 
KSergey ©   (2004-09-27 07:34) [34]

> [21] _silver ©   (27.09.04 00:12)
> Если кого я не убедил советую задуаться о написании собственного
> декомпилятора(лучше со всех языков сразу).

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


 
Gero ©   (2004-09-27 07:50) [35]


> Думаю, лучше им попробоват ькомпилятор написать.

Это мне что ли?
Как нибудь обязательно займусь на досуге...


 
KSergey ©   (2004-09-27 08:51) [36]

> [35] Gero ©   (27.09.04 07:50)
> Это мне что ли?

Зудит? ;)
Вообще-то это не было обращено к кому-либо лично


 
_silver ©   (2004-09-27 09:31) [37]

По моему мы рассуждаем не о том.
Давайте определимся что значит декомпиляция.
Если декомптляция - процесс обратный компиляции то
> _silver ©   (27.09.04 00:31) [30]

Если нет то тогда что это такое?
Символические имена востановить не получится(никак:)), даже просто востановить структуру программы будет практически не возможно.

Вот список некоторых проблем:
• Разделение кода и данных. В архитектуре Фон-Неймана инструкции и
данные представляются в памяти одинаково. Взяв случайную
последовательность байт из бинарного файла, мы не может однозначно
сказать, что это – инструкции или данные. Даже если процессор
поддерживает разделение сегментов кода и данных, небольшое
количество данных (например, таблицы ветвлений типа case) может
оставаться в сегменте кода.
• Самомодифицирующийся код. Иногда, в силу разных обстоятельств
(экономия памяти, шифрование кода, написание вирусов), программы
используют одни и те же адреса памяти для хранения и исполняемого
кода, и данных.
• Идиомы. Идиома – это последовательность инструкций, которая
формирует логическую единицу, действие, которое не является просто
использованием первичного назначения используемых инструкций.
Например, умножение и деление на степень 2-ки является известной и
широко используемой идиомой: вместо использования обычных
инструкций умножения и деления применяют сдвиг аргумента влево и
вправо соответственно.
• Подпрограммы, добавляемые компилятором и линковщиком.
Компилятор почти всегда добавляет подпрограммы для инициализации,
а также библиотеки поддержки выполнения (RTL). Такие процедуры
обычно написаны на ассемблере и в большинстве случаев не могут быть
декомпилированны в высокоуровневый язык.


 
_silver ©   (2004-09-27 09:35) [38]

Ну так ещё сомнения остались?

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

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


 
Gero ©   (2004-09-27 10:14) [39]


[36] KSergey ©   (27.09.04 08:51)
> Вообще-то это не было обращено к кому-либо лично

Но ко мне в том числе.


 
Gero ©   (2004-09-27 10:25) [40]


> _silver ©   (27.09.04 09:31)

Все эти утверждения не говорят о том, что декомпиляция невозможна.
Это сложная задача, и исходник в таком виде как он был, восстановить не получится наверняка.
Но утверждать о невозможности этого глупо.
Может через несколько лет будут совсем другие компиляторы и форматы exe?
А ты утверждаешь, что "Таких прог не было, нет и не будет".



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.045 c
1-1096905896
Merfi
2004-10-04 20:04
2004.10.17
Чтение слов из файла


8-1089642570
ИМХО
2004-07-12 18:29
2004.10.17
PCL


1-1096872451
Turbid
2004-10-04 10:47
2004.10.17
Как узнать Sender


14-1096541120
ArMellon
2004-09-30 14:45
2004.10.17
Нужна пограмма для компьютерного зала


1-1096955985
Cherepovets
2004-10-05 09:59
2004.10.17
Дериктория





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский