dahubaobao
驱动牛犊
驱动牛犊
  • 注册日期2004-09-25
  • 最后登录2012-03-14
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望80点
  • 贡献值0点
  • 好评度44点
  • 原创分0分
  • 专家分0分
阅读:1673回复:0

关于编译器生成__declspec(naked)风格函数的问题!

楼主#
更多 发布于:2007-04-15 15:55
  我的驱动中有5个__declspec(naked)风格的函数,其中有的函数大小相同,所以编译时就生成了一个函数,也就是说2个函数指向了一个地址.

__declspec(naked) void function1 ()
{
    __asm
   {
         _emit 0x90
         _emit 0x90
         _emit 0x90
         _emit 0x90
         _emit 0x90        
   }
}

__declspec(naked) void function2 ()
{
    __asm
   {
         _emit 0x90
         _emit 0x90
         _emit 0x90
         _emit 0x90
         _emit 0x90        
   }
}

编译完用IDA一看,function1和function2的地址一样,也就是编译器做了优化!
有没有办法避免这种"优化"? 怎么才能保证这5个函数都单独生成!
希望有了解的朋友给些帮助,非常感谢!
游客

返回顶部