我知道如何在寄存器上设置条件断点,但是如果特定值(例如0x12345678)出现在活动调用堆栈帧中的任何位置,我如何拥有断点触发器?

评论

在x64dbg中,您可以通过在每个堆栈地址上设置一个监视来做到这一点,可能您可以编写一个插件在每个步骤中扫描堆栈页面,但这将涉及检查大量地址,从而大大降低了所有速度。
@mrexodia谢谢,我将尝试x64dbg。实际上,我只对活动调用堆栈框架感兴趣。我已经相应地编辑了我的问题。我想这样会更容易些吗?

绝对有可能编写一个插件,使用x64dbg在每次暂停事件时扫描堆栈。如果您有兴趣,可以使用插件模板。

#1 楼

不是针对Ollydbg的,而是为x64dbg写了一个名为StackContains的插件,该插件使您可以在条件跟踪期间检查检查中是否存在值。这样一来,您就可以在堆栈上看到该值时立即中断。

您可以像这样使用它:



一旦值00E60000出现在堆栈上:



扩展此插件并根据您的需要量身定制应该很容易...

评论


看起来很棒,感谢您抽出宝贵的时间编写此插件!如果我不能在OllyDbg中得到想要的东西,我一定会尝试的。但是唯一的问题是我不是C ++开发人员。我认为需要Visual Studio来构建插件吗?还是有可用的编译二进制文件?

–约翰·布拉茨(John Blatz)
16年12月19日在21:13

我使二进制文件可用github.com/mrexodia/StackContains/releases

– mrexodia
16 Dec 19'在21:57

太好了,非常感谢。

–约翰·布拉茨(John Blatz)
16 Dec 20 '21:17