在特定内存范围内记录 EIP?

逆向工程 调试 x86 x64dbg
2021-06-24 00:18:00

我正在寻找一种方法来在某个内存范围内记录进程的 EIP。我涉足了 x64dbg 的日志记录功能,但没有成功地获得内存范围条件工作。

对想法持开放态度。

1个回答

我在闲逛了一段时间后有了一个解决方案,我相信我可以找到更好的东西,与此同时,不管你去哪里。

使用“内存映射”选项卡,您可以在代码部分创建内存断点

右键单击某个部分-> 内存断点-> 执行-> 恢复

然后你可以将断点条件编辑成这样(我使用的是 64 位进程)

编辑内存执行断点以记录 EIP/RIP

我只是想出了如何减少这个范围。

您可以像这样使用日志条件:

00007FF6D2F71000 < rip < 00007FF6D2F72000

这是象征性的

start_address < eip < end_address

或者

start_address < rip < end_address

它工作得很好。如果我找到更好的选择,我会更新

编辑:

https://x64dbg.readthedocs.io/en/latest/introduction/Expression-functions.html https://x64dbg.readthedocs.io/en/latest/introduction/Expressions.html

阅读一些文档,了解您可以做的很酷的事情

我设法让它只记录调用指令,并使用打印地址和指令

dis.iscall(rip) 在断裂条件和

{rip}:{i:rip} 在日志表达式中

感谢您提出这个问题,这实际上是我以前从未想过的非常有用的东西。