首页
社区
课程
招聘
[求助]据说看雪论坛高手如云,特来请教
发表于: 2009-9-16 16:14 6279

[求助]据说看雪论坛高手如云,特来请教

2009-9-16 16:14
6279
请教这2个函数的使用问题:
1、LoadLibraryA函数
LoadLibrary函数是把指定的可执行模块映射进调用进程的地址空间。通俗的说,如程序需要调用ole32.dll里面的CreateStreamOnHGlobal函数,首先应该用LoadLibraryA函数找到ole32.dll的句柄。然后根据这个句柄用GetProcAddress找到CreateStreamOnHGlobal的内存指针。
它有一个参数,即动态链接库名称的内存地址。汇编语言是这样实现的(以前面为例):
PUSH 10018888 //10018888指向ole32.dll名称。
CALL DWORD PTR DS:[10019990] //10019990是LoadLibraryA的内存指针。
结果放在EAX里面,返回值为模块句柄。
2、GetProcAddress函数
GetProcAddress函数返回指定的输出动态链接库内的函数地址。它有二个参数。汇编语言是这样实现的(以前面为例):
PUSH 1001888C //1001888C指向CreateStreamOnHGlobal名称。
PUSH EAX //EAX的值为LoadLibraryA的返回值,即ole32.dll的句柄。
CALL DWORD PTR DS:[1001999C] //1001999C为GetProcAddress函数的内存指针。
结果也放在EAX里面,返回值为DLL输出函数的内存地址。

我的问题:
第一段代码把ole32.dll的名称指针PUSH进栈的作用是什么,为什么要保存?
第二段代码也一样,非要把他们PUSH进栈才能CALL后面的函数吗???

谢谢啊  郁闷一下午了

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 4560
活跃值: (1012)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
调用约定问题,自己Google一下吧
2009-9-16 16:31
0
雪    币: 2513
活跃值: (630)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
stdcall的调用约定,通过堆栈做函数参数传递用的
2009-9-16 16:40
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
为什么要通过堆栈做参数传递  参数又是怎么传递的???我去搜索下stdcall的调用约定
2009-9-16 16:40
0
雪    币: 377
活跃值: (10)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
hModule = LoadLibrary("ole32.dll")
==>> push XXXX ->"ole32.dll"
     call LoadLibrary
2009-9-16 17:08
0
雪    币: 155
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这个。。。。
2009-9-16 17:14
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这个问题...

楼主去看一些汇编基础方面的东西(如果你觉得有需要的话)

相信你上手起来肯定很容易的
2009-9-16 19:44
0
雪    币: 2513
活跃值: (630)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
这个就没必要问为什么了,既然是约定,那就是大家必须遵守的东西,记住就好了。如果是寄存器传递,LZ是不是也要问个为什么用寄存器?凡事总得有个规定吧~
2009-9-16 20:11
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
stdcall fastcall
2009-9-16 22:38
0
雪    币: 413
活跃值: (351)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不要算上我,我注册了三年。现在还是三年前的水平,什么都不会。没精力搞这个
2009-9-17 11:51
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
已经搞明白了 呵呵PUSH这些参数进栈是为了调用它们 呵呵
2009-9-17 17:38
0
游客
登录 | 注册 方可回帖
返回
//