首页
社区
课程
招聘
LoadLibraryA 函数地址定位
发表于: 2011-12-25 11:47 4355

LoadLibraryA 函数地址定位

2011-12-25 11:47
4355
我DIY了一个EXE程序 利用 LoadLibraryA 函数调用我的DLL 实现DIY

但是我发现在我自己的机器上 LoadLibraryA的地址是 7C801D7B

但是我拉到虚拟机里测试  LoadLibraryA的地址变成了 7C801D77

请问该如何解决这个问题

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
虚拟机和实体机的确不一样。我今天练习了个Ring0 InlineHook ,在虚拟机中运行正常,到本机中,就蓝屏了,奶奶的。。。
2011-12-25 15:31
0
雪    币: 408
活跃值: (156)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
3
同系统跨进程的地址应该是一样。
虚拟机和实体机操作系统的版本不同,地址稍微有出入。估计楼主用了硬编码了,最好是每次都要自己获取iat:)
2011-12-25 17:26
0
雪    币: 434
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
该问题是操作系统版本不同引起的

常规解决方法:
定位内存中kernel32.dll基址(LoadLibraryA由kernel32.dll导出)
解析kernel32.dll的PE文件结构 得到LoadLibraryA相对偏移
基址+偏移 动态获取LoadLibraryA地址

与GetProcAddress功能类似 只是这是由自己实现
2011-12-26 10:20
0
游客
登录 | 注册 方可回帖
返回
//