Интерактивный дизассемблер

Тема в разделе "WASM.PROJECTS", создана пользователем Ox8BFF55, 25 окт 2009.

  1. Ox8BFF55

    Ox8BFF55 New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2009
    Сообщения:
    181
    Хочу написать свой дизассемблер. Написать просто дизассемблер не составляет труда(все что нужно это построить пару таблиц и все....), но вот другое дело интерактивность... IDA pro лучшее что есть на сегоднишний день но как мы все знаем и она ошибается. Конечно я не особо надеюсь выиграть у IDA pro, но все же хочу написать подобное..... )))

    Писать буду на (С++) + (QT)
    Возможно Linux(only KDE) + Mac.
    (Думаю еще debugger отдельно, но это как получится, на OllyDbg забили Immynity че то встремный)
    Может будет open source ну free точно(что посоветуете???)

    Вопрос собственно
    Что можно почитать про дизассембилирование(Каспера читал)
    Может есть че то из open source???
    Или какие то идеи??
    Чего не хватает???
     
  2. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    Хе, а зачем? Ведь достаточно "построить пару таблиц и все....".

    Копипастингом и быдлокодер напишет дизассемблер.

    И вообще, в чем смысл этого?
     
  3. MetAlic

    MetAlic New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2009
    Сообщения:
    111
    Странно, что автор не спросил что почитать по С++ и Qt)
     
  4. Ox8BFF55

    Ox8BFF55 New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2009
    Сообщения:
    181
    Интерактивный

    Вы программы больше "Hello world" делали??( "Hello world!!!!" ни в счет )

    Вопрос не в том как это работает просто какие у кого какие предложения о том как что лучше....
    Например индификация функций, FLIRT и так далее....

    Ну кто нибудь опытный выскажет свое мнение????
     
  5. MetAlic

    MetAlic New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2009
    Сообщения:
    111
    велосипедные гонки устраивать не надо. Мнение


    Вообще читай " the art of disassembly"
     
  6. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    > "Hello world" делали??( "Hello world!!!!" ни в счет )

    В консоли может быть установлено несколько шрифтов одновременно.
     
  7. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Ну, я б писал под Винду и на Дельфях, но дело не в языке и среде. Мощь IDA объясняется тем, что сей инструмент не просто переводит из машинного кода в ассемблерные мнемоники, а старается разгадать логику дизассемблируемой программы -- например, определив точку входа из заголовка exe-файла и зная, что там будет точно исполнимый код, а не данные (на то она и точка входа), он пытается дизассемблировать находящуюся по этому адресу процедуру до её логического конца, отслеживая команды перехода. Анализируя команды перехода, он пытается обнаружить другие процедуры и т.д. Кроме того, он старается определить значения косвенных адресов перехода (анализируя предшествующие инструкции и т.п.). В общем, это гибрид дизассемблера и эмулятора, пытающегося "выполнить" дизассемблируемый код.

    Мне думается, что никакой специальной литературы по этому вопросу не существует, ну а для реализации такой задачи достаточно хороших программистских навыков, здравого смысла и очччень большого количества времени.
     
  8. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    в принципе, можно добавить желаемые фичи в уже существующий опенсорцовый. я бы порекомендовал опенватком дебугер. который, кроме всего прочего, еще и кроссплатформенный.
     
  9. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    spa
    Как же я был прав :derisive:
     
  10. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    все бы хорошо, только это краткий беглый курс так растянут что читать (имхо) нереально просто, или пропускать по полстраници (можно чтото важно потерять) или просто засыпаешь
     
  11. h3rmit

    h3rmit New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2009
    Сообщения:
    28
    а что все забыли про radare? ))) вполне исходники помогут ))
    http://www.radare.org/
    да, и не верьте, что там на главной написано, вполне себе дизассемблер с неплохим функционалом )
     
  12. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    357
    Адрес:
    Over the hills and far away...
    опен сурс дазасм -ов полно,бери нехочу,но интерактивность это другое...по моему скромному мнению,нужно юзать нейронные сети чтобы получить что-то нормальное...
     
  13. Ox8BFF55

    Ox8BFF55 New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2009
    Сообщения:
    181
    h3rmit спасибо. Как че то появится сообщю(может на народе мини сайт сделаю....)
     
  14. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Ox8BFF55
    Имею предложить дизассемблерный движек 16/32/64. Еще много чего не сделано, но уже можно кое-на что посмотреть.
     
  15. Ox8BFF55

    Ox8BFF55 New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2009
    Сообщения:
    181
    Mika0x65 талицы опкодов???


    Верно подмечено, но думаю пока что надо разобраться что будет и где.....
     
  16. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Ox8BFF55
    Все есть :). Отписал в личку.
     
  17. fadday

    fadday New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2009
    Сообщения:
    63
    Эмм...могу предложить скооперировать усилия. Помогу чем с могу если планы серьезные. В личку
     
  18. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    А по мне -- крайне полезная. Зачем самому разгадывать, что делает та или иная функция, которая в итоге окажется стандартной библиотечной, если дизасм может сам это определить?
     
  19. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    357
    Адрес:
    Over the hills and far away...
    предлагаю свою помощь в разработке проекта,моя аська в профиле ))
     
  20. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Не знаю, не знаю. У меня всегда опознавал "нормальные" функции правильно, а дизасмить мне нередко приходилось.