所以我刚刚从windbg切换到x64dbg(真正使用x32 atm),到目前为止我喜欢它,但我缺少的一件事是windbg在命令窗口中的每一步打印所有寄存器。有人知道如何获得这样的日志吗?
x64dbg (x32dbg) 日志像windbg一样记录每一步
逆向工程
调试
风袋
x64dbg
登记
2021-06-15 07:41:17
2个回答
开箱即用的 x64dbg 中没有这样的功能,但我们可以通过编写插件来制作您自己的功能!http://plugins.x64dbg.com上有许多示例(通常带有源代码)。
在这种情况下,您需要为 注册一个回调CB_STEPPED,它在每一步之后都会被调用。基本功能可能如下所示:
PLUG_EXPORT void CBSTEPPED(CBTYPE, PLUG_CB_STEPPED* info)
{
REGDUMP regdump;
DbgGetRegDump(®dump);
auto& r = regdump.regcontext;
_plugin_logprintf(R"(eax=%p ebx=%p ecx=%p
edx=%p esi=%p edi=%p
eip=%p esp=%p ebp=%p
)",
r.cax, r.cbx, r.ccx,
r.cdx, r.csi, r.cdi,
r.cip, r.csp, r.cbp);
}
我添加了 64 位支持和一个菜单来启用/禁用此功能,并将源代码放在 GitHub 上:https : //github.com/mrexodia/regstep。
在我看来,此功能非常有用,因为寄存器值的更改在寄存器视图中以红色突出显示,并且所选指令的受影响寄存器也在那里加下划线。此外,您还有 CPU 视图下方的信息框,它也显示了当前所选指令的所有相关值,但是如果您认为记录寄存器的每一步都对您有用,您可以根据自己的喜好随意扩展插件。
