我正在寻找一个WinDbg工具/脚本,它可以帮助我只搜索Heap块中的字节序列。
对于32位进程,我可以使用以下命令通过搜索整个用户模式进程空间来搜索字节,但是对于64位进程,它需要花费很多时间
s 0 L?0x7fffffff 41 42 43 44 45 46
答案 0 :(得分:1)
我认为你正在寻找C ++堆。我们有s = {(0, 1, 2),(2, 1, 0)}
命令可以帮助确定哪些堆地址。使用另一个!heap
可以获得该堆的长度。然后可以将此信息输入!heap <address>
以限制地址范围。
尽管可能使用WinDbg脚本和s
或类似脚本,但编写WinDbg脚本并不是很有趣而且很容易破解,所以让我们从真正的编程语言开始。
根据这些信息,让我们开始一个PyKd脚本,它可以搜索那些堆。因为我对PyKd还不太熟悉,所以我主要使用dbgCommand()
,我会使用Python部分来解析结果,这样我就不必依赖了逐字逐句地输出。
不幸的是,在写这个答案的过程中,我的PyKd设置被破坏了。这就是我之前遇到的问题,现在崩溃了我的WinDbg。请注意,这是不完整的,因为它还没有将搜索字节作为参数。将它们添加到XXX所在的位置。
.foreach