基于海鹰翼辉操作系统的安全编译方法及装置制造方法及图纸

技术编号:25040653 阅读:57 留言:0更新日期:2020-07-29 05:31
本发明专利技术涉及一种基于海鹰翼辉操作系统的安全编译方法及装置,属于嵌入式操作系统技术领域,解决了现有的编译方法难以实现海鹰翼辉操作系统的高安全性和高质量等问题。对待编译的源程序进行代码扫描预处理,得到代码扫描预处理结果;对代码扫描预处理结果进行词法分析,得到单词序列;对单词序列中的结构设置进行语法分析,得到抽象语法树,其中,所述结构设置包括控制结构、数据类型和函数声明与参数表;基于抽象语法树进行语义分析,生成中间代码;对中间代码进行优化,生成目标代码。实现了代码格式、注释风格、字符集合法和条件编译的检查,提高了编译软件的安全性和质量。

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

【技术保护点】
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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1