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

Вниз

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

 
_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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.56 MB
Время: 0.039 c
1-1096622729
panov
2004-10-01 13:25
2004.10.17
Symbol xxxxx is specific to a platform.


1-1096456972
Dr.Karter
2004-09-29 15:22
2004.10.17
Че-то MDI меня не понимает...


1-1096315991
ancot
2004-09-28 00:13
2004.10.17
Огромный массив объектов


1-1097001729
Yozh
2004-10-05 22:42
2004.10.17
как в цикле обратиться к нескольким однотипным объектам на форме?


4-1095173143
surkis
2004-09-14 18:45
2004.10.17
ServiceApplication





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский