【技术实现步骤摘要】
基于海鹰翼辉操作系统的安全编译方法及装置
本专利技术涉及嵌入式操作系统
,尤其涉及一种基于海鹰翼辉操作系统的安全编译方法及装置。
技术介绍
随着武器装备系统在信息化、体系化、自主化和智能化等方面的飞速发展,软件的规模越来越大,关键程度越来越高,软件的质量与安全性已经成为影响产品质量与可靠性的重要因素。当前,很多商用或者开源的安全编译方法,能够支持软件开发各阶段的测试和验证,但这些工具都是基于一些市场占有率较大的开发环境、操作系统和目标机进行了定制,比如:VxWorks、CCS等,但覆盖面有限,目前尚没有针对海鹰翼辉操作系统的安全编译方法及工具。另外,商用编译方法在使用上遵循国外通用的标准和规范,本地化工作只是简单的翻译,难以实现海鹰翼辉操作系统的高安全性和高质量的要求。
技术实现思路
鉴于上述的分析,本专利技术实施例旨在提供一种基于海鹰翼辉操作系统的安全编译方法及装置,用以解决现有的编译方法难以实现海鹰翼辉操作系统的高安全性和高质量要求等问题。一方面,本专利技术实施例提供了一种基于海鹰翼辉操作系统的安全编译方法,包括如下步骤:对待编译的源程序进行代码扫描预处理,以加载头文件和宏替换至源程序的相应位置,并进行代码格式、注释风格、字符集合法性及条件编译的检查,若检查合格,得到代码扫描预处理结果,若检查不合格,对报错位置进行修正,得到代码扫描预处理结果;对所述代码扫描预处理结果进行词法分析,得到单词序列;对所述单词序列中的结构设置进行语法分析,得到抽象语法树 ...
【技术保护点】
1.一种基于海鹰翼辉操作系统的安全编译方法,其特征在于,包括如下步骤:/n对待编译的源程序进行代码扫描预处理,以加载头文件和宏替换至源程序的相应位置,并进行代码格式、注释风格、字符集合法性及条件编译的检查,若检查合格,得到代码扫描预处理结果,若检查不合格,对报错位置进行修正,得到代码扫描预处理结果;/n对所述代码扫描预处理结果进行词法分析,得到单词序列;/n对所述单词序列中的结构设置进行语法分析,得到抽象语法树,其中,所述结构设置包括控制结构、数据类型和函数声明与参数表;/n基于所述抽象语法树进行语义分析,生成中间代码;/n对所述中间代码进行优化,生成目标代码。/n
【技术特征摘要】
1.一种基于海鹰翼辉操作系统的安全编译方法,其特征在于,包括如下步骤:
对待编译的源程序进行代码扫描预处理,以加载头文件和宏替换至源程序的相应位置,并进行代码格式、注释风格、字符集合法性及条件编译的检查,若检查合格,得到代码扫描预处理结果,若检查不合格,对报错位置进行修正,得到代码扫描预处理结果;
对所述代码扫描预处理结果进行词法分析,得到单词序列;
对所述单词序列中的结构设置进行语法分析,得到抽象语法树,其中,所述结构设置包括控制结构、数据类型和函数声明与参数表;
基于所述抽象语法树进行语义分析,生成中间代码;
对所述中间代码进行优化,生成目标代码。
2.根据权利要求1所述的基于海鹰翼辉操作系统的安全编译方法,其特征在于,所述语义分析包括安全性分析和动态语义分析;其中,所述安全性分析包括如下步骤:
基于所述抽象语法树进行控制流分析,得到控制依赖图;
基于所述控制依赖图进行数据流分析,得到数据依赖图;
基于所述控制依赖图和数据依赖图得到程序依赖图;
根据安全规则库检查所述程序依赖图,得到安全性分析结果。
3.根据权利要求2所述的基于海鹰翼辉操作系统的安全编译方法,其特征在于,基于所述抽象语法树进行控制流分析,得到控制依赖图包括如下步骤:
遍历抽象语法树,寻找并获取包括if、while、for和switch的控制语句;
基于所述控制语句进行递归计算并记录控制关系;
基于记录的所述控制关系得到控制依赖图。
4.根据权利要求3所述的基于海鹰翼辉操作系统的安全编译方法,其特征在于,基于所述控制依赖图进行数据流分析,得到数据依赖图包括如下步骤:
获取所述控制依赖图中每个节点的可达定值集;
基于所述可达定值集在控制依赖图上添加数据依赖边,得到数据依赖图。
5.根据权利要求4所述的基于海鹰翼辉操作系统的安全编译方法,其特征在于,所述安全规则库包括检查规则库、程序规范库和检查结果库;所述检查规则库,用于检查C/C++警告信息;所述程序规范库,用于检查C/C++语法规则信息;所述检查结果库,用于存储安全性分析结果;
根据安全规则库检查所述程序依赖图,得到安全性分析结果,包括:
获取所述程序依赖图中的C/C++程序规则信息,将所述C/C++程序规则信息与检查规则库匹配,得到规则检查结果;
获取所述程序依赖图中的C/C++语法定义信息,将所述C/C++语法定义信息与程序规范库匹配...
【专利技术属性】
技术研发人员:周广蕴,王旭,田文龙,
申请(专利权)人:北京机电工程研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。