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

Discussion in 'WASM.RESEARCH' started by scf, Feb 23, 2010.

  1. scf

    scf Member

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

    scf Member

    Blog Posts:
    0
    Joined:
    Sep 12, 2005
    Messages:
    386
    Или отладчик IDA позволяет такое?
     
  3. Freeman

    Freeman New Member

    Blog Posts:
    0
    Joined:
    Feb 10, 2005
    Messages:
    1,385
    Location:
    Ukraine
    BOCHS чтоле... с ним, кстати, можно иду последнюю юзать
     
  4. Folk Acid

    Folk Acid New Member

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

    PaCHER New Member

    Blog Posts:
    0
    Joined:
    Mar 25, 2006
    Messages:
    852
    scf
    С уверенностью могу сказать что есть и не один. Только вот ни исходников ни сам эмулятор из природы вы не скачаете.

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

    l_inc New Member

    Blog Posts:
    0
    Joined:
    Sep 29, 2005
    Messages:
    2,566
    scf
    Этому удовлетворяет любой трассировщик с логированием. OllyDbg более чем подходит.
    Начиная со второй версии в Olly используется эмуляция многих инструкций, что приводит к серьёзному ускорению логирующей трассировки. Более старые версии используют чисто аппаратную.

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

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

    deLight New Member

    Blog Posts:
    0
    Joined:
    May 26, 2008
    Messages:
    879
    l_inc
    Видимо выйти из-под OllyScript-based трейсеров чуток проще чем аналогичное под BOCHS.
     
  8. seniour_juggler

    seniour_juggler Member

    Blog Posts:
    0
    Joined:
    Dec 27, 2009
    Messages:
    35
    scf
    http://www.wasm.ru/baixado.php?mode=tool&id=280
    а дальше надо доработать напильником
     
  9. spa

    spa Active Member

    Blog Posts:
    0
    Joined:
    Mar 9, 2005
    Messages:
    2,240
    Как так? приводит к ускорению?
     
  10. seniour_juggler

    seniour_juggler Member

    Blog Posts:
    0
    Joined:
    Dec 27, 2009
    Messages:
    35
    Как ни странно, да. MS debugging API - очень медленная вещь.
     
  11. l_inc

    l_inc New Member

    Blog Posts:
    0
    Joined:
    Sep 29, 2005
    Messages:
    2,566
    spa
    А с чего бы и нет? В случае трассировки через TF пока обработка исключения из ядра доберётся до обработчика юзермодного отладчика, проходит нехилая куча времени. Не удивительно. ИМХО интереснее то, что согласно истории обновлений трассировка может быть даже быстрее свободного пробега по коду без трассировки.