能力值:
( LV2,RANK:10 )
|
-
-
2 楼
应该是 call 0x7c837a8f
另:这样做的话,只能在你自己机器上用
|
能力值:
( LV10,RANK:170 )
|
-
-
3 楼
call b
在别人的机子上也能运行
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
b是局部变量,call 和call b是一样的,都是编译成call [ebp+xxx]或者call [esp+xxxx], 而[ebp+xxx]=0x7c837a8f,call [0x7c837a8f]是不对的,只等价于call 0x7c837a8f
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
call 和call b是一样的???????
不懂
|
能力值:
( LV5,RANK:70 )
|
-
-
6 楼
[QUOTE=compiler;598779]b是局部变量,call 和call b是一样的,都是编译成call [ebp+xxx]或者call [esp+xxxx], 而[ebp+xxx]=0x7c837a8f,call [0x7c837a8f]是不对的,只等价于call 0x7c837a8f[/QUOTE]
不太明白...
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
函数的地址不是固定不变的.
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
用od 去看就明白了
这样就正常了
__asm
{
push 100;
push 1000;
mov eax, 0x7c837a8f
call eax;
}
|
能力值:
(RANK:410 )
|
-
-
9 楼
call 和call [0x7c837a8f]是不同的。只要你反汇编看一下应该就能明白。call 被反汇编之后大概会变成如下:
call [00402000],而不是call [0x7c837a8f],你还认为call [00402000]会和call [0x7c83fa8f]是同样的吗?
|
能力值:
( LV3,RANK:20 )
|
-
-
10 楼
call [0x7c837a8f]这其实就是call 0x7c837a8f所在地址的值
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
__asm
{
push 100;
push 1000;
mov eax, 0x7c837a8f
call eax;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
call后跟相对地址而非绝对地址
|
|
|