boywhp
驱动中牛
驱动中牛
  • 注册日期2007-08-09
  • 最后登录2015-04-24
  • 粉丝2
  • 关注0
  • 积分1105分
  • 威望515点
  • 贡献值0点
  • 好评度254点
  • 原创分1分
  • 专家分0分
阅读:1513回复: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,再写回刚才的值,居然不一样了
    我郁闷啊?莫非我人品有问题
boywhp
驱动中牛
驱动中牛
  • 注册日期2007-08-09
  • 最后登录2015-04-24
  • 粉丝2
  • 关注0
  • 积分1105分
  • 威望515点
  • 贡献值0点
  • 好评度254点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2008-08-13 22:47
经多方验证确实表明我人品问题,CPU是没有问题的
在于忘了开辟堆栈空间了 晕 sub esp,0x10
游客

返回顶部