首页
社区
课程
招聘
[旧帖] 一个跟踪数据的问题,这样的情况怎么确定动态地址啊 0.00雪花
发表于: 2010-10-18 20:20 3082

[旧帖] 一个跟踪数据的问题,这样的情况怎么确定动态地址啊 0.00雪花

2010-10-18 20:20
3082
搜索出来的地址是动态分配的,下内存断点发现是
mov     ebx, dword ptr [ecx+A0]
这一句,但是我再往上跟,跟到蛋都碎了发现是这么个流程
已经到子程序调用的开头了。
mov ebp, esp
mov eax,dword ptr [ebp+10]
mov ecx,dword ptr [eax]
mov dowrd ptr [ebp-4],ecx
mov ecx,dword ptr [ebp-4]
mov ebx,dowrd ptr [ecx+A0]

ebx的值就是最终目标的地址~

完整的程序段如下

0AF834CC    55              push    ebp
0AF834CD    8BEC            mov     ebp, esp
0AF834CF    81EC 40000000   sub     esp, 40
0AF834D5    8B45 10         mov     eax, dword ptr [ebp+10]
0AF834D8    8B08            mov     ecx, dword ptr [eax]
0AF834DA    8B40 04         mov     eax, dword ptr [eax+4]
0AF834DD    8B15 E4D07B04   mov     edx, dword ptr [47BD0E4]
0AF834E3    85D2            test    edx, edx
0AF834E5    0F85 C9020000   jnz     0AF837B4
0AF834EB    85C0            test    eax, eax
0AF834ED    0F84 B9020000   je      0AF837AC
0AF834F3    8B50 1C         mov     edx, dword ptr [eax+1C]
0AF834F6    85D2            test    edx, edx
0AF834F8    8945 FC         mov     dword ptr [ebp-4], eax
0AF834FB    0F95C0          setne   al
0AF834FE    0FB6C0          movzx   eax, al
0AF83501    83F0 01         xor     eax, 1
0AF83504    85C0            test    eax, eax
0AF83506    8B55 FC         mov     edx, dword ptr [ebp-4]
0AF83509    8955 F8         mov     dword ptr [ebp-8], edx
0AF8350C    894D FC         mov     dword ptr [ebp-4], ecx
0AF8350F    8945 F4         mov     dword ptr [ebp-C], eax
0AF83512    895D F0         mov     dword ptr [ebp-10], ebx
0AF83515    8975 EC         mov     dword ptr [ebp-14], esi
0AF83518    897D E8         mov     dword ptr [ebp-18], edi
0AF8351B    0F84 25000000   je      0AF83546
0AF83521    8B89 04010000   mov     ecx, dword ptr [ecx+104]
0AF83527    8B5D 08         mov     ebx, dword ptr [ebp+8]
0AF8352A    8B13            mov     edx, dword ptr [ebx]
0AF8352C    8B52 14         mov     edx, dword ptr [edx+14]
0AF8352F    8B52 2C         mov     edx, dword ptr [edx+2C]
0AF83532    83E2 F8         and     edx, FFFFFFF8
0AF83535    8B52 30         mov     edx, dword ptr [edx+30]
0AF83538    3BCA            cmp     ecx, edx
0AF8353A    0F94C0          sete    al
0AF8353D    0FB6C0          movzx   eax, al
0AF83540    83F0 01         xor     eax, 1
0AF83543    8945 F4         mov     dword ptr [ebp-C], eax
0AF83546    8B45 F4         mov     eax, dword ptr [ebp-C]
0AF83549    85C0            test    eax, eax
0AF8354B    0F84 9B000000   je      0AF835EC
0AF83551    8B45 F8         mov     eax, dword ptr [ebp-8]
0AF83554    8B4D FC         mov     ecx, dword ptr [ebp-4]
0AF83557    8B99 A0000000   mov     ebx, dword ptr [ecx+A0]

0AF8355D    8B70 18         mov     esi, dword ptr [eax+18]
0AF83560    8BF8            mov     edi, eax
0AF83562    56              push    esi
0AF83563    8B4D 08         mov     ecx, dword ptr [ebp+8]

请问各位大大,这样的程序段我应该怎么找到动态分配的那个内存地址啊

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 1577
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
不知道你啥意思。。
2010-10-18 20:57
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看输入表,找virtualalloc之类的,下断
2010-10-18 21:34
0
雪    币: 170
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我就想获得那个动态分配的地址。。就是最后ecx+A0的值~

跟踪的时候发现每次EBP的值都是0012F630 ~0012F648区间内,但是总在跳,不知道咋办唉~
2010-10-18 22:15
0
雪    币: 1644
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
假设是cdecl或者stdcall调用约定, 那么执行
mov     eax, dword ptr [ebp+10]
之前, 堆栈如下:
ebp-40:                       <=esp	
                ...
                ebp              <=ebp		
ebp+04:	retaddr
ebp+08:	arg1
ebp+0c:	arg2
ebp+10:	arg3


按照通常的理解, [ebp+10]中的内容是第三个参数。
2010-10-18 22:32
0
雪    币: 255
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不懂!路过!·······
2010-10-19 15:22
0
雪    币: 170
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
那个ebp+10的确是第三个参数。但是请问如何获取呢?
2010-10-19 15:38
0
游客
登录 | 注册 方可回帖
返回
//