Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.17;
Скачать: CL | DM;

Вниз

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

 
Фёдор Мегатронов   (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;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.043 c
1-1096551956
debuger
2004-09-30 17:45
2004.10.17
Асм рулит?


6-1091837453
НовичОк
2004-08-07 04:10
2004.10.17
Блокировка рисунков в WebBrowser e


1-1096529915
Pontic
2004-09-30 11:38
2004.10.17
MDI-форма в dll


14-1096452508
MYSTERYO
2004-09-29 14:08
2004.10.17
Розыгрыш от Балтики3. Вот в Краснодаре буквы Л не хватает,


6-1092126243
nok6600
2004-08-10 12:24
2004.10.17
вопросы по winsock