mfc怎样编译函数,使其头部是 8b ff 55 8b ec ?为什么俺出来的函数都是以 55 8b ec 开头谢谢。

解决方案 »

  1.   

    debug中,8b ff是mov di, di,不会在mfc中看,不知道是不是函数调用不同导致的。
    mfc中有stdcall, cdecl,还有thiscall等。
      

  2.   

    第一种:
    int __cdecl tt(){...}
    0:001> u tt
    00d91360 55              push    ebp
    00d91361 8bec            mov     ebp,esp
    00d91363 81eccc000000    sub     esp,0CCh第二种:
    int __stdcall tt(){...}
    0:001> u tt
    00d913c0 55              push    ebp
    00d913c1 8bec            mov     ebp,esp
    00d913c3 81ecd8000000    sub     esp,0D8h
    00d913c9 53              push    ebx
      

  3.   

    8b ff=mov edi,edi
    只有系统提供的API函数开头才是这样的,
    加上这条无用的指令,目的是为了以方便以后打热补丁.
    百度搜索下hotpathing 应该可以找到相关资料.