【问题标题】:windbg: set data breakpoint at dll + offsetwindbg:在 dll + 偏移处设置数据断点
【发布时间】:2013-05-24 22:40:57
【问题描述】:

我想在 xul.dll+0x7d760 的值上设置一个数据写入断点,希望使用命令脚本。

我可以使用lm打印xul.dll的基地址,并手动设置断点

ba w (baseaddress + 0x7d760)

但我想不出一种方法将 xul.dll 的基地址存储到伪寄存器中,以便我可以自动执行此操作。有没有办法以某种方式将lm xul 的结果存储或解析到伪寄存器中?

【问题讨论】:

    标签: windbg


    【解决方案1】:

    .foreach /pS 4 /ps 3 (modbase {lm p m xul}) {ba w 4 (${modbase} + 0x7d760)}

    在此命令中,模块的基地址将存储在${modbase} 中。将xul 替换为另一个模块,或编辑{ba w 4 (${modbase} + 0x7d760)} 块以根据需要替换不同的命令或偏移量。

    【讨论】:

      【解决方案2】:

      模块名减去后缀也可以用来表示基地址:

      0:000> lm mole32
      start             end                 module name
      000007ff`344b0000 000007ff`3462e000   ole32      (deferred)             
      0:000> ? ole32
      Evaluate expression: 8792675385344 = 000007ff`344b0000
      0:000> ? ole32 + 0x7d760
      Evaluate expression: 8792675899232 = 000007ff`3452d760
      0:000> ? 000007ff`3452d760 - ole32
      Evaluate expression: 513888 = 00000000`0007d760
      

      【讨论】:

        猜你喜欢
        • 2019-02-15
        • 1970-01-01
        • 1970-01-01
        • 2012-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多