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

Вниз

Декомпиляторы   Найти похожие ветки 

 
_silver ©   (2004-09-27 21:20) [0]

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


 
Anatoly Podgoretsky ©   (2004-09-27 21:22) [1]

Есть такая папка Demos, компилируешь из нее примеры, потом декомпилируешь и сравниваешь. Очень точный тест.


 
_silver ©   (2004-09-27 21:25) [2]

Anatoly Podgoretsky ©   (27.09.04 21:22) [1]
Учту.
Но для начала хотелось бы что нибудь менее сложное.


 
Anatoly Podgoretsky ©   (2004-09-27 21:27) [3]

Та есть совсем простые проекты, ну и от себя добавь "Hello World"


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

Anatoly Podgoretsky ©   (27.09.04 21:27) [3]
Я ценю ваш юмор.


 
Nous Mellon ©   (2004-09-27 21:58) [5]

:)
Да тут вся ветка один юмор.
Декомпилятор? Оригинальный исходник на алгоритмическом языке получить невозможно в принципе. Как говорит Палладин, по дерьму нельзя определить все что было в тарелке. Открой окно ЦПУ и подумай как ты будешь что-то декомпилировать. Может еще и комментарии восстановишь?

LMD


 
Nous Mellon ©   (2004-09-27 21:59) [6]


> нобор

:)
Ну вот а как все начиналось, прям как профи когда ОС сел писать.


 
DiamondShark ©   (2004-09-27 22:04) [7]


> Декомпилятор? Оригинальный исходник на алгоритмическом языке
> получить невозможно в принципе.

Строго доказать сможешь?


 
Nous Mellon ©   (2004-09-27 22:17) [8]


> Строго доказать сможешь?

1. Ты же знаешь что я по сравнению с тобой жалкий ламер(хотя что будет со мной в твои годы :)), но даже мой уровень, возможно, дает возможность оценить эту задачу.
2. Я подчеркиваю, что слово было оригинальный. То есть тот который писал разработчик. As Far As I Know Никаких идентификаторов в исполняемом файле от оригинального кода не остается, что уже ИМХО является доказательством этой невозможности. Вместо имен переменных подставляются их адреса, вместо вызова процедур или функций call [$xxxx],
а параметры так вообще в стеке, но и это ИМХО не главное. Интерпретация некоторых команд возможна в разные команды алгоритмического кода. Взять даже простейшие операторы присваивания. А как восстановить из опкодов струтуру записей, или классово-объектную да и возможно ли это?

Думаю, что сейчас получу что-нибудь про мои способности от Шарка, но я старался обосновать свое мнение.


 
YurikGL ©   (2004-09-27 22:21) [9]


> _silver ©   (27.09.04 21:20)  

DeDe+yandex

DeкомпиляторDeлфи

Ж;-))))))


 
Nous Mellon ©   (2004-09-27 22:22) [10]

В дополнение к 2:
такой к примеру код
a := 9/3 + 2;
b := a*с;
Какой смысл траслятору создавать код рассчитывающий a, логичнее было бы написать и b:=5*c


 
Nous Mellon ©   (2004-09-27 22:23) [11]


>  [9] YurikGL ©   (27.09.04 22:21)

Думаете то что получится можно будет скомпилировать?


 
Nous Mellon ©   (2004-09-27 22:27) [12]

Тем не менее я думаю что факты мною приведенные лишь следствие более фундаментальной причины: просто путь назад обрезан. Так как слишком информация преобразована и частично с потерями.


 
YurikGL ©   (2004-09-27 22:28) [13]


> Nous Mellon ©   (27.09.04 22:23) [11]

Вряд ли


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


>  Оригинальный исходник на алгоритмическом языке
> получить невозможно в принципе.

Я об этом и говорил, но мастера пытались меня переубедить.
Я решил ещё раз попытаться.

> Nous Mellon ©   (27.09.04 21:59) [6]

Меня уже начинает бесить то, что вместо того чтобы сказать что-то умное ты ищешь опечатки у других

> YurikGL ©   (27.09.04 22:21) [9]

Я знаю что такое DeDe.


 
_silver ©   (2004-09-27 22:32) [15]

Nous Mellon ©   (27.09.04 22:27)
Сначала ознакомься с http://delphimaster.net/view/14-1096220599/, а потом высказывай свои умные мысли.


 
Nous Mellon ©   (2004-09-27 22:34) [16]


>
> Вряд ли

Я думаю что точно Нет :)
> Я об этом и говорил, но мастера пытались меня переубедить.
> Я решил ещё раз попытаться.

ЭЭЭ.. Это что наши Мастера? ПОйду померю температуру...... Я не верю что наши обладатели голубых значков могут такое утверждать... Может это не в лыжах дело ?
>
> Меня уже начинает бесить то, что вместо того чтобы сказать
> что-то умное ты ищешь опечатки у других

Просто человек который пишет "нобор", ИМХО не сможет написать декомпилятор даже если бы это было возможно. Это не о тебе, я думаю ты просто опечатался, я о феноменах типа Профи или Димы О.


 
Nous Mellon ©   (2004-09-27 22:40) [17]


> 15] _silver ©   (27.09.04 22:32)

LOL Gero постебался над тобой, а ты и....
А ИШ говорил не про оригинальный исходник(это то что я понимаю под декомплированием) а про функциональный аналог. Правда я в это тоже не очень-то верю.


 
DiamondShark ©   (2004-09-27 22:42) [18]


> Nous Mellon ©   (27.09.04 22:17) [8]

Ага. Т.е. ты на ходу переопределил задачу, и лихо с ней расправился.


 
Nous Mellon ©   (2004-09-27 22:45) [19]


> Ага. Т.е. ты на ходу переопределил задачу, и лихо с ней
> расправился.

:) Покажи, пожалуйста, место переопределния задачи. Заранее благодарен.
Не привяжешься, слова как в аптеке :)


 
Nous Mellon ©   (2004-09-27 22:48) [20]

Кстати, про создание функцинального аналога, я думаю что  это будет настолько нечитабельный и следовательно неполезный исходник что нет и никакого смысла его создавать. Это будет просто смена синтаксиса с ассемблерного на высокоуровневый. Исследовать программу проще будет в ее дизассемблировнном виде.


 
Nous Mellon ©   (2004-09-27 22:50) [21]

Тот же
push eax
call $xxxx
Будет заменен на какой-нибудь procedure MyProc1(MyVar1 : Whattype?)
а практическая польза? Не поправить не своровать... :) Прошу прощения за асм-неграмотность.


 
Nous Mellon ©   (2004-09-27 22:51) [22]


>  Не поправить не своровать... :)

то есть сложно понять, вот что главное.

ЗЫ Имелся в виду, конечно, вызов процедуры а не декларация


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


> Просто человек который пишет "нобор", ИМХО не сможет
> написать декомпилятор даже если бы это было возможно.

Я и не говорю что смогу.
Я сказал что попытаюсь.
И проанализировав эту попытку хотел привести объективное мнение о сабже.
Но боюсь кроме насмешек ничего в ответ не услышу.


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


> Прошу прощения за асм-неграмотность.

Как ты при этом можешь рассуждать о возможности или невозможности существования декомпиляторов???


 
_silver ©   (2004-09-27 23:45) [25]

Nous Mellon ну так я жду ответа.
Ты задел меня теперь я буду доставать тебя.
Если не знаешь о чём говоришь лучше молчи.


 
nikkie ©   (2004-09-28 01:46) [26]

ну вы блин даете...

пусть имеется компилятор C, исходный код S, бинарный код B = C(S).
понятно, что функция C необратима - 1. не всякий бинарник B может быть получен таким образом; 2. разные исходные тексты могут давать один и тот же бинарник. поэтому, не требуя невозможного, декомпилятором мы называем функцию D такую, что если B=C(S), то C(D(B))=B. то есть D(B) - будет некоторый исходник, необязательно совпадающий с S, но который при компиляции даст тот же бинарный код.

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


 
KilkennyCat ©   (2004-09-28 01:51) [27]

да можно, можно написать декомпилятор, успокойтесь.
Вопрос в другом - нафига он нужен?
Если вы программист - то сами напишите такую прогу, которую декомпилить хотите, и быстрее, чем разбираться в чужом коде, ибо комментариев-то уж точно не декомпилить :) и полезней, ибо ежели что-то неизвестно - придется изучить.
С другой стороны, если вы ламер - то и чужой код не поможет.
В итоге получаем, что способному разобраться в коде этот код не нужен, так как экономически невыгоден, неспособному разобраться - тем более не нужен.


 
Nous Mellon ©   (2004-09-28 06:50) [28]


> Я сказал что попытаюсь.
> И проанализировав эту попытку хотел привести объективное
> мнение о сабже.
> Но боюсь кроме насмешек ничего в ответ не услышу.

Значит плохо анализируешь
> Как ты при этом можешь рассуждать о возможности или невозможности
> существования декомпиляторов???

Если ты нашел мой псот в корне неверным то попрошу пояснить. А про неграмотность я написал чтобы Шарк к мелочам не цеплялся.
> Nous Mellon ну так я жду ответа.

:) На что?

> Ты задел меня теперь я буду доставать тебя.

Ты забавляешь меня, чудо :)
> Если не знаешь о чём говоришь лучше молчи.

Все что я хотел сказать я привел в 8 и 20.

:)


 
Nous Mellon ©   (2004-09-28 06:52) [29]


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

Об этом я и говорил в 20


 
KSergey ©   (2004-09-28 09:15) [30]

> _silver ©   (27.09.04 21:20)
> Мастера почти убедили меня в том, что возможно создать декомпилятор
> и я решил снова заняться этой проблемой.

Ну и славно! Фигли флудить, я одно не пойму? Или это есть по-твоему "заниматься"?
Какие начиг тесты нужны? Создай empty проект с формой (все по умолчанию) - вот тебе и тест. ЧТо еще надо-то, я не пойму? Где твой декомпилятор? Ты его сделай, сначала, потом тесты проси. А сейчас-то они на кой тебе сдались? ИЛи это будет только декомпилятор для этих тестов?

Ты ответь прямо на вопрос: будешь делать декомпилятор или просто пофлудишь и успокоишься??


 
_silver ©   (2004-09-28 09:41) [31]


> Ты ответь прямо на вопрос: будешь делать декомпилятор
> или просто пофлудишь и успокоишься??

Буду.


 
KSergey ©   (2004-09-28 09:42) [32]

Здорово
Тогда кончай флудить
Как сделаешь что=либо - приходи, хвастайся, тесты проси


 
КаПиБаРа ©   (2004-09-28 09:56) [33]

Советую для удобства разбора декомпилированных текстов встроить в программу всем хорошо известную автосхему. Такой хит побъет все рекорды продаж.

=============================================
Всякое разумное дело имеет своё завершение,
и только ерундой можно заниматься бесконечно.
=============================================


 
Игорь Шевченко ©   (2004-09-28 09:57) [34]

Я вот только не совсем понимаю, какие принципиальные проблемы ?
Открывается окно View|CPU, там под каждым оператором исходного тескта виден его машинный код, при некотором навыке можно попытаться восстановить функционально подобный оператор из этого кода, идентификаторы можно назначать произвольные, например id1, id2, и т.д.

hint: ряд стандартных функции в Delphi имеют код, машинное представление которого не зависит от позиции функции в EXEшнике, например, некоторые функции работы с длинными строками. Зная эти стандартные функции можно определить строковые переменные и т.д.

Неконсольное приложение обычно имеет код инициалиции объекта Application.


 
Сергей Суровцев ©   (2004-09-28 10:01) [35]

>_silver ©   (28.09.04 09:41) [31]
>Буду.

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


 
Сергей Суровцев ©   (2004-09-28 10:05) [36]

>Игорь Шевченко ©   (28.09.04 09:57) [34]
>Я вот только не совсем понимаю, какие принципиальные проблемы ?

Игорь, Вам шуточки, а у человека крышу снесет на пару лет. :))
Его голодные дети будут сниться Вам по ночам! :))


 
Игорь Шевченко ©   (2004-09-28 10:08) [37]

Сергей Суровцев ©   (28.09.04 10:05) [36]


> Игорь, Вам шуточки, а у человека крышу снесет на пару лет.
> :))


Я сказал что-то смешное или принципиально невозможное ?
Или ты в инете не видел примеры Сишных и VBшных декомпиляторов ? :)

С уважением,


 
_silver ©   (2004-09-28 10:10) [38]


> не даст тебе исходник

Я об этом и сам гоаорил, но начал сомневаться.

> Ответь - нафига?

Мне он нафиг не нужен, мне и с дизассемблерами живётся не плохо.
Но это интересная, не тривиальная задача и уж очень хочется попытаться.
Ктому же я говорил, что уже занимался этим и уже некоторые наработки есть.


 
Игорь Шевченко ©   (2004-09-28 10:11) [39]

Кстати, вопрос всем, кто считает, что декомпилятор невозможен или нафиг не нужен - нафига в лицензионных соглашениях пишут о запрете на декомпиляцию, если она так уж и невозможна ? :)


 
DiamondShark ©   (2004-09-28 10:50) [40]


> Или ты в инете не видел примеры Сишных и VBшных декомпиляторов
> ? :)

Не скажу за сишные, но с вэбэшными ситуяйция немного другая. ВБ компилит в шитый код (хотя может и в native). Так вот, особо успешные ВБ декомпиляторы -- именно с шитого кода.


> Кстати, вопрос всем, кто считает, что декомпилятор невозможен
> или нафиг не нужен - нафига в лицензионных соглашениях пишут
> о запрете на декомпиляцию, если она так уж и невозможна
> ? :)

Ну, для взлома технологий достаточно и в ассемблер декомпилировать :)



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

Текущий архив: 2004.10.17;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.035 c
1-1096541680
DenKov
2004-09-30 14:54
2004.10.17
UnRar.dll and TFileStream


3-1095740406
AngelSaint
2004-09-21 08:20
2004.10.17
Программный импорт в SQL Server из Access


1-1096630109
Kolan
2004-10-01 15:28
2004.10.17
Delphi + новая компонента = НЕРАБОТАЕТ delphi


14-1096088031
Шишкин Илья
2004-09-25 08:53
2004.10.17
Не могу установить компонент


3-1095759267
Chlavik
2004-09-21 13:34
2004.10.17
Добавляю запись в которой одно поле "Счётчик"