能力值:
( LV2,RANK:10 )
|
-
-
2 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
应该是类成员函数
|
能力值:
( LV12,RANK:530 )
|
-
-
4 楼
比如说EDX是虚表指针,CALL DWORD PTR DS:[EDX+20]就会调用某个虚函数。
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
还有就是call的地址是 模块地址+偏移
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
00401016 /$ 55 push ebp
00401017 |. 8BEC mov ebp,esp
00401019 |. 51 push ecx
0040101A |. C745 FC 00104>mov [local.1],test1.00401000
00401021 |. 68 30804000 push test1.00408030 ; mark
00401026 |? E8 E1000000 call test1.0040110C
0040102B |. 83C4 04 add esp,4
0040102E |? 6A 01 push 1
00401030 |? 6A 0B push 0B
00401032 |? FF55 FC call [local.1]
00401035 |? 83C4 08 add esp,8
00401038 |? 50 push eax
00401039 |. 68 38804000 push test1.00408038 ; %d\n
0040103E |? E8 C9000000 call test1.0040110C
00401043 |? 83C4 08 add esp,8
00401046 |? C745 FC 0B104>mov [local.1],test1.0040100B
0040104D |? 6A 01 push 1
0040104F |? 6A 0B push 0B
00401051 |? FF55 FC call [local.1]
00401054 |? 83C4 08 add esp,8
00401057 |? 50 push eax
00401058 |. 68 3C804000 push test1.0040803C ; %d\n
0040105D |. E8 AA000000 call test1.0040110C
00401062 |. 83C4 08 add esp,8
00401065 |. 68 40804000 push test1.00408040 ; pause
#include "stdio.h"
#include "windows.h"
int add(int a,int b)
{
return a+b;
}
int sum(int a,int b)
{
return a-b;
}
void main()
{
int (*fpro)(int a,int b);
fpro=add;
printf("mark");
printf("%d\n",fpro(11,1));
fpro=sum;
printf("%d\n",fpro(11,1));
system("pause");
}
上代码中的函数FPRO的入口是改变的,不知道是不是你说的那种,对于以上代码,理论是编译好应该可以达到人所描述情况
|
|
|