отладчик в IDA

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

  1. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    Задача: есть прога, в ней две интересные функции (например read и write). Можно ли (и как) в иде написать скрипт или плагин, что-бы при запуске программы в идашном отладчике мне в лог сыпались вызовы этих двух функций с содержимым пары регистров на входе/выходе ? Брекпоинты и листик с ручкой не подходит - я раньше состарюсь...

    Спасибо.
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Может быть, это можно сделать с помощью скриптов, но скорее всего проще с помощью плагина.

    SDK, dbg.h. Там определены "Debugger callbacks", в частности, dbg_breakpoint (
    ), dbg_bpt (
    ).



    Получение информаци о регистрах: get_reg_val.



    То есть, в самом простом случае пишем плагин, который выставляет ловушку (hook) на события отладки и мониторит их. Как только получили событие "точка останова", дампим содержимое регистров в лог, возобновляем выполнение.
     
  3. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    IceStudent

    да. примерно так и сделал. Правда я абсолютно не понял что значит ""external breakpoint" но в общем после обхода пары глюков иды все заработало.
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    плагин уже есть от RedPlait'а, нужно только скрипт написать на perl, хотя я ни разу для отладчика не пробовал
     
  5. rgo

    rgo New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    87
    У меня вопрос, не совсем в тему, но тоже про IDA.

    Есть бинарник, есть сорцы, пускай написанные на asm. Но бинарник собран на более свежих сорцах. Нету ли скриптов к IDA, позволяющих хоть отчасти автоматизировать процесс дизассемблирования в такой ситуации?
     
  6. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    rgo За иду не скажу, но в олли можно подкинуть к новому екзешнику .pdb от старой версии, она его автоматом подхватит
     
  7. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia


    а в чем смысл ? все равно адреса поплывут, причем может довольно прилично...
     
  8. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Смысл в том, что если не очень поплывут, то это значительно облегчит процесс дизассемблирования, пускай местами и с ручной правкой, а если просто исследовать то имхо можно и догадатся по именам где какая хф-ция должна быть, все легче будет ...
     
  9. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    infern0

    а что, просто написать перехватчик этих функци и посмотреть что там творится в реальной среде не судьба ???
     
  10. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105


    А вот "рабоче-крестьянский" способ : делаем из старого асма бинарник, дизассемблируем старый и новый и сравниваем. Если изменения не сильные, то восстановить вручную "новый текст" несложно. Либо более тонко :

    сравниваем старый текст с восстановленным из него же и подкручиваем ИДУ так, чтобы она давала "похожий" результат...
     
  11. rgo

    rgo New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    87
    А как-нибудь так:

    Компилируем старый, и ищем в новом функции похожие фукции. Дело в том что большинство функций просто совпадают побайтно. Но адреса разные. Ещё большая заморока в том, что на самом деле бинарника два, и хочется дизассемблировать оба.

    Я просто думал, что всё уже давно написано... Видно придётся самому скрипт писать.
     
  12. bsl_zcs

    bsl_zcs New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2003
    Сообщения:
    17
    Адрес:
    Karaganda, Kazakhstan
  13. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    CARDINAL

    разовая работа, надо быстро (полдня максимум), прога удаленная. В общем я выбрал вариант с плагином - как я с сказал все успешно отработало.