类调用堆栈stdcall thiscall

来源:互联网 发布:卓智网络破解 编辑:程序博客网 时间:2024/05/16 10:27
看deom吧,

两个对比


C/C++ code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
--- e:\c_plus_plus\test\test\test2.cpp -----------------------------------------
class A
{
public:
     void _stdcall fun( int val){}
00BC1430  push        ebp  
00BC1431  mov         ebp,esp 
00BC1433  sub         esp,0C0h 
00BC1439  push        ebx  
00BC143A  push        esi  
00BC143B  push        edi  
00BC143C  lea         edi,[ebp-0C0h] 
00BC1442  mov         ecx,30h 
00BC1447  mov         eax,0CCCCCCCCh 
00BC144C  rep stos    dword ptr es:[edi] 
00BC144E  pop         edi  
00BC144F  pop         esi  
00BC1450  pop         ebx  
00BC1451  mov         esp,ebp 
00BC1453  pop         ebp  
00BC1454  ret         8    
 
 
    A obj;
    obj.fun(2);
002D13BE  push        2    
002D13C0  lea         eax,[obj] 
002D13C3  push        eax  
002D13C4  call        A::fun (2D10F0h) 
 
 
 
 
///////////////////////////////////////////////////////////////////////////////////////
class A
{
public:
     void  fun( int val){}
008B1430  push        ebp  
008B1431  mov         ebp,esp 
008B1433  sub         esp,0CCh 
008B1439  push        ebx  
008B143A  push        esi  
008B143B  push        edi  
008B143C  push        ecx  
008B143D  lea         edi,[ebp-0CCh] 
008B1443  mov         ecx,33h 
008B1448  mov         eax,0CCCCCCCCh 
008B144D  rep stos    dword ptr es:[edi] 
008B144F  pop         ecx  
008B1450  mov         dword ptr [ebp-8],ecx 
008B1453  pop         edi  
008B1454  pop         esi  
008B1455  pop         ebx  
008B1456  mov         esp,ebp 
008B1458  pop         ebp  
008B1459  ret         4    
 
 
 
 
    A obj;
    obj.fun(2);
008B13BE  push        2    
008B13C0  lea         ecx,[obj] 
008B13C3  call        A::fun (8B10E6h)