Форум: "Потрепаться";
Текущий архив: 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.051 c