动静结合调试——IDA地址与windbg地址对应

这是一个比较简单的问题,但是思想走了一点弯路,觉得有必要记录一下.
首先需要厘清几个概念:

  1. 文件偏移地址(File Offset)

  2. 装载地址 (Image Base)

  3. 虚拟内存地址(VA)

  4. 相对虚拟地址(RVA)

    其中相关概念字面理解即可,需要了解一个关系是:
    VA = Image Base + RVA

虽然在IDA与windbg地址对应中并不涉及以上换算,但是对这几个概念的了解还是比较必要。

  • windbg运行后,使用lm命令可以获得模块的初始地址:
    下图是使用windbg加载了一个二进制文件后使用lm命令显示模块其实地址为0x00400000


    动静结合调试——IDA地址与windbg地址对应_第1张图片
    image.png

对于IDA显示的地址而言,并不是想当然的文件地址,而是“内存地址”,但是存在地址随机化的可能性,所以又可能不是真正的内存地址,为了将windbg中显示地址与IDA地址对应起来,只需要在IDA打开文件时选中Manual load选项,并在后续输入正确的装载地址即可,在本例中为0x00400000.


image.png

你可能感兴趣的:(动静结合调试——IDA地址与windbg地址对应)