kcynice
驱动牛犊
驱动牛犊
  • 注册日期2008-03-03
  • 最后登录2010-08-28
  • 粉丝1
  • 关注0
  • 积分43分
  • 威望138点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分2分
阅读:1412回复:1

驱动中有一行代码在IDA中与系统加载之后为什么会是这么不同呢?

楼主#
更多 发布于:2009-02-06 22:20
一个驱动里面一行代码,本来是ProbeForRead(0x800000,0x1000,1).
这行代码(不包括参数)在编译生成的机器码为FF 15 2C 32 01 00
在IDA里面看到的是这样:
push 1
push 1000
push 800000
call ds:ProbeForRead
但,驱动被系统加载之后,却是这样:
push 1
push 1000
push 800000
call [0001322C]
,看起来像是重定位的问题,请明白的帮忙指点一下好吗?谢谢
kcynice
驱动牛犊
驱动牛犊
  • 注册日期2008-03-03
  • 最后登录2010-08-28
  • 粉丝1
  • 关注0
  • 积分43分
  • 威望138点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分2分
沙发#
发布于:2009-02-07 00:40
它被加载后,正常应该是call [驱动映像基址+0000322C],而[驱动映像基址+0000322C]处刚好就是ProbeForRead输入项的入口地址。
请问,这里为什么没有进行这个重定位操作呢?
游客

返回顶部