Эмулирующий отладчик?

Тема в разделе "WASM.RESEARCH", создана пользователем scf, 23 фев 2010.

  1. scf

    scf Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    386
    Подскажите, есть ли в природе такой зверь? Т.е. эмулятор x86, под которым можно было бы запустить отлаживаемую программу, и, например, вызывать некий свой обработчик после выполнения каждой инструкции отлаживаемой программы. Например, для сбора статистики по графу потока управления, значений регистров и т.п.
    Использующий аппаратную трассировку? Полностью программный?
     
  2. scf

    scf Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    386
    Или отладчик IDA позволяет такое?
     
  3. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    BOCHS чтоле... с ним, кстати, можно иду последнюю юзать
     
  4. Folk Acid

    Folk Acid New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2005
    Сообщения:
    432
    Адрес:
    Ukraine
    Напиши свой. Нафиг кому нужны прибамбасы вроде как показать список процессов в SoftICE, пусть это будет просто гипервизор с возможностью писать свои каллбеки на асме, например после каждой инструкции, с возможность писать данные в управляющий процесс. Правда, не уверен что это можно продать, но можно продать труд, используемый таким отладчиком, так что идея отличная.
     
  5. PaCHER

    PaCHER New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    852
    scf
    С уверенностью могу сказать что есть и не один. Только вот ни исходников ни сам эмулятор из природы вы не скачаете.

    Freeman
    Юзать можно, но для задачи описаной выше прийдется переписать сам BOCHS.
     
  6. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    scf
    Этому удовлетворяет любой трассировщик с логированием. OllyDbg более чем подходит.
    Начиная со второй версии в Olly используется эмуляция многих инструкций, что приводит к серьёзному ускорению логирующей трассировки. Более старые версии используют чисто аппаратную.

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

    P.S. Что тут остальные уважаемые участники навыдумывали, не понимаю. :)
     
  7. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
    l_inc
    Видимо выйти из-под OllyScript-based трейсеров чуток проще чем аналогичное под BOCHS.
     
  8. seniour_juggler

    seniour_juggler Member

    Публикаций:
    0
    Регистрация:
    27 дек 2009
    Сообщения:
    35
    scf
    http://www.wasm.ru/baixado.php?mode=tool&id=280
    а дальше надо доработать напильником
     
  9. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    Как так? приводит к ускорению?
     
  10. seniour_juggler

    seniour_juggler Member

    Публикаций:
    0
    Регистрация:
    27 дек 2009
    Сообщения:
    35
    Как ни странно, да. MS debugging API - очень медленная вещь.
     
  11. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    spa
    А с чего бы и нет? В случае трассировки через TF пока обработка исключения из ядра доберётся до обработчика юзермодного отладчика, проходит нехилая куча времени. Не удивительно. ИМХО интереснее то, что согласно истории обновлений трассировка может быть даже быстрее свободного пробега по коду без трассировки.