能力值:
( LV5,RANK:60 )
|
-
-
2 楼
个人理解:
第一个程序栈顶指针+8,为调用预留空间,
第二个Sub esp,0e4 调用函数内部指向预留空间
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
它起到的作用是什么哪?我把这两个指令全部换成nop,也可以正常运行的。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
那两句是准备this指针,可能ecx恰好一直是那个值,没被破坏,所以nop掉没出错。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
leftup真是热心人啊,再请教个问题啊
00454A10 55 push ebp
00454A11 8BEC mov ebp, esp
00454A13 8B45 10 mov eax, dword ptr [ebp+10]
00454A16 50 push eax
00454A17 8B4D 0C mov ecx, dword ptr [ebp+C]
00454A1A 51 push ecx
00454A1B 8B55 08 mov edx, dword ptr [ebp+8]
00454A1E 52 push edx
00454A1F E8 3C100000 call 00455A60
00454A24 83C4 0C add esp, 0C
00454A27 5D pop ebp ; 前面没有通常的 mov esp,ebp
00454A28 C3 retn
我以为
[ebp+8] 通常是参数1
[ebp+C] 通常是参数2
那么[ebp+10]是什么呀,而且取的是个DWORD,
我看了下,
mov eax, dword ptr [ebp+10] 执行后,eax 变成1了,这是怎么回事呢
mov ecx, dword ptr [ebp+C] 执行后,ecx 变成 012395B8 了
mov edx, dword ptr [ebp+8] 执行后,edx 变成 004D4880 了
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
LZ不好意识呵,我再开一贴:
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
被点名了,不敢当
[ebp+10]意思是[ebp+10H],也就是第3个参数
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
楼主应该看看 通过堆栈传递函数参数和通过寄存器传递函数参数这2种传递参数的方式
|
|
|