如何使用 x64dbg 记录程序执行的 CPU 指令?

Posted

技术标签:

【中文标题】如何使用 x64dbg 记录程序执行的 CPU 指令?【英文标题】:How to log CPU instructions executed by program with x64dbg? 【发布时间】:2020-09-13 10:14:16 【问题描述】:

如何用 x64dbg 记录程序执行的 CPU 指令?

我看到https://reverseengineering.stackexchange.com/questions/18634/x64dbg-see-the-current-position 的问题,但我找不到记录指令的方法。

【问题讨论】:

执行此操作的其他方法包括 Intel SDE (software.intel.com/en-us/articles/…) / PIN (Log all instruction with intel pintool),或使用 Intel PT:How to run record instruction-history and function-call-history in GDB? CPU 的硬件支持。或者使用 GDB,只需编写单步脚本(慢得多)Tracing/profiling instructions 【参考方案1】:

据我了解 - 您想要记录所有已执行的指令。最简单的方法是将它们记录在文件中。为此,您需要:

    通过Pause 选项 (F12) 或使用断点暂停程序 选择Trace 菜单,然后选择Trace into... (Ctrl+Alt+F7) 或Trace over... (Ctrl+Alt+F8)。如果你想记录每条指令,你可能想使用Trace into... 现在在新创建的窗口中

您可以选择Log Text 格式,您可以使用建议的0xp:cip i:cip,它将数据记录到文件中,如0x006E8749 mov ebp, esp。将Maximum trace countLog File... 设置为存储数据的位置也是一个好主意。完成后只需按OK,x64dbg 将开始执行您的程序并记录所有指令。请记住,程序在跟踪过程中不会很快运行。

【讨论】:

以上是关于如何使用 x64dbg 记录程序执行的 CPU 指令?的主要内容,如果未能解决你的问题,请参考以下文章

通过批处理文件启动的调试软件(x64dbg)

x64dbg入门学习

在x64dbg中设置条件断点

x64dbg 中的“r8d”是啥?

使用x64dbg反混淆非托管壳

x64dbg使用心得