加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 加载程序如何将DLL映射到进程地址空间

发布时间:2020-12-16 03:35:59 所属栏目:百科 来源:网络整理
导读:我很想知道Loader如何将DLL映射到处理地址空间.装载机如何做到这一点.举例非常受欢迎. 提前致谢. 解决方法 你在寻找什么样的细节?在基本层面上,所有动态链接器的工作方式几乎相同: 动态库被编译为可重定位代码(例如,使用相对跳转而不是绝对跳转).链接器在
我很想知道Loader如何将DLL映射到处理地址空间.装载机如何做到这一点.举例非常受欢迎.

提前致谢.

解决方法

你在寻找什么样的细节?在基本层面上,所有动态链接器的工作方式几乎相同:

>动态库被编译为可重定位代码(例如,使用相对跳转而不是绝对跳转).>链接器在应用程序的内存映射中找到适当大小的空白空间,并将DLL的代码和任何静态数据读入该空间.>动态库包含每个导出函数开头的偏移表,并且在加载时对客户端程序中DLL函数的调用使用新的目标地址进行修补,具体取决于库的加载位置.>大多数动态链接器系统都有一些系统,用于为特定库设置首选基址.如果在其首选地址加载库,则可以跳过步骤2和3中的重定位.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读