Visual C decompiler

Тема в разделе "MS Visual C++", создана пользователем Undertacker, 12 дек 2003.

Статус темы:
Закрыта.
  1. Undertacker

    Undertacker Гость

    Visual C decompiler/uncompiler/disassambler

    Встречал ли кто утилиту по восстановлении исходного текста на C из выполняемого файла?
    Примерно тоже, что делает IDA, но для C.
    Ведь большинство функций используется из стандартных библиотек, да и другие правила компиляции известны.

    Понятно, что полностью компилируемый и читаемый код получить нельзя (без отладочной информации), но основные алогоритмы и структуру модулей понять можно было бы.

    для Turbo C вроде как существует...

    посмотрел plugin для IDA - Desquirr, отчасти решает эти вопросы
     
  2. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    Undertacker
    Ну полный код такая утила не восстановит, только что приблизительно. Такие есть, но для C++ не знаю такого, я не спец по ним. Мот прийдет кто потолковее типа kagor или ????.
     
  3. kagor

    kagor Гость

    Серёга
    Не знаю как насчет ???? но, я таких программ не видел, всегда пользовался дизассемблерами типа IDA или W32Dasm.
     
  4. AlexGin

    AlexGin Гость

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

    ИМХО существующие программные средста скорее
    могут запутать, чем помогут что-то прояснить...

    Для ассемблеров - эта задача вполне реализуемая и
    относительно простая.
     
  5. Гость

    Ок. Хорошо. Можно восстановить по паттернам стандартные библиотеки.
    Как восстановить небиблиотечный код? Особенно после а) утери смысла переменных, б) оптимизвции компилятором.

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

    ЗЫ Я по работе частенько лажу по ВЦ-шному коду... Тут иногда не то что декомпилятор, тут у самого глаза вылязят, особенно если оптимизация включена.
     
  6. ::medium

    ::medium Гость


    Все это лажа!!!
    WinDasm
    SI
    IDA
    А декомпиляция если и пройдет, то ни фига не понятно будет!!
     
  7. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    ::medium
    ну естественно.
    ну хоть что-то рахобрать можно. :)
     
  8. Kernel

    Kernel Гость

    Просто декомпилятор для С

    asm
    {
    //Ассемблерный код полученный из любого дизассемблера
    }

    :)
     
  9. SkipZoner

    SkipZoner Гость

    Папа программирования
    Смотря что ты хочешь получить на выходе.
    1) смысл переменных можно восстановить анализируя и трассируя полученный код на С
    2) оптимизация тоже не помеха если понимать оптимизатор

    У тебя есть примеры ? Какого идеала ?

    Опять ты не прав. Приведу пример. Есть база данных с недокументированным внутренним стоением. Есть код (dll), ее читающий. Необходимо получить свои процедуры работы с базой.
    1) Берем IDA, качественно дизассемблируем.
    2) Берем (никем еще не написаный) интерактивный декомпилирующий плагин к IDA и переводим в Си функцию за функцией. (этот процесс можно делать и руками, но с декомпилятором процесс во много раз ускорится).
    3) Компилим, трассируем и продолжаем восстанавливать алгоритмы если это нужно.
    Не потянешь - ? Я тянул и тяну :)
    Конечно для понимания нужно представлять как оно МОЖЕТ работать.
    У тебя мало опыта и все тут.
     
  10. Гость


    Не уверен что такие уже существуют, но знаю, что разрабатываются. Например, можно сходить
    сюда
     
  11. Gogan.exe

    Gogan.exe Гость

    Сколько С не учил, меня всегда убеждали, что ничего похожего на Декомпайлер нет, и быть не может! во как... а тут говорят, что есть... парадокс!
     
  12. AlexGin

    AlexGin Гость

    Да, просмотрел я на http://shulgaaa.at.tut.by -
    штука, конечно же, интересная и (вероятоно)
    даже полезная, но информативности
    в таком "высокоуровневом" C коде ИМХО не
    больше, чем в голом ассемблерном.

    Для целей изучения работы компилятора
    инструмент неплохой, для изучения логики
    задачи - похоже неудобный.

    Что, например, за переменная _151h ?
     
  13. Guest

    Guest Гость

  14. logosman

    logosman Гость

    Да для VC++ декомпилер бы не помешал (к примеру dcc для GCU), но ещё больше нужен для Delphi, т.к. программисты в последнее время стали сверх ленивыми и пишут шаравары на Дельфинах и вообще о том что такое АСМ понятия не имеют!!! И ещё программистами зовутся, козлы...ой что-то меня понесло;)
    А вообще можно полазить на хорошо всем знакомом http://www.wasm.ru

    P.S. Может самому декомпилер начать писать?
     
  15. Gim

    Gim Гость

    Да, начни. В этой жизни начнешь, а в следующей закончишь, безрогий ты наш.
     
  16. [zEX0dEx]

    [zEX0dEx] Гость

    Давайте возмём оракл, посмотрим на звёзды и сделаем универсальный декомпилер с любого языка програмирования да ещё с коментариями создателей :unsure: , всего лишь пару тысячилетий и мы по звёздам угадаем код программы :)
     
  17. Hex

    Hex Гость

    Для Delphi и VB(Native) думаю легко можно написать компилятор. Там оптимизации 0. Сплошные паттерны.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей