仅在堆块中搜索字节序列

时间:2017-01-02 08:37:57

标签: debugging reverse-engineering windbg

我正在寻找一个WinDbg工具/脚本,它可以帮助我只搜索Heap块中的字节序列。

对于32位进程,我可以使用以下命令通过搜索整个用户模式进程空间来搜索字节,但是对于64位进程,它需要花费很多时间

 s 0 L?0x7fffffff 41 42 43 44 45 46

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找C ++堆。我们有s = {(0, 1, 2),(2, 1, 0)}命令可以帮助确定哪些堆地址。使用另一个!heap可以获得该堆的长度。然后可以将此信息输入!heap <address>以限制地址范围。

尽管可能使用WinDbg脚本和s或类似脚本,但编写WinDbg脚本并不是很有趣而且很容易破解,所以让我们从真正的编程语言开始。

根据这些信息,让我们开始一个PyKd脚本,它可以搜索那些堆。因为我对PyKd还不太熟悉,所以我主要使用dbgCommand(),我会使用Python部分来解析结果,这样我就不必依赖了逐字逐句地输出。

不幸的是,在写这个答案的过程中,我的PyKd设置被破坏了。这就是我之前遇到的问题,现在崩溃了我的WinDbg。请注意,这是不完整的,因为它还没有将搜索字节作为参数。将它们添加到XXX所在的位置。

.foreach