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