社区
进程/线程/DLL
帖子详情
什么是DLL映射到进程的地址空间?
iceman19860106
2009-04-09 10:29:16
请问什么是DLL映射到进程的地址空间?其原理及细节是怎么一回事啊?请大虾帮忙下!
...全文
406
4
打赏
收藏
什么是DLL映射到进程的地址空间?
请问什么是DLL映射到进程的地址空间?其原理及细节是怎么一回事啊?请大虾帮忙下!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gust2012
2009-04-09
打赏
举报
回复
HOOK 木马,外挂方便用的比较频繁.想搞别的进程里面的东西,但进程与进程是独立的,就需要让别的进程加载一个DLL,就可以让别的进程做我想要让他做的事.
oyljerry
2009-04-09
打赏
举报
回复
DLL执行需要在进程中,进程有它对应的物理地址以及虚拟内存地址空间,DLL需要把它自己的映射到加载的进程的地址空间中,从而进程能够访问到它的数据等...
cnzdgs
2009-04-09
打赏
举报
回复
1
Windows系统中,各个进程的虚拟地址空间是相互独立的,分配内存就是把地址空间中的某一段与磁盘文件(例如DLL文件)建立映射关系,当要使用该段内存时,系统自动为其分配物理内存,再把映射文件中相应的数据读到物理内存中,然后程序才能访问。一个文件可以映射到多个进程的地址空间,各个进程可以共享该文件及物理内存,也可以是写拷贝的方式,当没有修改数据时各个进程共享文件,如果哪个进程修改了数据,则在系统分页文件中为其单独分配适当的空间,(按页)映射其修改的部分。
lzr4304061988012
2009-04-09
打赏
举报
回复
每一个进程都有个地址空间,把DLL所占有的物理内存映射到进程的地址空间,
通常在进程加载DLL时发生。
MFC:AfxLoadLibrary-将指定的
DLL
映射
到调用
进程
的
地址空间
Visual Studio 2012 - Visual C++ LoadLibrary 和 AfxLoadLibrary
进程
调用LoadLibrary(或AfxLoadLibrary) 以显式链接到
DLL
。如果函数成功,它将指定的
DLL
映射
到调用
进程
的
地址空间
中并返回句柄可用于其他功能在显式链接 (例如、GetProcAddress和FreeLi...
DLL
和
进程
的
地址空间
DLL
和
进程
的
地址空间
一,MT和MD的区别二,显示链接与隐式链接三,
DLL
和
进程
的
地址空间
DLL
是Windows开发人员经常使用到的一种技术,比如我们经常会把相同功能的代码封装到一个模块中,然后供其他需要使用该模块的程序共同调用,可以降低代码的复用性,使用起来非常方便;而且,当我们需要对外部提供自己公司的接口时,也会考虑到使用
dll
,它可以将我们内部实现的代码进行封装保护,而不会暴露给使用者。本...
Windows提供了两种将
DLL
映像到
进程
地址空间
的方法
调用
DLL
,首先需要将
DLL
文件映像到用户
进程
的
地址空间
中,然后才能进行函数调用,这个函数和
进程
内部一般函数的调用方法相同。Windows提供了两种将
DLL
映像到
进程
地址空间
的方法:1. 隐式的加载时链接这种方法需要
DLL
工程经编译产生的LIB文件,此文件中包含了
DLL
允许应用程序调用的所有函数的列表,当链接器发现应用程序调用了LIB文件列出的某个函数,就会在应用程序的可执行文件的文件映像
Windows核心编程_动态链接库_
DLL
基础_
DLL
与
进程
的
地址空间
通常创建一个
DLL
要比建立一个应用程序容易,因为
DLL
包含一组可以被任何应用所使用的自治(autonomous)函数。在
DLL
中通常没有支持处理消息循环或创建窗口的代码。一个
DLL
只是一组源代码模块的集合。其中每个模块包含应用程序(可执行文件)或另一个
DLL
将要调用的一组函数。当所有的源代码文件编译后,就像应用程的可执行文件那样被链接程序所链接。然而,对于一个
DLL
,必须要为链接程序设定
DLL
开关...
DLL
的
进程
空间
一旦
DLL
的文件映像被
映射
到调用
进程
的
地址空间
中,
DLL
的函数就可以供
进程
中运行的所有线程使用。实际上,
DLL
几乎将失去它作为
DLL
的全部特征。对于
进程
中的线程来说,
DLL
的代码和数据看上去就像恰巧是在
进程
的
地址空间
中的额外代码和数据一样。当一个线程调用
DLL
函数时,该
DLL
函数要查看线程的堆栈,以便检索它传递的参数,并将线程的堆栈用于它需要的任何局部变量。此外,
DLL
中函数的代码创建的任何对象均由调用线程所拥有,而
DLL
本身从来不拥有任何东西
。
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章