[发明专利]一种P2020机器码程序到C语言源程序的溯源方法有效
申请号: | 202010397904.8 | 申请日: | 2020-05-12 |
公开(公告)号: | CN111552465B | 公开(公告)日: | 2022-07-05 |
发明(设计)人: | 谢文光;汪克念;马春燕;张啸晨;吴康;姚鑫鹏;陈文琪 | 申请(专利权)人: | 中国民航大学 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06F21/16 |
代理公司: | 天津中环专利商标代理有限公司 12105 | 代理人: | 王凤英 |
地址: | 300300 天*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 p2020 机器码 程序 语言 源程序 溯源 方法 | ||
本发明公开了一种P2020机器码程序到C语言源程序的溯源方法。通过本方法,用户可以从文件、函数定义、函数体等三层次实现P2020处理器机器码程序和其编译之前的C语言源程序之间的映射和溯源,包括P2020机器码程序文件、函数、函数内的每条语句到C语言源程序的映射和溯源。以达到在机器码程序层次上识别任务关键安全嵌入式软件编译期间是否插入非相关危害性代码的目的,同时根据溯源关系,还可以在机器码程序层次上实施测试覆盖的分析验证,保证嵌入式安全关键软件产品的安全性和可靠性,降低软件审核的成本。本方法可运用于高可靠、高安全领域,例如,航空领域、航天领域、交通运输领域、核电领域等。
技术领域
本发明涉及PowerPC P2020处理器平台的机器码程序到C语言源程序的映射和溯源技术,尤其是涉及一种P2020机器码程序到C语言源程序的溯源方法。
背景技术
PowerPCP2020处理器在嵌入式领域已有广泛应用。P2020处理器是FreeScale公司推出的新一代QorIQTM通信处理器,该处理器在45nm技术低功耗平台上,最高可实现1.2GHz双核以及单核频率,具有高性能低功耗的特点,广泛应用于联网、电信、军事以及工业嵌入式系统应用领域。
PowerPCP2020处理器上可执行机器码程序的生成。用户采用C语言撰写的应用程序,需要在PC平台X86处理器上通过C语言编译器进行编译,生成可以在PowerPCP2020处理器上执行的机器码程序。目前,针对PowerPCP2020处理器上可执行机器码程序的生成,成熟和广泛应用的C语言编译器是国外开源网站提供的gcc(GNUCompiler Collection)编译套件,以及全球领先的智能互连系统软件供应商风河公司提供的diab编译器。
电信、军事以及工业嵌入式应用领域要求确保PowerPCP2020机器码程序和C语言源程序的功能一致性,以及时报告编译过程中非C语言源程序中要求的例外功能插入机器码程序,从而消除影响嵌入式系统可靠性和安全性的危险因素。例如,面向民用飞机的适航取证,机载软件一般采用RTCA发布的DO-178B标准来表明其适航符合性。在RTCA/DO-178B文档中软件的审核与分析相关部分,源程序的审核与分析是量化评估一个重要方面。目前,对于源程序的审核与分析,尤其是机器码程序和C语言源程序的功能可追溯性,需要程序员手工分析并建立映射关系,分析难度较高、效率较低。
C语言源程序和PowerPCP2020机器码程序之间的功能追溯性,也是机载软件结构测试覆盖率分析必须要关注的问题之一。例如,机载软件在编译C语言源程序的过程中会生成额外的PowerPCP2020机器码程序,包括初始化机器码程序、内置错误探测机器码程序、异常处理机器码程序等等。因此,对于任务关键安全软件,如果要在C语言源程序层级完成结构覆盖率分析,还应该分析C语言源程序和PowerPCP2020机器码程序之间的追溯性,并对不能追溯到C语言源程序的PowerPCP2020机器码程序进行分析和验证。
发明内容
为了解决以上技术问题,本发明提供一种P2020机器码程序到C语言源程序的溯源方法。即通过分析P2020处理器平台的机器码程序的编译过程,提出了一种由P2020处理器平台的机器码程序到C语言源程序的追溯性分析方法。
通过本发明,用户可以从文件、函数定义、函数体等三层次实现P2020处理器平台的机器码程序和其编译之前的C语言源程序之间的映射和溯源,包括P2020处理器平台的机器码文件、机器码函数、函数内的每条机器码指令到C语言源程序的映射和溯源,以防止编译期间插入非相关危害性代码带来的隐患。
本发明采取的技术方案是:一种P2020机器码程序到C语言源程序的溯源方法,其特征在于,有以下步骤:
步骤一:生成待追溯C语言源程序的抽象语法树
将C语言程序作为开源工具Pycparser的输入,采用该工具生成C语言源程序文件的抽象语法树,每个抽象语法树的节点包含语法结构的名称、孩子节点信息及该节点对应的C语言源程序中的行号信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国民航大学,未经中国民航大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010397904.8/2.html,转载请声明来源钻瓜专利网。