c – 加载程序如何将DLL映射到进程地址空间
发布时间:2020-12-16 03:35:59 所属栏目:百科 来源:网络整理
导读:我很想知道Loader如何将DLL映射到处理地址空间.装载机如何做到这一点.举例非常受欢迎. 提前致谢. 解决方法 你在寻找什么样的细节?在基本层面上,所有动态链接器的工作方式几乎相同: 动态库被编译为可重定位代码(例如,使用相对跳转而不是绝对跳转).链接器在
我很想知道Loader如何将DLL映射到处理地址空间.装载机如何做到这一点.举例非常受欢迎.
提前致谢. 解决方法
你在寻找什么样的细节?在基本层面上,所有动态链接器的工作方式几乎相同:
>动态库被编译为可重定位代码(例如,使用相对跳转而不是绝对跳转).>链接器在应用程序的内存映射中找到适当大小的空白空间,并将DLL的代码和任何静态数据读入该空间.>动态库包含每个导出函数开头的偏移表,并且在加载时对客户端程序中DLL函数的调用使用新的目标地址进行修补,具体取决于库的加载位置.>大多数动态链接器系统都有一些系统,用于为特定库设置首选基址.如果在其首选地址加载库,则可以跳过步骤2和3中的重定位. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |