Отладка DOS как программа для 32-разрядного x86 блока

Многие из Вас могут вспомнить старую DOS-программу - отладка. Хотя устаревший во многих отношениях, одна из хороших вещей об этом была то, что можно было легко найти последовательность байта для данной инструкции, не имея необходимость проходить шаги записи программы, компиляции, разборки, исследовав содержание файла.... Введите инструкцию, затем выведите адрес команды. 'отладка', к сожалению, не делает инструкций на 32 бита.

Кто-либо знает об инструменте, который делает что-то подобное для 32-разрядных x86 инструкций? Я не хочу проходить целый процесс компиляции; я просто должен смочь войти, несколько инструкций и иметь его извергают длину инструкции и ее последовательности байта.

6
задан Sparky 8 July 2010 в 18:08
поделиться

2 ответа

DOS debug был интерактивным ассемблером, а также отладчиком, ввод ассемблерного кода приводил к тому, что эта строка немедленно преобразовывалась в машинный код - что вы и выводили.

Так что все, что вам нужно - это автоматизировать ваш любимый ассемблер с помощью скрипта или пакетного файла.

Вот функция bash, которую я придумал за минуту или две, используя популярный ассемблер nasm:

opcode() {
  echo $* > tmp.S && nasm tmp.S -o tmp.o && od -x tmp.o
  rm -f tmp.o tmp.S
}

Занимает меньше секунды. Вызов выглядит так:

$ opcode mov eax, [ebx]
0000000 6667 038b
0000004
$ opcode fadd st0,st1
0000000 c1d8
0000002

Не блестяще, но вы можете подстроить командную строку od для лучшего результата. Эта идея должна работать с любым ассемблером командной строки, если вы укажете ему использовать простой двоичный формат вывода.

4
ответ дан 17 December 2019 в 04:41
поделиться

Можно найти несколько простых 32-разрядных отладчиков командной строки. Судя по вашему описанию, OllyDbg может хорошо соответствовать вашим потребностям. По крайней мере, некоторые версии Microsoft Debugging Tools for Windows включают один с именем CDB, что означает Commandline DeBugger (хотя я не проверял, включает ли связанная версия его ...)

1
ответ дан 17 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: