boywhp
驱动中牛
驱动中牛
  • 注册日期2007-08-09
  • 最后登录2015-04-24
  • 粉丝2
  • 关注0
  • 积分1105分
  • 威望515点
  • 贡献值0点
  • 好评度254点
  • 原创分1分
  • 专家分0分
阅读:1585回复:4

神奇的CPU???还是我人品问题

楼主#
更多 发布于:2008-08-12 23:47

__declspec(naked) VOID
SsdtHookFunction()
/*
 *    通用hook函数
 */
{
    PUSER_SSDT_HOOK_ITEM  userHook;
    //ULONG params;
    ULONG orgFunction;
    __asm
    {
        int 3;
        push    ebp;
        mov        ebp, esp;
        mov        eax, [ebp + 8];            //inlinehook原始调用地址[参数1]
        mov        orgFunction, eax;        //???????????
        xor        eax, eax;
        int 3;
        mov     eax, orgFunction;        //???????????
        push    eax;
        call    GetUserSsdtItem;        //查表获取函数调用参数
        int 3;
        mov     eax, orgFunction;
        mov        userHook, eax;
    }

在Windbg跟踪
        mov        orgFunction, eax;        //???????????
        xor        eax, eax;
        int 3;
        mov     eax, orgFunction;        //???????????
执行mov        orgFunction, eax;后
dd ebp-4 居然和eax不同,晕倒
然后清0 eax,再写回刚才的值,居然不一样了
    我郁闷啊?莫非我人品有问题
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-08-13 08:10
定义的堆栈变量有可能被优化掉,而直接使用寄存器.
查看编译后的汇编代码就知道什么原因了
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
boywhp
驱动中牛
驱动中牛
  • 注册日期2007-08-09
  • 最后登录2015-04-24
  • 粉丝2
  • 关注0
  • 积分1105分
  • 威望515点
  • 贡献值0点
  • 好评度254点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2008-08-13 22:47
经多方验证确实表明我人品问题,CPU是没有问题的
在于忘了开辟堆栈空间了 晕 sub esp,0x10
4bugs
驱动牛犊
驱动牛犊
  • 注册日期2008-08-09
  • 最后登录2008-08-14
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-08-14 11:03
人品问题,呵呵
天空才是我的极限!
tiamo
VIP专家组
VIP专家组
  • 注册日期2002-02-26
  • 最后登录2018-01-09
  • 粉丝17
  • 关注4
  • 积分50分
  • 威望142点
  • 贡献值1点
  • 好评度40点
  • 原创分2分
  • 专家分15分
  • 原创先锋奖
  • 社区居民
地下室#
发布于:2008-08-31 10:14
代码有问题
你没有给你的局部变量留stack空间啊

空间不用自己算
你可以msdn一下一个大概叫__LOCAL_SIZE一类的宏..

===========================
哦...自问自答了...
那我就是打酱油的.....
游客

返回顶部