Были такие отладчики

Тема в разделе "WASM.ZEN", создана пользователем SteelRat, 26 авг 2005.

  1. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    Вспомнил старые времена Z80 :) делал я как-то один отладчик под Орион-128... Смысл его был прост, брал команду процессора и дизассемблировал, за одно определял длину в байтах. Основное ядро отладчика помещало в буфер эти байты, загружало все регистры и простым jmp Bufer выполняло одну команду, а в конце буфера стоял jmp Kernel обратно в ядро :) Естественно все команды переходов обрабатывались отдельно, к сожалению идея и исходники (рабочие !) так и остались на 5,25" диске...

    Вопрос в следующем есть ли сейчас отладчики такого же типа, которые не используют флаг трассировки ? Его просто небыло в Z80 :)))
     
  2. sl0n

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

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    684
    Ну в олли дбг можно трасировку вроде на др регистрах включать, вместо трейс флага
     
  3. Nothing

    Nothing New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2003
    Сообщения:
    139
    Адрес:
    Russia
    а прыжки и вызовы значит не эмулировались, а исполнялись прямо так? :)



    на PC подобную роль играют эмулирующие "отладчики" bochs, qemu, ida x86-emulator. Там либо просто эмулируют покомандно, либо парсят целый блок и выполняют его скопом. Впрочем все это очень медленно, но что делать...
     
  4. SteelRat

    SteelRat New Member

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

    Прыжки не эмулировались, а просто вычислялось новое значение PC, с call было посложнее :) тем более, что у Z80 есть условные вызовы п/п :)) и расчет стэка...
     
  5. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    А вспомнил про него по причине отладки одного приложения, запакованного чем-то. Ведь если толковый дебугер, то и очередь команд, и "фишки" с упаковкой ему параллельны :)))
     
  6. infern0

    infern0 New Member

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


    проблема вот в чем. Мне не надо эмулировать полностью все окружение, включая ос. Мне надо проэмулировать выполнение одной программы, а точнее просто некоторого участка кода, зачастую вообще без вызовов апи. а idax86emu к сожалению эмулирует ооочень ограниченный набор команд x86...
     
  7. Nothing

    Nothing New Member

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

    Согласен, хороших эмулирующих отладчиков пока нет. А спрос есть, значит надо писать! :)

    Я думал из bochs сделать такой, но застрял, да и времени к сожалению не хватает. Но этот эмулятор open-source должен быть стопудово, чтобы править на лету мелкие огрехи коих будет уйма и адаптировать под свои нужды.



    Мне не надо эмулировать полностью все окружение, включая ос.

    Ну это когда как, в большинстве защит стоят сильные завязки на ОС, и без эмуляции всех ее особенностей (а проще ее самой) кусок будет работать неверно. А такие "чистые" куски даже без вызовов ОС - это скорее исключение, чем правило, imho...



    SteelRat

    то и очередь команд, и "фишки" с упаковкой ему параллельны

    давно уже не видел трюков с очередью исполнения, ну а упаковка и так всем параллельна (особенно если это только чистая упаковка), главное OEP найти :)
     
  8. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

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

    А какие вообще есть способы работы с очередью, на языке ассемблера? ГДе это можно почитать, желательно больше практики