首页
社区
课程
招聘
[求助]关于函数的堆栈和参数的问题,是这样理解吗?
发表于: 2005-3-9 22:32 3540

[求助]关于函数的堆栈和参数的问题,是这样理解吗?

2005-3-9 22:32
3540
00403C02   A1 B49D4400      MOV EAX,DWORD PTR DS:[449DB4]
00403C07   68 007F0000      PUSH 7F00                                             ;ESP+4 lpCursorName(LoadCursorA) IDC_ARROW
00403C0C   53               PUSH EBX                                             ;ESP+4 hInstance(LoadCursorA)
00403C0D   897424 20        MOV DWORD PTR SS:[ESP+20],ESI                     ;cbSize
00403C11   895C24 24        MOV DWORD PTR SS:[ESP+24],EBX                     ;style
00403C15   C74424 28 E03E40>MOV DWORD PTR SS:[ESP+28],复件_ljg.00403EE0             ;lpfnWndProc
00403C1D   895C24 2C        MOV DWORD PTR SS:[ESP+2C],EBX                     ;cbClsExtra
00403C21   895C24 30        MOV DWORD PTR SS:[ESP+30],EBX                     ;cbWndExtra
00403C25   894424 34        MOV DWORD PTR SS:[ESP+34],EAX                     ;hInstance
00403C29   895C24 38        MOV DWORD PTR SS:[ESP+38],EBX                     ;hIcon
00403C2D   FF15 A4034400    CALL DWORD PTR DS:[<&USER32.LoadCursorA>]        ;ESP-2*4 USER32.LoadCursorA
00403C33   8D4C24 18        LEA ECX,DWORD PTR SS:[ESP+18]
00403C37   C74424 38 060000>MOV DWORD PTR SS:[ESP+38],6                             ;hCursor?
00403C3F   51               PUSH ECX                                             ;cbSize?
00403C40   894424 38        MOV DWORD PTR SS:[ESP+38],EAX                     ;hbrBackground
00403C44   895C24 40        MOV DWORD PTR SS:[ESP+40],EBX                     ;lpszMenuName
00403C48   C74424 44 188244>MOV DWORD PTR SS:[ESP+44],复件_ljg.00448218      ;lpszClassName ASCII "AtlAxWin"
00403C50   895C24 48        MOV DWORD PTR SS:[ESP+48],EBX                     ;hIconSm
00403C54   FF15 A0034400    CALL DWORD PTR DS:[<&USER32.RegisterClassExA>] ; USER32.RegisterClassExA

这是我用od跟踪到一个主窗体注册前的一段代码。最右边是我的注释,请看我注的对不对?
1.lpfnWndProc是不是00403EE0那里,我去过00403EE0,应该最后调用一个DefWindowProcA才对啊,怎么没有:(
  而且跟踪调试的时候根本不会进去00403EE0。
2.hCursor和cbSize那里对吗?那里MOV DWORD PTR SS:[ESP+38],6是什么意思?
3.hbrBackground是不是要占8个字节,而其他成员其他占4个字节?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不懂你再说什么
2005-3-9 22:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最初由 只喝芬达的狗 发布
不懂你再说什么

RegisterClassEx的参数指向一个结构:
typedef struct _WNDCLASSEX {
    UINT    cbSize;
    UINT    style;
    WNDPROC lpfnWndProc;
    int     cbClsExtra;
    int     cbWndExtra;
    HANDLE  hInstance;
    HICON   hIcon;
    HCURSOR hCursor;
    HBRUSH  hbrBackground;
    LPCTSTR lpszMenuName;
    LPCTSTR lpszClassName;
    HICON   hIconSm;
} WNDCLASSEX;
我想问实参是不上是象我注释的那样。
2005-3-9 23:36
0
游客
登录 | 注册 方可回帖
返回
//