我是使用windbg的新手,我通常使用调试程序,如ollydbg或反汇编程序,如ida pro。但是,我想调试64位汇编代码。
在ollydbg和ida pro的界面中,它会显示一些指令,即
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位应用程序?
答案 0 :(得分:4)
您有以下选择:
如果您使用的是命令控制台,请使用u
(unassemble)命令。它接受论点。 u .
将从当前的EIP打印出来。 u
将继续列出。 uf
将取消组合函数,u . l300
将从当前的EIP 300汇编指令中解除组合。等
您可以打开反汇编窗口(查看 - >反汇编)。
顺便说一句,您还可以使用Visual Studio查看汇编指令。
答案 1 :(得分:2)
您可以使用反汇编窗口一次查看多个指令,您可以这样打开:View |拆卸
答案 2 :(得分:0)
如果由于某种原因你发现使用拆卸窗口令人烦恼但仍希望看到双方的一些命令你可以尝试这种方法
首先执行ub eip l4;u eip l4;p;r
然后单步进入而不是使用p
上述命令将在eip之前显示4条指令,在eip之后显示4条指令
使用enter repeats the earlier command