3

我是使用windbg 的新手,我通常使用诸如ollydbg 之类的调试器或诸如ida pro 之类的反汇编器。但是,我想调试 64 位汇编代码。

在ollydbg和ida pro的界面中,会显示几条指令是一次ie

push esi
push ecx
mov esi, [esp + 0Ch]
xor ecx, ecx
sub eax, 2
@@:
    add ecx, 2
    mov word ax, [esi + ecx]
    test ax, ax
    jnz @b
mov eax, ecx
pop ecx
pop esi
retn 4

但是,windbg 的问题是当我在 $exentry 上设置断点并开始调试它时,它一次只会显示一条指令。

推esi

然后我会跨过它,它会显示

推送 ecx

有什么办法可以让它有一个类似ollydbg的界面,这样它就可以真正显示所有代码并让我跳过它,也许有某种语法突出显示?

如果它不这样做,是否有任何调试器可以调试具有类似 ollydbg 接口的 64 位应用程序?

4

3 回答 3

4

您有以下选择:

  1. 如果您使用的是命令控制台,请使用u(unassemble) 命令。它接受论点。u .将从当前 EIP 打印。u将继续上市。uf将反汇编一个函数,u . l300将从当前的 EIP 300 汇编指令中反汇编。等等

  2. 您可以打开反汇编窗口(查看 -> 反汇编)。

顺便说一句,您还可以查看 Visual Studio 的组装说明。

于 2013-05-29T11:06:11.810 回答
2

你可以使用反汇编窗口一次看到几个指令,你可以像这样打开它:查看 | 拆卸

于 2013-05-23T13:44:32.783 回答
0

如果由于某种原因您发现使用反汇编窗口很烦人,但仍希望在双方都看到一些命令,您可以尝试此方法

首先执行ub eip l4;u eip l4;p;r ,然后按回车键而不是使用 p 单步执行

上述命令将显示 eip 之前的 4 条指令和 eip 之后的 4 条指令

使用enter repeats the earlier command

于 2013-06-02T19:40:55.080 回答