首页
社区
课程
招聘
[旧帖] 请教Getprocaddress获得的API函数地址问题 0.00雪花
发表于: 2013-4-12 14:15 5683

[旧帖] 请教Getprocaddress获得的API函数地址问题 0.00雪花

2013-4-12 14:15
5683
本人初学者,虚心请教各位大牛,为什么我用Getprocaddress获取当前API的函数地址与Xuetrx得到的API函数地址是不一样的呢?前提是API函数没有被HOOK。同一机器的函数地址为什么不一样?

我在程序里是用:LoadLibrary + Getprocaddress  获取的函数地址。

请教高手们,如何能在WIN7与XP都能获取当前API函数地址。跪求。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 1392
活跃值: (5182)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
2
没图你说个啥。
2013-4-12 16:13
0
雪    币: 1121
活跃值: (722)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
3
Win7?ASLR(模块地址随机化)
2013-4-12 17:06
0
雪    币: 189
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
可是在XP里面用Getprocaddress获取的地址还是与Xuetrx里面获得的地址是不同的。
Xuetrx里应该是用ZwSystemDebugControl或者其他更好的办法获取的。

请教各位高手,除了ZwSystemDebugControl,还能用什么方法获取函数的当前地址。不是原始地址。
当前地址有可能是被HOOK后的地址。我就是要获取当前的函数地址。
2013-4-13 04:41
0
雪    币: 1392
活跃值: (5182)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
5
人家XUETR都是直接读取磁盘文件的数据,所以才能做对比扫描出HOOK的地点和代码
2013-4-13 09:01
0
雪    币: 17
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
Getprocaddress 是获取模块中函数的地址,函数必须是导出的。在应用层调用。它只是获取当成应用程序加载的指定模块的指定名称的函数地址。
XT没截图,不知道你说的是哪个函数,XT中的函数一般都是内核函数的,内核函数一般在内核调用
MmGetSystemRoutineAddress  来获取函数地址。
2013-4-30 23:43
0
雪    币: 70
活跃值: (88)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
7
在WinVista以上的,模块加载的基址随机化ASLR
在其他的一些系统(如openBSD,Mac OS X,Linux等也有这种机制),大致意思就是,一个模块装入内存后,比如说,gdi32.dll,第一次装入,获得API,SelectObject的基址是0F88230H,第二次启动程序时,这个API的地址,不再是这个值。好像Kernel32.dll中的API不会变,说明Kernel32.dll每次装入的基址都是一样的。
2013-5-1 00:22
0
游客
登录 | 注册 方可回帖
返回
//