Декомпиляция С++

Тема в разделе "WASM.RESEARCH", создана пользователем CraYser, 25 авг 2007.

  1. CraYser

    CraYser New Member

    Публикаций:
    0
    Регистрация:
    25 авг 2007
    Сообщения:
    1
    Привет всем, подскажите как реализовать пошагово декомпиляцию проги написанной на С++.
    PEiD пишет Microsoft Visual C++ 6.0
    Заранее большое спасибо за ответ на мой ламерский вопрос.
     
  2. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Ты исходники хочешь получить? Ассемблирование - однонаправленный процесс и полное восстановление кода не возможно. Ну а глянуть, что же такого прога делает можно с помощью любого дизассемблера. IDA лучший на сегодняшний день.
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Насчет декомпиляции - ну если есть дебаг инфа, то дело значительно упрощается в плане наименований переменных, функций, параметров.
    Ну декомпилировать то, скорее всего, получится, правда код будет вида
    Код (Text):
    1. int sub_01562395( int arg_0, int arg_4 )
    2. {
    3.   DWORD var_4;
    4.   DWORD eax;
    5.  
    6.   if( arg_0 == 0 )
    7.     var_4 = -1;
    8.   else
    9.     var_4 = arg_0;
    10.  
    11.   eax = sub_02375982( var_4, arg_4 );
    12.  
    13.   return eax;
    14. }
    в лучшем случае...

    Насчет средств:
    Есть неплохой декомпилятор, правда, к сожалению, пока что очень сырой. Boomerang Decompiler, кажется, называется.
    Так же есть плагин для IDA, "С Functions Decompiler".
    Остальные мне не особо понравились.
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Если сабж для С++, то это ещё сложнее. У каждого компилятора свои реализации ООП, да и восстанавливать последнее труднее простого Си.
     
  5. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Агга, он самый.
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    rec еще есть.
    еще скоро выпустят авторы IDA свой "декомпилер". Код по обещаниям будет похож на тот что привел Great.
     
  7. DruID

    DruID New Member

    Публикаций:
    0
    Регистрация:
    1 июл 2005
    Сообщения:
    20
    Посмотри, может поможет:

    ExeToC Decompiler http://sourceforge.net/projects/exetoc - очень сырой

    REC 2.1 - Reverse Engineering Compiler http://www.backerstreet.com/rec/rec.htm сырой и не учитывает vars в stacks

    Boomerang decompiler http://boomerang.sourceforge.net/

    Anatomizer Decompiler http://jdi.at.infoseek.co.jp/japanese/download.plg - японский

    IDA + plugins: Desquirr http://desquirr.sourceforge.net/desquirr или HexRays Decompiler http://www.hexblog.com/hexrays/manual/index.html (только private)
     
  8. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    DruID
    Anatomizer Decompiler я так и не смог заставить что-то сделать серьезное :derisive:
     
  9. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    703
    Бумеранг у меня падал на всех семплах что ему скармливал , гуано
     
  10. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    скоро Ильфак выпустит свой чудо декомпилер, покупайте :)
    http://www.hex-rays.com/products.shtml
    http://hexblog.com/decompilation/video/vd1.swf
    ;)))
     
  11. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Asterix
    Я от видео просто офигел :))))))))
     
  12. maxdiver

    maxdiver Max

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    308
    Адрес:
    Саратов
    crypto
    А что там за видео?
     
  13. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
  14. maxdiver

    maxdiver Max

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    308
    Адрес:
    Саратов
    crypto
    В смысле я не хотел качать 5 мегов на моём диалапе :) Ладно, щас скачаю посмотрю.
     
  15. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Hex-Rays реально рвёт и мечет. Бумеранг нервно курит в углу. Если вам приходится много реверсить MSVC кода - он своих денег стоит.
    http://pastebin.com/f779f9818
     
  16. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    reverser
    Это ты листинг сгенерил (помнится, ты вроде говорил, что бета-тестируешь HR)? Если так, может выскажешь свои впечатления форуму?
     
  17. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Генерил не я, но весьма похоже на правду.
    Главная сила Hex-Rays, как и Иды - в интерактивности (хотя конечно движок декомпилятора тоже весьма неплох). Часто бывает нужно повозиться с определением структур и позадавать типы параметров функций, но зато листинг тогда становится почти идеальным. Ему бы ещё добавить интеллекта для автоопределения членов структур и тогда вообще останется только именовать функции да переменные :)
     
  18. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    reverser
    Ну тогда нам, реверсерам, работать станет неинтересно :) А если серьезно, это довольно сложная задача (например, когда членами структуры являются другие структуры или массивы).
    ЗЫ
    Будет "возможность", обязательно поиграюсь с Hex-Rays.
     
  19. DruID

    DruID New Member

    Публикаций:
    0
    Регистрация:
    1 июл 2005
    Сообщения:
    20
    crypto
    Иногда Anatomizer помогает, от free большего и не ждешь.
    Полуанглийский Anatomizer + либа http://slil.ru/24812381.
     
  20. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    reverser
    А как он дружит с ООП? Не распознаёт vtables и приведение типов? Или это декомпилятор Си?