Нужен ли миру декомпилятор?
От: Syrdon  
Дата: 23.08.06 15:21
Оценка:
Правда. Ну какой-то такой декомпилятор в подмножество С, совмещённый с редактором, для обратного инжениринга.
Скажем неплохо было бы это совместить с (чужим) дебаггером, чтобы можно было программу снабдить отладочной информацией.
Re: Нужен ли миру декомпилятор?
От: 8bit  
Дата: 23.08.06 16:50
Оценка:
Здравствуйте, Syrdon, Вы писали:

S>Правда. Ну какой-то такой декомпилятор в подмножество С, совмещённый с редактором, для обратного инжениринга.

S>Скажем неплохо было бы это совместить с (чужим) дебаггером, чтобы можно было программу снабдить отладочной информацией.

Конечно НУЖЕН !!!
Вот только задача эта не реальная
Re: Нужен ли миру декомпилятор?
От: Xander Zerge Россия www.zerge.com
Дата: 23.08.06 16:57
Оценка:
Здравствуйте, Syrdon, Вы писали:

S>Правда. Ну какой-то такой декомпилятор в подмножество С, совмещённый с редактором, для обратного инжениринга.

S>Скажем неплохо было бы это совместить с (чужим) дебаггером, чтобы можно было программу снабдить отладочной информацией.

Вы ассемблерный код, выдаваемый оптимизирующим компилятором, видели?
(сообщения от анонимов не читаю, не отвечаю)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Серёжа Новиков,
программист
Re[2]: Нужен ли миру декомпилятор?
От: Syrdon  
Дата: 23.08.06 17:10
Оценка:
Здравствуйте, Xander Zerge, Вы писали:

XZ>Здравствуйте, Syrdon, Вы писали:


S>>Правда. Ну какой-то такой декомпилятор в подмножество С, совмещённый с редактором, для обратного инжениринга.

S>>Скажем неплохо было бы это совместить с (чужим) дебаггером, чтобы можно было программу снабдить отладочной информацией.

XZ>Вы ассемблерный код, выдаваемый оптимизирующим компилятором, видели?


RecStudio уже очень близок к тому декомпилятору, который нужен мне лично.
Пусть у него будет навалом псевдопеременных с именами регистров — потерпим.

Я всего лишь утверждаю, что программу известной структуры можно декомпилировать с помощью отладчика, специального редактора и "...аной матери".

Что нам сунет оптимизирующий компилятор?

Уберет переменные в регистры? Потерпим! Всё равно рано или поздно они уйдут в память.
Поменяет порядок инструкций для равномерной загрузке конвейеров? Решается автоматически деоптимизацией.
Сделает функции fastcall — стерпим. Обнаружим по первому использованию.
Пожмотится за записях в стэк? Решаемо автоматически.
Развернёт маленькие циклы? VC их четвертует... Да больно.

Но мы хотим систему для реинжениринга. Пусть она будет состоять из декомпилятора + дебаггера + редактора.

Библиотеки? Распознаются по сигнатурам.
Re[3]: Нужен ли миру декомпилятор?
От: Ник  
Дата: 23.08.06 17:16
Оценка:
Похоже, Вы не только разбираетесь в теме, но и горите энтузиазмом... имхо, дело это слишком уж сложное и долгое, выгоднее найти одного из ведущих игроков рынка и устроиться работать на него удаленно. Если Вы действительно крутой, Вам не откажут (имхо).
Re[2]: Нужен ли миру декомпилятор?
От: GPcH Россия http://www.dotfixsoft.com
Дата: 23.08.06 17:20
Оценка: :)
Здравствуйте, 8bit, Вы писали:

8>Здравствуйте, Syrdon, Вы писали:


S>>Правда. Ну какой-то такой декомпилятор в подмножество С, совмещённый с редактором, для обратного инжениринга.

S>>Скажем неплохо было бы это совместить с (чужим) дебаггером, чтобы можно было программу снабдить отладочной информацией.

8>Конечно НУЖЕН !!!

8>Вот только задача эта не реальная

Еще как реальная. Ты REC видел? Это что касается C
Уж поверь я знаю что говорю
Re[4]: Нужен ли миру декомпилятор?
От: Syrdon  
Дата: 23.08.06 17:28
Оценка:
Здравствуйте, Ник, Вы писали:

Ник>Похоже, Вы не только разбираетесь в теме, но и горите энтузиазмом... имхо, дело это слишком уж сложное и долгое, выгоднее найти одного из ведущих игроков рынка и устроиться работать на него удаленно. Если Вы действительно крутой, Вам не откажут (имхо).


Я просто так поинтересовался... Чисто теоретически... Ну нравится мне языком чесать!
Понимаю, что дело сложное и долгое, что таргет-группа мизерна и на половину состоит из хулиганья.
А тут под шкафом лежат документы на свою сдохшую фирму и хочется пухленькую брюнетку-секретаршу...
Re[3]: Нужен ли миру декомпилятор?
От: FR  
Дата: 23.08.06 17:34
Оценка:
Здравствуйте, Syrdon, Вы писали:


S>Что нам сунет оптимизирующий компилятор?


Про Whole Program Optimization и Link-time Code Generation слышал?
Re[3]: Нужен ли миру декомпилятор?
От: Syrdon  
Дата: 23.08.06 17:36
Оценка:
Здравствуйте, GPcH, Вы писали:

GPH>Еще как реальная. Ты REC видел? Это что касается C

Если бы этот Rec ещё чуть нежнее работал, ему бы цены не было.

На каждом imul он давится, с отложенным cmp не справляется, не всегда корректно отличает локальные переменные от параметров, но в целом именно то, что нужно.

Совместить бы это с символьным отладчиком и редактором!
Re[4]: Нужен ли миру декомпилятор?
От: Syrdon  
Дата: 23.08.06 17:44
Оценка:
Здравствуйте, FR, Вы писали:

S>>Что нам сунет оптимизирующий компилятор?


FR>Про Whole Program Optimization и Link-time Code Generation слышал?


Точно, забыл. Инлайнинг практически не побороть, как я понимаю. Только редактор, который умеет рефакторить.
Re: Нужен ли миру декомпилятор?
От: Аноним  
Дата: 23.08.06 17:59
Оценка: +1
Здравствуйте, Syrdon, Вы писали:

S>Правда. Ну какой-то такой декомпилятор в подмножество С, совмещённый с редактором, для обратного инжениринга.

S>Скажем неплохо было бы это совместить с (чужим) дебаггером, чтобы можно было программу снабдить отладочной информацией.

Ну а сам то как думаешь?
Сколько десятков человек в мире страдает от отсутствия такого тула?
В 99.9999% задач, исходники есть.
А если исходников нету, то первый вопрос, а зачем тебе дебажить чужой код?
Владелец чужого кода навернякак будет против

В общем для развелечения можешь заняться,
но если хочешь деньгу на этому заработать, то забудь...
Re[5]: Нужен ли миру декомпилятор?
От: FR  
Дата: 23.08.06 18:22
Оценка:
Здравствуйте, Syrdon, Вы писали:

S>Здравствуйте, FR, Вы писали:


S>>>Что нам сунет оптимизирующий компилятор?


FR>>Про Whole Program Optimization и Link-time Code Generation слышал?


S>Точно, забыл. Инлайнинг практически не побороть, как я понимаю. Только редактор, который умеет рефакторить.


Там не только инлайнинг, а еще распределение регистров не смотря на границы функций, оптимизированная загрузка глобальных переменных (вплоть до полного выноса в регистр), оптимизация разыминования указателей, наплевательское отношения к соглашению о вызовах.
Я немного смотрел ассемблерный вывод, в общем душераздирающее зрелище, особенно функции раскиданные и перемешанные друг с другом
Re: Нужен ли миру декомпилятор?
От: Relayer http://www.strongbit.com
Дата: 23.08.06 18:53
Оценка: +1
Здравствуйте, Syrdon, Вы писали:

S>Правда. Ну какой-то такой декомпилятор в подмножество С, совмещённый с редактором, для обратного инжениринга.

S>Скажем неплохо было бы это совместить с (чужим) дебаггером, чтобы можно было программу снабдить отладочной информацией.

ты вначале определись кому это надо. т.е. кто твой потенциальный покупатель ибо крякеры удавятся но не заплатят. а те кто может заплатить — им скорее всего такой инстрУмент не нужОн. ситуация утери исходников при нормальной политике бекапов случается крайне редко
Re[5]: Нужен ли миру декомпилятор?
От: Xander Zerge Россия www.zerge.com
Дата: 23.08.06 18:57
Оценка:
Здравствуйте, Syrdon, Вы писали:

S>Точно, забыл. Инлайнинг практически не побороть, как я понимаю. Только редактор, который умеет рефакторить.


А ещё будет чума, когда вам попадётся код из под чего ООПэшного с сотней-другой классов/шаблонов. Там куча функций будут друг друга дёргать, гонять какие-то непонятные декомпилеру структуры данных, масса указателей, таблиц указателей на функции (те, которые виртуальные)... Пинцет! А полируется это всё глобальной оптимизацией, выкидыванием хлама... А вот есть ещё "Profile-Guided Optimization", которая ещё и не такого наворотит...
Да не-е-ет, уж легче сдохнуть!
(сообщения от анонимов не читаю, не отвечаю)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Серёжа Новиков,
программист
Re[6]: Нужен ли миру декомпилятор?
От: Syrdon  
Дата: 23.08.06 19:00
Оценка:
Здравствуйте, FR, Вы писали:

FR>Там не только инлайнинг, а еще распределение регистров не смотря на границы функций, оптимизированная загрузка глобальных переменных (вплоть до полного выноса в регистр), оптимизация разыминования указателей, наплевательское отношения к соглашению о вызовах.

FR>Я немного смотрел ассемблерный вывод, в общем душераздирающее зрелище, особенно функции раскиданные и перемешанные друг с другом

Та да... Ну вынос глобальной в регистры может быть только в сравнительно маленькой программе. В большой не пронесёшь переменную, как Данко зажигалку.

Особенно брутально, что оно может из вызова функции с константой породить отдельное тело функции.
Распределение регистров за функции я, вроде, понял. fastcall-изация. С этим можно бороться, расширяя список параметров.

С порядком инструкций что-то всё же можно сделать.

Просто остаётся надеятся, что функции сохранят свои тела. Всех не переинлайните!

Руку на ... сердце, единственный путь к пухленькой секретарше — декомпилятор legacy. За всё остальное по рукам дадут.

Просто нужно всего пару шагов за RecStudio и оболочку по-удобней.
Re[6]: Нужен ли миру декомпилятор?
От: Syrdon  
Дата: 23.08.06 19:02
Оценка:
Здравствуйте, Xander Zerge, Вы писали:

Хорошо. Остановимся на С. Объявленные мертвыми живут дольше.
Re[7]: Нужен ли миру декомпилятор?
От: lozzy  
Дата: 23.08.06 19:53
Оценка: :)))
Здравствуйте, Syrdon, Вы писали:

S>Хорошо. Остановимся на С. Объявленные мертвыми живут дольше.

Ты лучше определись, на чем остановиться. На Си или на пухленькой секретрше?
Re[7]: Нужен ли миру декомпилятор?
От: goto Россия  
Дата: 24.08.06 03:21
Оценка: +2
Есть другие пути к пухлым женщинам.
Re[2]: Нужен ли миру декомпилятор?
От: Miroff Россия  
Дата: 24.08.06 05:04
Оценка: 3 (2) +1
Здравствуйте, Аноним, Вы писали:

А>Владелец чужого кода навернякак будет против


Во первых, владельца можно послать, иногда даже по закону:

ЗАКОН ОБ АВТОРСКОМ ПРАВЕ И СМЕЖНЫХ ПРАВАХ
(в ред. Федеральных законов от 19.07.1995 N 110-ФЗ, от 20.07.2004 N 72-ФЗ)

Статья 25. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ

...

2. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия автора или иного обладателя исключительных прав и без выплаты дополнительного вознаграждения воспроизвести и преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ) или поручить иным лицам осуществить эти действия, если они необходимы для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении следующих условий:

1) информация, необходимая для достижения способности к взаимодействию, ранее не была доступна этому лицу из других источников;

2) указанные действия осуществляются в отношении только тех частей декомпилируемой программы для ЭВМ, которые необходимы для достижения способности к взаимодействию;

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


Во вторых, далеко не всегда владелец кода в принципе есть. Часто, обобенно если дело касается дорогого железа (электронных микроскопов, лабораторного оборудования средств технического контроля) владелец к моменту декомпиляции может уже не существовать.
Re[3]: Нужен ли миру декомпилятор?
От: Аноним  
Дата: 24.08.06 07:03
Оценка:
Да ради бога.
Можешь создавать такой супер тул
и пользоваться особенностями российского законодательства.
Гарантированно обогатишься
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.