记忆活动追踪

逆向工程 ollydbg 记忆 断点
2021-06-25 00:11:11

我对逆向工程很陌生(但对 OllyDbg 有一些经验)。我想要做的是,附加到 Windows 可执行文件或库(主要是 PE32,但 x64 将是一个很大的好处)并记录它如何与虚拟内存交互,以便进行一些自学和实验。例如,我想要时间戳、操作类型(读取、写入、分配等)、地址、传输的数据量记录程序运行的某个时间段。我的第一个想法是在 OllyDbg 中使用断点,您可以在其中设置内存范围和操作类型的断点。但这会导致每次都停止执行,因此收集数据将花费大量时间。我还需要知道内存范围,但是如果程序出于某种原因尝试写入未分配的内存 - 我会丢失这些数据。我还发现 Intel Pin 可以做一些与我想要的类似的事情,但据我所知,它无法记录内存操作的时间戳。

所以我的问题是:是否有任何工具可以满足我的要求?如果没有 - 哪些工具可以在可行的时间内修改?在最坏的情况下,我会对每毫秒(或其他非常小的时间段)可以跟踪读取(或写入或分配 - 所有单独)操作量的东西感到满意。

谢谢你。

1个回答

正如您所指出的,PIN 可能是最好的选择。由于 PIN 允许您为事件注册用户定义的回调,因此您确实可以通过回调函数记录时间戳。

您可能还想查看tracectory,它解析 OllyDbg 运行跟踪。它可能不完全符合您的要求,但它是开源的,您可以通过一些简单的修改获得所需的输出。

溯源

您也可以根据需要修改 QEMU 或 Bochs,但我不会推荐它,因为这些是相当“重量级”的选项,特别是因为您只对监视单个进程感兴趣。