基于嵌入式操作系统的动态链接器设计与实现
发布时间:2021-06-23 05:59
为满足嵌入式平台中对可执行文件动态链接器的需求,本文对传统LinuxELF(Executable Linkable Format)格式的基础上,提出了一种新的可执行文件格式(aELF),并给出了aELF可执行文件的构建方法与装载过程,进而终实现了与之对应的动态链接器。此外,本文还基于aELF文件格式和动态链接器,实现了嵌入式音乐播放器插件的信任链动态链接器。使用aELF模块技术的音乐播放器可在播放时对音乐插件模块进行动态插入和卸载,更节约内存。aELF允许可执行文件加载到任意加载地址,解决了多个程序地址空间的重叠问题。aELF动态链接器在装载aELF文件之后,可扫描并修正aELF文件中所有对代码和数据地址的引用,使其指向重定位后的新地址。传统的动态链接器使用的符号表占用了ELF文件大量的空间,而且有泄露信息的可能,因此,aELF放弃了传统ELF中使用符号表来存储动态链接所需的符号信息,改为使用名字标示符对符号进行统一编码;此外,aELF可以对可执行文件进行压缩并加密,使用签名算法对可执行文件进行签名,得到了良好的安全性和保密性。通过对比测试,aELF格式的可执行文件相对于传统Linux...
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:87 页
【学位级别】:硕士
【文章目录】:
摘要
ABSTRACT
第一章 引言
1.1 研究背景
1.2 国内外研究现状
1.3 论文的研究意义
1.4 论文的主要工作和组织
第二章 相关技术背景
2.1 UNIX 可执行文件格式
2.2 PE 可执行文件格式
2.3 ELF 可执行文件格式
2.4 Linux 动态装载器
2.4.1 Linux 内核模块格式
2.4.2 Linux 内核模块的优缺点
2.4.3 Linux 用户态装载器
2.4.4 Linux 用户态装载器的优缺点
2.5 相关加密算法
2.5.1 RC4 算法
2.5.2 SHA‐1 算法
2.5.3 RSA 算法
2.6 本章小结
第三章 aELF 的设计与实现
3.1 aELF 文件格式的设计
3.1.1 模块属性信息
3.1.2 符号与库
3.1.3 名字标示符
3.1.4 导入与导出库
3.2 aELF 文件格式的实现
3.2.1 aELF 模块创建过程
3.2.2 特殊区段
3.2.3 重定位
3.2.4 导出文件
3.2.5 导入与导出库的生成
3.3 aELF 加密与压缩的设计与实现
3.3.1 RSA 签名算法
3.3.2 RC4 加密算法
3.3.3 SHA‐1 散列算法
3.4 aELF 文件格式的后期处理
3.5 本章小结
第四章 aELF 动态链接器的设计与实现
4.1 aELF 动态链接器的设计
4.1.1 aELF 装载 API 接口
4.1.2 aELF 装载过程
4.1.3 aELF 错误处理
4.1.4 aELF 链接器的可移植性
4.2 aELF 动态链接器的实现
4.2.1 源代码的组织结构
4.2.2 加载模块
4.2.2.1 校验与解密
4.2.2.2 装载区段至内存
4.2.2.3 处理符号表
4.2.2.4 处理重定位信息
4.2.2.5 查找模块属性信息
4.2.3 启动模块
4.2.4 终止模块
4.2.5 卸载模块
4.2.6 查询模块
4.3 本章小结
第五章 aELF 及加载器的应用设计
5.1 aELF 音乐播放器
5.1.1 基本设计
5.1.2 实现
5.2 应用 aELF 及加载器改造 aCoral 内核结构
5.2.1 需求
5.2.2 设计
5.2.3 实现
5.3 本章小结
第六章 系统测试
6.1 aELF 装载器的测试
6.2 自动化测试方案
6.2.1 onlyLib
6.2.2 basicLoading
6.2.3 syslibcTester
6.2.4 serverClient
6.2.5 weakStub
6.2.6 mad
6.3 aELF 模块安全性测试
6.4 aELF 文件大小测试
6.5 本章小结
第七章 总结与展望
7.1 本文的主要贡献
7.2 下一步工作展望
附录 ELF 文件格式
致谢
参考文献
攻硕期间取得的研究成果
【参考文献】:
期刊论文
[1]椭圆曲线密码体制安全性分析[J]. 李殿伟,王正义,赵俊阁. 计算机技术与发展. 2012(04)
[2]动态共享库保护方法研究[J]. 徐艳湘,黄皓,胡勇强. 计算机工程. 2010(04)
[3]嵌入式可信计算机研究[J]. 林小茶,李光,金爽. 计算机工程与设计. 2009(16)
[4]基于可信计算的恶意代码防御机制研究[J]. 陈麟,林宏刚,黄元飞. 计算机应用研究. 2008(12)
[5]Linux可加载内核模块LKM机制安全性研究[J]. 姜湘岗. 计算机工程与设计. 2007(20)
[6]可信计算平台安全体系及应用研究[J]. 王飞,刘毅. 微计算机信息. 2007(09)
[7]Windows下代码签名验证的研究与实现[J]. 王一平,韦卫. 计算机应用与软件. 2007(01)
[8]关于可信计算平台模块的研究[J]. 秦戈,韩文报. 信息工程大学学报. 2006(04)
[9]一种基于加密模式的Linux安全模块加载机制[J]. 孙振华,李艺,喻刚,金鹏. 装备指挥技术学院学报. 2006(04)
[10]Linux可信启动的设计与实现[J]. 方艳湘,黄涛. 计算机工程. 2006(09)
硕士论文
[1]aCoral可执行文件加载与线程交互机制的研究与设计[D]. 闫志强.电子科技大学 2012
[2]嵌入式多核实时操作系统研究及实现[D]. 申建晶.电子科技大学 2011
本文编号:3244379
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:87 页
【学位级别】:硕士
【文章目录】:
摘要
ABSTRACT
第一章 引言
1.1 研究背景
1.2 国内外研究现状
1.3 论文的研究意义
1.4 论文的主要工作和组织
第二章 相关技术背景
2.1 UNIX 可执行文件格式
2.2 PE 可执行文件格式
2.3 ELF 可执行文件格式
2.4 Linux 动态装载器
2.4.1 Linux 内核模块格式
2.4.2 Linux 内核模块的优缺点
2.4.3 Linux 用户态装载器
2.4.4 Linux 用户态装载器的优缺点
2.5 相关加密算法
2.5.1 RC4 算法
2.5.2 SHA‐1 算法
2.5.3 RSA 算法
2.6 本章小结
第三章 aELF 的设计与实现
3.1 aELF 文件格式的设计
3.1.1 模块属性信息
3.1.2 符号与库
3.1.3 名字标示符
3.1.4 导入与导出库
3.2 aELF 文件格式的实现
3.2.1 aELF 模块创建过程
3.2.2 特殊区段
3.2.3 重定位
3.2.4 导出文件
3.2.5 导入与导出库的生成
3.3 aELF 加密与压缩的设计与实现
3.3.1 RSA 签名算法
3.3.2 RC4 加密算法
3.3.3 SHA‐1 散列算法
3.4 aELF 文件格式的后期处理
3.5 本章小结
第四章 aELF 动态链接器的设计与实现
4.1 aELF 动态链接器的设计
4.1.1 aELF 装载 API 接口
4.1.2 aELF 装载过程
4.1.3 aELF 错误处理
4.1.4 aELF 链接器的可移植性
4.2 aELF 动态链接器的实现
4.2.1 源代码的组织结构
4.2.2 加载模块
4.2.2.1 校验与解密
4.2.2.2 装载区段至内存
4.2.2.3 处理符号表
4.2.2.4 处理重定位信息
4.2.2.5 查找模块属性信息
4.2.3 启动模块
4.2.4 终止模块
4.2.5 卸载模块
4.2.6 查询模块
4.3 本章小结
第五章 aELF 及加载器的应用设计
5.1 aELF 音乐播放器
5.1.1 基本设计
5.1.2 实现
5.2 应用 aELF 及加载器改造 aCoral 内核结构
5.2.1 需求
5.2.2 设计
5.2.3 实现
5.3 本章小结
第六章 系统测试
6.1 aELF 装载器的测试
6.2 自动化测试方案
6.2.1 onlyLib
6.2.2 basicLoading
6.2.3 syslibcTester
6.2.4 serverClient
6.2.5 weakStub
6.2.6 mad
6.3 aELF 模块安全性测试
6.4 aELF 文件大小测试
6.5 本章小结
第七章 总结与展望
7.1 本文的主要贡献
7.2 下一步工作展望
附录 ELF 文件格式
致谢
参考文献
攻硕期间取得的研究成果
【参考文献】:
期刊论文
[1]椭圆曲线密码体制安全性分析[J]. 李殿伟,王正义,赵俊阁. 计算机技术与发展. 2012(04)
[2]动态共享库保护方法研究[J]. 徐艳湘,黄皓,胡勇强. 计算机工程. 2010(04)
[3]嵌入式可信计算机研究[J]. 林小茶,李光,金爽. 计算机工程与设计. 2009(16)
[4]基于可信计算的恶意代码防御机制研究[J]. 陈麟,林宏刚,黄元飞. 计算机应用研究. 2008(12)
[5]Linux可加载内核模块LKM机制安全性研究[J]. 姜湘岗. 计算机工程与设计. 2007(20)
[6]可信计算平台安全体系及应用研究[J]. 王飞,刘毅. 微计算机信息. 2007(09)
[7]Windows下代码签名验证的研究与实现[J]. 王一平,韦卫. 计算机应用与软件. 2007(01)
[8]关于可信计算平台模块的研究[J]. 秦戈,韩文报. 信息工程大学学报. 2006(04)
[9]一种基于加密模式的Linux安全模块加载机制[J]. 孙振华,李艺,喻刚,金鹏. 装备指挥技术学院学报. 2006(04)
[10]Linux可信启动的设计与实现[J]. 方艳湘,黄涛. 计算机工程. 2006(09)
硕士论文
[1]aCoral可执行文件加载与线程交互机制的研究与设计[D]. 闫志强.电子科技大学 2012
[2]嵌入式多核实时操作系统研究及实现[D]. 申建晶.电子科技大学 2011
本文编号:3244379
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3244379.html