Вспомнил старые времена Z80 делал я как-то один отладчик под Орион-128... Смысл его был прост, брал команду процессора и дизассемблировал, за одно определял длину в байтах. Основное ядро отладчика помещало в буфер эти байты, загружало все регистры и простым jmp Bufer выполняло одну команду, а в конце буфера стоял jmp Kernel обратно в ядро Естественно все команды переходов обрабатывались отдельно, к сожалению идея и исходники (рабочие !) так и остались на 5,25" диске... Вопрос в следующем есть ли сейчас отладчики такого же типа, которые не используют флаг трассировки ? Его просто небыло в Z80 ))
а прыжки и вызовы значит не эмулировались, а исполнялись прямо так? на PC подобную роль играют эмулирующие "отладчики" bochs, qemu, ida x86-emulator. Там либо просто эмулируют покомандно, либо парсят целый блок и выполняют его скопом. Впрочем все это очень медленно, но что делать...
Nothing Прыжки не эмулировались, а просто вычислялось новое значение PC, с call было посложнее тем более, что у Z80 есть условные вызовы п/п ) и расчет стэка...
А вспомнил про него по причине отладки одного приложения, запакованного чем-то. Ведь если толковый дебугер, то и очередь команд, и "фишки" с упаковкой ему параллельны ))
проблема вот в чем. Мне не надо эмулировать полностью все окружение, включая ос. Мне надо проэмулировать выполнение одной программы, а точнее просто некоторого участка кода, зачастую вообще без вызовов апи. а idax86emu к сожалению эмулирует ооочень ограниченный набор команд x86...
infern0 Согласен, хороших эмулирующих отладчиков пока нет. А спрос есть, значит надо писать! Я думал из bochs сделать такой, но застрял, да и времени к сожалению не хватает. Но этот эмулятор open-source должен быть стопудово, чтобы править на лету мелкие огрехи коих будет уйма и адаптировать под свои нужды. Мне не надо эмулировать полностью все окружение, включая ос. Ну это когда как, в большинстве защит стоят сильные завязки на ОС, и без эмуляции всех ее особенностей (а проще ее самой) кусок будет работать неверно. А такие "чистые" куски даже без вызовов ОС - это скорее исключение, чем правило, imho... SteelRat то и очередь команд, и "фишки" с упаковкой ему параллельны давно уже не видел трюков с очередью исполнения, ну а упаковка и так всем параллельна (особенно если это только чистая упаковка), главное OEP найти
>Nothing А какие вообще есть способы работы с очередью, на языке ассемблера? ГДе это можно почитать, желательно больше практики