首页
社区
课程
招聘
[旧帖] [求助]一个Switch的不解 0.00雪花
发表于: 2011-10-29 01:11 1487

[旧帖] [求助]一个Switch的不解 0.00雪花

2011-10-29 01:11
1487
我现在找出一个程序里面的一个CALL所在,CALL在Switch内部,
先调用的时候,碰到不解的地方
push    0
mov     dword ptr [ecx+3370], eax
mov     dword ptr [ecx+3374], edx
call    dword ptr [<&GameFrame.CGameFrameView::UpdateGameView>]  ;  

这里的dword ptr [ecx+3370]和dword ptr [ecx+3374]这个地址,我应该怎么去找,或者是找哪个地址?
我在想,ecx应该是一个基址,但是我有点分不清楚了,我这里ecx中,查找的应该是虚拟的映射地址呢,还是内存地址。

00405680  /$  8A4424 04     mov     al, byte ptr [esp+4]
00405684  |.  3C 08         cmp     al, 8                                    ;  Switch (cases 1..8)
00405686  |.  0F87 15010000 ja      004057A1
0040568C  |.  3C 01         cmp     al, 1
0040568E  |.  75 1F         jnz     short 004056AF
00405690  |.  8B4424 08     mov     eax, dword ptr [esp+8]  ;  Case 1 of switch 00405684
00405694  |.  8B5424 0C     mov     edx, dword ptr [esp+C]
00405698  |.  6A 00         push    0
0040569A  |.  8981 70330000 mov     dword ptr [ecx+3370], eax
004056A0  |.  8991 74330000 mov     dword ptr [ecx+3374], edx
004056A6  |.  FF15 7CD04000 call    dword ptr [<&GameFrame.CGameFrameView::UpdateGameView>]  ;  GameFram.CGameFrameView::UpdateGameView
004056AC  |.  C2 0C00       retn    0C
004056AF  |>  3C 02         cmp     al, 2
004056B1  |.  75 1F         jnz     short 004056D2
004056B3  |.  8B4424 08     mov     eax, dword ptr [esp+8]                                   ;  Case 2 of switch 00405684
004056B7  |.  8B5424 0C     mov     edx, dword ptr [esp+C]
004056BB  |.  6A 00         push    0
004056BD  |.  8981 60330000 mov     dword ptr [ecx+3360], eax
004056C3  |.  8991 64330000 mov     dword ptr [ecx+3364], edx
004056C9  |.  FF15 7CD04000 call    dword ptr [<&GameFrame.CGameFrameView::UpdateGameView>]  ;  GameFram.CGameFrameView::UpdateGameView
004056CF  |.  C2 0C00       retn    0C

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
应该理解为3370和3374为基址,ecx为偏移量,基址+偏移量=数据所在的地址(内存地址)。
2011-10-29 09:15
0
雪    币: 623
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
当 al = 1 时,使用 [ecx+3370], [ecx+3374]
当 al = 2 时,使用 [ecx+3360], [ecx+3364]
------------------------------------------------
ecx 是基地址,那可以推断假设:

al = 3 时,会不会使用 [ecx+3350], [ecx+3354]   ??
... ...
al = 8 时,会不会使用 [ecx+3300], [ecx+3304]   ??

--------------------
那么这个应该是一个很大的结构其中一部分是数组,或者整个结构都是数组
2011-10-29 09:56
0
游客
登录 | 注册 方可回帖
返回
//