如何使用 IDA 进行特定类型和值的堆搜索?

逆向工程 艾达
2021-06-13 11:13:55

如何使用 IDA 调试器在进程内存中查找某些特定值,例如浮点或整数或字符串类型的值?

那么我怎样才能追踪程序是如何访问它们的呢?

1个回答

问题 1:您可以使用 Ida 功能菜单搜索、字节序列...

例如,如果您要查找浮点值,请将浮点数转换为四个字节的序列,然后让 Ida 搜索它。转换也可以在 Ida (IIRC) 或任何其他允许显示不同数据类型的十六进制编辑器中完成。当然,如果您的变量是双精度数而不是浮点数,您需要为不同的双精度数提供正确的字节序列。搜索字符串时,您可以使用相同的方法。当然,在这里您还必须知道例如您是在寻找 ASCII 字符串还是其他类型的字符串(如 unicode)。使用这种方法,必须遵守字节序,因为字节序列可能与 Big-Endian 或 Little-Endian 不同。

问题2:

如果您找到了内存地址,请在其上放置一个断点。在内存区域中,会打开一个窗口,您可以在其中编辑断点,例如选择中断或跟踪,以及中断时间和其他项目的条件。可以通过首先使用 F2 将断点放在该位置,然后单击鼠标右键选择“编辑断点”来编辑代码区域中的断点。