首页
社区
课程
招聘
[求助]直接调用 API 的问题
发表于: 2009-3-29 23:01 4818

[求助]直接调用 API 的问题

2009-3-29 23:01
4818
如下的代码
HINSTANCE a;
    LPVOID b;
    a = LoadLibrary("Kernel32.DLL");
    b = (LPVOID)GetProcAddress(a,"Beep");
    printf("%x",b);
    getchar();
    __asm
    {
        push 100;
        push 1000;
        call ;
    }
是可以正常运行的,但把 call 改成 call [0x7c837a8f] 就会出错了,其实地址都是相同的吖,怎么不行的呢,请各位牛人帮帮忙....
先谢谢了...

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
应该是 call 0x7c837a8f

另:这样做的话,只能在你自己机器上用
2009-3-30 00:20
0
雪    币: 229
活跃值: (483)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
3
call b
在别人的机子上也能运行
2009-3-30 08:23
0
雪    币: 220
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
b是局部变量,call 和call b是一样的,都是编译成call [ebp+xxx]或者call [esp+xxxx], 而[ebp+xxx]=0x7c837a8f,call [0x7c837a8f]是不对的,只等价于call 0x7c837a8f
2009-3-30 08:39
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
call 和call b是一样的???????
不懂
2009-3-30 11:06
0
雪    币: 342
活跃值: (55)
能力值: ( 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]

不太明白...
2009-3-30 18:45
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
函数的地址不是固定不变的.
2009-3-30 18:47
0
雪    币: 962
活跃值: (1686)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
用od 去看就明白了

这样就正常了
    __asm
    {
        push 100;
        push 1000;
        mov eax, 0x7c837a8f
        call eax;
    }
2009-4-10 03:16
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
9
call 和call [0x7c837a8f]是不同的。只要你反汇编看一下应该就能明白。call 被反汇编之后大概会变成如下:
call [00402000],而不是call [0x7c837a8f],你还认为call [00402000]会和call [0x7c83fa8f]是同样的吗?
2009-4-10 09:18
0
雪    币: 290
活跃值: (20)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
call [0x7c837a8f]这其实就是call 0x7c837a8f所在地址的值
2009-4-10 09:19
0
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
__asm
    {
        push 100;
        push 1000;
        mov eax, 0x7c837a8f
        call eax;
    }
2009-4-11 13:56
0
雪    币: 175
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
call后跟相对地址而非绝对地址
2009-4-20 11:39
0
游客
登录 | 注册 方可回帖
返回
//