当前位置: 首页 > 专利查询>清华大学专利>正文

基于指令伪装的程序编译抓取系统及方法技术方案

技术编号:20362517 阅读:57 留言:0更新日期:2019-02-16 16:22
本发明专利技术公开了一种基于指令伪装的程序编译抓取系统及方法,其中,该系统包括:指令伪装模块用于获取抓取对象的当前使用指令,以将伪装指令替代当前使用指令,并指示编译抓取方法执行伪装指令;指令参数处理模块用于根据伪装指令的关键信息识别指令执行类型,并得到当前使用指令的源头文件和目标文件;依赖文件抓取模块用于根据指令执行类型获取执行伪装指令过程中所有中间文件、链接库、依赖文件和/或编译结果文件,获取并存储抓取的结果文件。该系统可以在无人工的参与下,直接提供给静态分析技术或其他处理进行程序的相关检验,避免了编译过程中文件删除导致的编译抓取时文件丢失等情况,并且支持多平台编译,使得没有额外第三方的资源依赖。

【技术实现步骤摘要】
基于指令伪装的程序编译抓取系统及方法
本专利技术涉及程序项目编译抓取
,特别涉及一种基于指令伪装的程序编译抓取系统及方法。
技术介绍
静态分析技术是指在不执行程序的前提下,通过语法分析、控制流与数据流处理等方法对代码进行分析,对程序的规范性、安全性和可靠性等指标进行检验的程序分析技术。在静态分析传统的处理方法中,需要对程序进行手动指定,此外还需要手动对程序进行预处理等操作,而这在实际的使用中,特别是面向较大规模程序项目有较大的不便。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的一个目的在于提出一种基于指令伪装的程序编译抓取系统。本专利技术的另一个目的在于提出一种基于指令伪装的程序编译抓取方法。为达到上述目的,本专利技术一方面提出了一种基于指令伪装的程序编译抓取系统,包括:指令伪装模块用于获取抓取对象的当前使用指令,以将伪装指令替代所述当前使用指令,并指示编译抓取方法执行所述伪装指令;指令参数处理模块用于根据所述伪装指令的关键信息识别指令执行类型,并得到所述当前使用指令的源头文件和目标文件;依赖文件抓取模块用于根据所述指令执行类型获取执行所述伪装指令过程中所有中间文件、链接库、依赖文件和/或编译结果文件,获取并存储抓取的结果文件。本专利技术实施例的基于指令伪装的程序编译抓取系统,通过对程序的实际编译中使用的配置进行处理,可以直接提供给静态分析技术或其他处理进行程序的规范性、安全性和可靠性的检验等,且编译抓取的过程中不需要人工的参与;通过指令伪装的方式使得编译指令的兼容性更好,支持并行编译,同时也避免编译过程中文件删除导致的编译抓取时文件丢失等情况,且更加具备安全性和正确性;另外,没有额外第三方的资源依赖,抓取本身不受平台的限制,可以在不同的平台上解决目标问题。另外,根据本专利技术上述实施例的基于指令伪装的程序编译抓取系统还可以具有以下附加的技术特征:进一步地,在本专利技术的一个实施例中,所述指令伪装模块是修改执行时系统环境中指令路径映射关系,以替换所述当前使用指令,其中,在调用所述伪装指令时,首先执行当前指令,以在执行完所述当前指令后,指示编译抓取。进一步地,在本专利技术的一个实施例中,所述指令执行类型包括中间文件生成类型、链接库生成类型和结果文件生成类型。进一步地,在本专利技术的一个实施例中,所述依赖文件抓取模块进一步用于:所述中间文件生成是通过替换原本语句中的特定参数,进行抓取方法,导出经过预处理后的所述源文件,直接用于代码静态分析工具的检查;所述链接库生成类型的抓取,首先创建一个链接库的独立的文件夹,并将其所依赖的源文件的预处理结果依次保存在所述独立的文件夹中;所述结果文件生成类型的指令抓取,首先创建一个链接库的独立的文件夹,对所述结果文件所依赖的源代码,将其预处理结果依次保存在所述独立的文件夹中,对所述结果文件所依赖的链接库文件,为所述链接库文件前抓取的结果文件夹创建软链接并保存。进一步地,在本专利技术的一个实施例中,所述抓取对象为可执行编译指令的程序项目。为达到上述目的,本专利技术另一方面提出了基于指令伪装的程序编译抓取方法,包括以下步骤:获取抓取对象的当前使用指令,以将伪装指令替代所述当前使用指令,并指示编译抓取方法执行所述伪装指令;根据所述伪装指令的关键信息识别指令执行类型,并得到所述当前使用指令的源头文件和目标文件;根据所述指令执行类型获取执行所述伪装指令过程中所有中间文件、链接库、依赖文件和/或编译结果文件,获取并存储抓取的结果文件。本专利技术实施例的基于指令伪装的程序编译抓取方法,通过对程序的实际编译中使用的配置进行处理,可以直接提供给静态分析技术或其他处理进行程序的规范性、安全性和可靠性的检验等,且编译抓取的过程中不需要人工的参与;通过指令伪装的方式使得编译指令的兼容性更好,支持并行编译,同时也避免编译过程中文件删除导致的编译抓取时文件丢失等情况,且更加具备安全性和正确性;另外,没有额外第三方的资源依赖,抓取本身不受平台的限制,可以在不同的平台上解决目标问题。另外,根据本专利技术上述实施例的基于指令伪装的程序编译抓取方法还可以具有以下附加的技术特征:进一步地,在本专利技术的一个实施例中,所述将伪装指令替代所述当前使用指令,进一步包括:修改执行时系统环境中指令路径映射关系,以替换所述当前使用指令,其中,在调用所述伪装指令时,首先执行当前指令,以在执行完所述当前指令后,指示编译抓取。进一步地,在本专利技术的一个实施例中,所述指令执行类型包括中间文件生成类型、链接库生成类型和结果文件生成类型。进一步地,在本专利技术的一个实施例中,所述根据所述指令执行类型获取执行所述伪装指令过程中所有中间文件、链接库、依赖文件和/或编译结果文件,进一步包括:所述中间文件生成是通过替换原本语句中的特定参数,进行抓取方法,导出经过预处理后的所述源文件,直接用于代码静态分析工具的检查;所述链接库生成类型的抓取,首先创建一个链接库的独立的文件夹,并将其所依赖的源文件的预处理结果依次保存在所述独立的文件夹中;所述结果文件生成类型的指令抓取,首先创建一个链接库的独立的文件夹,对所述结果文件所依赖的源代码,将其预处理结果依次保存在所述独立的文件夹中,对所述结果文件所依赖的链接库文件,为所述链接库文件前抓取的结果文件夹创建软链接并保存。进一步地,在本专利技术的一个实施例中,所述抓取对象为可执行编译指令的程序项目。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为根据本专利技术一个实施例的基于指令伪装的程序编译抓取系统结构示意图;图2为根据本专利技术一个具体实施例的基于指令伪装的程序编译抓取系统框架图;图3为根据本专利技术一个实施例的公共特征体的设计与伪装指令的继承框架图;图4为根据本专利技术一个实施例的指令参数处理模块流程框图;图5为根据本专利技术一个实施例的基于指令伪装的程序编译抓取方法流程图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。下面参照附图描述根据本专利技术实施例提出的基于指令伪装的程序编译抓取系统及方法,首先将参照附图描述根据本专利技术实施例提出的基于指令伪装的程序编译抓取系统。图1是本专利技术一个实施例的基于指令伪装的程序编译抓取系统结构示意图。如图1所示,该基于指令伪装的程序编译抓取系统10包括:指令伪装模块100、指令参数处理模块200和依赖文件抓取模块300。其中,指令伪装模块100用于获取抓取对象的当前使用指令,以将伪装指令替代当前使用指令,并指示编译抓取方法执行伪装指令。指令参数处理模块200用于根据伪装指令的关键信息识别指令执行类型,并得到当前使用指令的源头文件和目标文件。依赖文件抓取模块300用于根据指令执行类型获取执行伪装指令过程中所有中间文件、链接库、依赖文件和/或编译结果文件,获取并存储抓取的结果文件。本专利技术实施例的系统10可以在不需要人工的参与下,直接提供给静态分析技术或其他处理本文档来自技高网...

【技术保护点】
1.一种基于指令伪装的程序编译抓取系统,其特征在于,包括:指令伪装模块,用于获取抓取对象的当前使用指令,以将伪装指令替代所述当前使用指令,并指示编译抓取方法执行所述伪装指令;指令参数处理模块,用于根据所述伪装指令的关键信息识别指令执行类型,并得到所述当前使用指令的源头文件和目标文件;以及依赖文件抓取模块,用于根据所述指令执行类型获取执行所述伪装指令过程中所有中间文件、链接库、依赖文件和/或编译结果文件,获取并存储抓取的结果文件。

【技术特征摘要】
1.一种基于指令伪装的程序编译抓取系统,其特征在于,包括:指令伪装模块,用于获取抓取对象的当前使用指令,以将伪装指令替代所述当前使用指令,并指示编译抓取方法执行所述伪装指令;指令参数处理模块,用于根据所述伪装指令的关键信息识别指令执行类型,并得到所述当前使用指令的源头文件和目标文件;以及依赖文件抓取模块,用于根据所述指令执行类型获取执行所述伪装指令过程中所有中间文件、链接库、依赖文件和/或编译结果文件,获取并存储抓取的结果文件。2.根据权利要求1所述的基于指令伪装的程序编译抓取系统,其特征在于,所述指令伪装模块是修改执行时系统环境中指令路径映射关系,以替换所述当前使用指令,其中,在调用所述伪装指令时,首先执行当前指令,以在执行完所述当前指令后,指示编译抓取。3.根据权利要求1所述的基于指令伪装的程序编译抓取系统,其特征在于,所述指令执行类型包括中间文件生成类型、链接库生成类型和结果文件生成类型。4.根据权利要求1所述的基于指令伪装的程序编译抓取系统,其特征在于,所述依赖文件抓取模块进一步用于:所述中间文件生成是通过替换原本语句中的特定参数,进行抓取方法,导出经过预处理后的所述源文件,直接用于代码静态分析工具的检查;所述链接库生成类型的抓取,首先创建一个链接库的独立的文件夹,并将其所依赖的源文件的预处理结果依次保存在所述独立的文件夹中;所述结果文件生成类型的指令抓取,首先创建一个链接库的独立的文件夹,对所述结果文件所依赖的源代码,将其预处理结果依次保存在所述独立的文件夹中,对所述结果文件所依赖的链接库文件,为所述链接库文件前抓取的结果文件夹创建软链接并保存。5.根据权利要求1-4所述的基于指令伪装的程序编译抓取系统,其特征在于,所述抓取对象为可执行编译指令的程序项目。6.一种基于指令伪装的程序编译抓...

【专利技术属性】
技术研发人员:王聪王晗周旻陈光李兀
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

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

1