Декомпиляция программ

Тема в разделе "WASM.RESEARCH", создана пользователем MrHammer, 21 фев 2005.

  1. Artem

    Artem New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2003
    Сообщения:
    29
    Адрес:
    Russia
    captain cobalt



    Общая модель давно описана, у той же Cristina Cifuentes, например. Надо рассматривать детали.





    С большой натяжкой. Компиляция - это, скорее, анализ, а декомпиляция - синтез.





    Если такой опыт есть - очень хорошо. Если нет - почему бы сразу не поиметь опыт разработки декомпиляторов?
     
  2. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    Artem

    [ <font color="gray]Общая модель давно описана, у той же Cristina Cifuentes, например.</font><!--color--> ]



    Ну вот, уже более конкретные идеи. ;)

    Даже Ильфак её уважает. ;)



    Тем не менее, возможно, следовало бы вкратце описать эти идеи для иех кто не в курсе.



    [ <font color="gray]Надо рассматривать детали.</font><!--color--> ]



    В том то и дело, что сначала надо рассмотреть общую модель, потому что надо знать, как дополнительные детали будут взаимодействовать с этой моделью.
     
  3. Artem

    Artem New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2003
    Сообщения:
    29
    Адрес:
    Russia
    captain cobalt



    Если и стоит описать эти идеи вкратце, то не на форуме, а в статье. Но толку от неё немного будет.





    Не люблю абстракции. А какие детали ты имеешь в виду?
     
  4. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    Artem

    [ <font color="gray]А какие детали ты имеешь в виду?</font><!--color--> ]



    Затачивание декомпилятора под особенности кодогенераторов конкретных компиляторов.
     
  5. Artem

    Artem New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2003
    Сообщения:
    29
    Адрес:
    Russia
    captain cobalt

    Ты имеешь в виду, что для декомпиляции необходимо знать, какой компилятор был использован? Или то, что при разработке декомпилятора надо учесть особенности кодогенераторов конкретных компиляторов, обобщая и "универсализируя" их? Может, приведёшь какой-нибудь пример?
     
  6. MrHammer

    MrHammer New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2003
    Сообщения:
    197
    captain cobalt

    Очень жаль, но пока не видно общей модели.

    Вы действительно готовы тратить силы на жалость?



    1. Декомпиляция - это компиляция.

    В какой-то мере да, точнее это перевод с одного языка на другой. С машинного, понимаемого камнем, на высокоуровневый, кодерский. Компиляция -соответсвенно- наоборот. С этой точки зрения декомпиляцию можно рассматривать как технику перевода. На сегодняшний день существуют программы перевода с одного человеческого на другой, так что по сравнению с ними проблема декомпиляции даже несколько меньше.



    2. Декомпиляция сложнее, чем компиляция.

    Провожу снова параллель с человеческим общением. Есть например, воровское арго. Ну и как узнать информацию из их разговора, если не знать их способ общения, уловки и т.п. Также и с компилятором. Без приземления абстрактного

    декомпилятора на соответсвующую платформу компилятора качественное восстановление информации очень-очень сложно.

    3. Прежде чем разрабатывать декомпиляторы, имеет смысл поиметь опыт разработки компиляторов.

    Ну наверное, тут несколько надо уточнить. Имелось ввиду скорее всего, создание оптимизатора. Знание техник оптимизации кода.

    В принципе, я тоже за. Декомпилятору свой специализированный компилятор не помешает.