社区
进程/线程/DLL
帖子详情
系统DLL在每个进程中的地址是否一样?
malpower
2009-11-16 01:12:31
我想写个远程线程创建程序,用来跟踪扫雷程序,但是我在我自己的进程中用GetProAddress函数查到的MessageBoxA函数的地址,并且传递给了远程进程函数,但是在调用的时候还是出错了,
我想问下,是不是因为DLL在每个进程中的地址不一样?
但是好象在某本书上看见的是一样的啊。
...全文
377
10
打赏
收藏
系统DLL在每个进程中的地址是否一样?
我想写个远程线程创建程序,用来跟踪扫雷程序,但是我在我自己的进程中用GetProAddress函数查到的MessageBoxA函数的地址,并且传递给了远程进程函数,但是在调用的时候还是出错了, 我想问下,是不是因为DLL在每个进程中的地址不一样? 但是好象在某本书上看见的是一样的啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wjlsmail
2009-11-16
打赏
举报
回复
Mark
tcbhj
2009-11-16
打赏
举报
回复
当然一样,系统dll都是经过rebase.exe的
哈利路亚1874
2009-11-16
打赏
举报
回复
绝对一样!因为所有的系统DLL在内存中只有一份,只是引用计数不同而已!
shenyi0106
2009-11-16
打赏
举报
回复
系统DLL(KERNEL32.DLL,USER32.DLL,GDIPLUS.DLL等DLL)在内存中的地址使一样的
具体可以看看一个技术点,叫过远程线程注入,里面有说明
oyljerry
2009-11-16
打赏
举报
回复
Vista OS等操作系统以后,为了保护,DLL加载地址会做一些偏移...
MoXiaoRab
2009-11-16
打赏
举报
回复
KnownDLLs里面的系统DLL绝对一样,其余的一般情况下不一样
StarsunYzL
2009-11-16
打赏
举报
回复
不一定一样,但是ntdll.dll、kernel32.dll这2个最基本的DLL一般是一样的
yangyang__
2009-11-16
打赏
举报
回复
按道理来说不一定是一样的。但是kernel32.dll一般是一样的,这个特点常用来实现远程注入DLL。
因为每个PE文件(像EXE、DLL这种文件)都有一个建议装载地址。如果这个建议装载地址及其大小可以使用(没有被别的DLL使用),那么就把这个DLL装入建议地址。如果不能在这个地址正常装载,那再另找其它地址。如果所有加载这个DLL的进程都是按其建议装载地址加载的,那肯定是一样的了。但这没有一点保证。因此不能说肯定一样。
至于kernel32.dll一般是一样的原因我也不是很清楚,可能是每个用户进程都是从CreateProcess而来的,CreateProcess由kernel32.dll导出,所以kernel32.dll是一样的。也可能是kernel32.dll是一个很重要的DLL,里面导出的函数也很重要甚至就是用kernel32.dll里面的函数加载其它DLL,所以加载的时候先加载它,再加载其它DLL。
导出MessageBoxA的user32.dll就不能有这样的保证了。
JonathanS666
2009-11-16
打赏
举报
回复
和宿主程序共用一个地址空间,并非绝对地址,是进程的虚拟地址。
你要在远线程中访问任何的内存,要在远程进程地址空间是有效的,可访问的。
快乐鹦鹉
2009-11-16
打赏
举报
回复
我想应该不一样的吧。
DLL
木马
进程
内幕大揭密
在早期的DOS时代,
每个
程序都是独立编写的,缺乏代码重用性,导致效率低下。随着技术的进步,程序员开始将常用代码封装到库文件
中
,即静态链接技术。然而,这种方法虽然提高了代码复用率,但也带来了资源浪费的问题...
我以为面试官在第二层,没想到他在第5层(
dll
注入:
系统
kernel32.
dll
为什么在
每个
进程
中
的基址相同)
在漫长的春招过程
中
,身为一个大三找实习的弱鸡,免不了被面试官捶打。 昨天被问到一个
dll
注入的问题,当时心想,正
中
我的下怀,唉,我就叽里呱啦把远程线程注入的实现过程讲了一下: 1.使用
进程
PID打开
进程
,获得...
DLL
和
进程
的
地址
空间
DLL
和
进程
的
地址
空间一,MT和MD的区别二,显示链接与隐式链接三,
DLL
和
进程
的
地址
空间
DLL
是Windows开发人员经常使用到的一种技术,比如我们经常会把相同功能的代码封装到一个模块
中
,然后供其他需要使用该模块的...
DLL
入门浅析(5)——使用
DLL
在
进程
间共享数据
而在Win32环境
中
,情况却发生了变化,
每个
进程
都有了它自己的
地址
空间,
DLL
函数
中
的代码所创建的任何对象(包括变量)都归调用它的
进程
所有。当
进程
在载入
DLL
时,操作
系统
自动把
DLL
地址
映射到该
进程
的私有空间,也...
DLL
入门浅析——使用
DLL
在
进程
间共享数据
而在Win32环境
中
,情况却发生了变化,
每个
进程
都有了它自己的
地址
空间,
DLL
函数
中
的代码所创建的任何对象(包括变量)都归调用它的
进程
所有。当
进程
在载入
DLL
时,操作
系统
自动把
DLL
地址
映射到该
进程
的私有空间,也...
进程/线程/DLL
15,467
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章