首页
社区
课程
招聘
[旧帖] 问个关于获取指针指向的值的问题 0.00雪花
发表于: 2007-3-11 21:27 4129

[旧帖] 问个关于获取指针指向的值的问题 0.00雪花

2007-3-11 21:27
4129
我现在调试一个程序``跟到了某个函数里``遇到些问题``看如下
0055FA02  |.  50            push    eax                              ; /pWndClass = 0012FCEC
0055FA03  |.  FF15 6C235F00 call    dword ptr [<&USER32.RegisterClas>; \RegisterClassA

这样的话``eax里保存的是pWndClass这个变量的指针``指针的地址是12FCEC,然后我跑到OD的主界面右下角那个窗口里,Ctrl+G,跑到12FCEC,看到
0012FCEC   00000008
0012FCF0   0055F810  入口地址

这样看来``肯定不是WNDCLASSEX的内容``因为第一个肯定是WNDCLASSEX的长度``那是什么呢?
估计两个地址表示的是一个变量```然后我合起来``是8F810..跟到这里就有点郁闷了```请教啊``怎样可以找到pWndClass内容的地址转

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我现在主要是想获取pWndClass这个结构lpfnWndProc成员的地址``
关键部分代码如下:
0055F97C  |.  895424 10     mov     dword ptr [esp+10], edx
0055F980  |.  895424 14     mov     dword ptr [esp+14], edx
0055F984  |.  895424 18     mov     dword ptr [esp+18], edx
0055F988  |.  895424 1C     mov     dword ptr [esp+1C], edx
0055F98C  |.  895424 20     mov     dword ptr [esp+20], edx
0055F990  |.  895424 24     mov     dword ptr [esp+24], edx
0055F994  |.  894424 10     mov     dword ptr [esp+10], eax
0055F998  |.  33C0          xor     eax, eax
0055F99A  |.  895424 28     mov     dword ptr [esp+28], edx
0055F99E  |.  895424 2C     mov     dword ptr [esp+2C], edx
0055F9A2  |.  894424 18     mov     dword ptr [esp+18], eax
0055F9A6  |.  894424 1C     mov     dword ptr [esp+1C], eax
0055F9AA  |.  8B06          mov     eax, dword ptr [esi]
0055F9AC  |.  6A 65         push    65                               ; /RsrcName = 101.
0055F9AE  |.  895424 34     mov     dword ptr [esp+34], edx          ; |
0055F9B2  |.  50            push    eax                              ; |hInst
0055F9B3  |.  895424 3C     mov     dword ptr [esp+3C], edx          ; |
0055F9B7  |.  C74424 1C 10F>mov     dword ptr [esp+1C], 0055F810     ; |入口地址
0055F9BF  |.  894424 28     mov     dword ptr [esp+28], eax          ; |
0055F9C3  |.  FF15 70235F00 call    dword ptr [<&USER32.LoadIconA>]  ; \LoadIconA
0055F9C9  |.  68 007F0000   push    7F00                             ; /RsrcName = IDC_ARROW
0055F9CE  |.  6A 00         push    0                                ; |hInst = NULL
0055F9D0  |.  894424 2C     mov     dword ptr [esp+2C], eax          ; |
0055F9D4  |.  FF15 F0235F00 call    dword ptr [<&USER32.LoadCursorA>>; \LoadCursorA
0055F9DA  |.  894424 28     mov     dword ptr [esp+28], eax
0055F9DE  |.  33C0          xor     eax, eax
0055F9E0  |.  894424 2C     mov     dword ptr [esp+2C], eax
0055F9E4  |.  894424 30     mov     dword ptr [esp+30], eax
0055F9E8  |.  837D 18 10    cmp     dword ptr [ebp+18], 10
0055F9EC  |.  72 09         jb      short 0055F9F7
0055F9EE  |.  8B4D 04       mov     ecx, dword ptr [ebp+4]
0055F9F1  |.  894C24 34     mov     dword ptr [esp+34], ecx
0055F9F5  |.  EB 07         jmp     short 0055F9FE
0055F9F7  |>  8D55 04       lea     edx, dword ptr [ebp+4]
0055F9FA  |.  895424 34     mov     dword ptr [esp+34], edx
0055F9FE  |>  8D4424 10     lea     eax, dword ptr [esp+10]
0055FA02  |.  50            push    eax                              ; /pWndClass
0055FA03  |.  FF15 6C235F00 call    dword ptr [<&USER32.RegisterClas>; \RegisterClassA

从上面看出``esp+10是pWndClass的地址``那说明esp+18就是函数地址的位置```从是我跟到0055FA02这里```esp+18这里还是10011,这个在我这里看``是一个数据来的``不是函数入口``请问是不是哪里分析错了
2007-3-11 23:02
0
雪    币: 295
活跃值: (346)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
3
RegisterClassA(CONST WNDCLASS *lpWndClass)
RegisterClassExA(CONST WNDCLASSEX *lpwcx)
2007-3-12 08:55
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
是啊...昨晚快睡的时候才发现...哈哈
2007-3-12 19:09
0
游客
登录 | 注册 方可回帖
返回
//