生成移动智能终端源代码的抽象语法树的方法及装置制造方法及图纸

技术编号:10226913 阅读:156 留言:0更新日期:2014-07-17 19:55
本发明专利技术公开了一种生成移动智能终端源代码的抽象语法树的方法,包括:S1.抓取移动智能终端的源代码;S2.对所述的源代码进行数据结构的转换,找出数据流的入口到出口的跟踪点;S3.根据所述的跟踪点调用多个处理线程,生成图形化的结构树;S4.保存所述的结构树。本发明专利技术还公开了一种生成移动智能终端源代码的抽象语法树的装置。本发明专利技术提供的生成移动智能终端源代码的抽象语法树的方法及装置中,抽象语法树中包含的信息在满足程序后续静态分析需要的同时,包含的其他信息较少,找出潜在的风险可能性较大,提高了代码的安全性。

【技术实现步骤摘要】
生成移动智能终端源代码的图形化的结构树的方法及装置
本专利技术涉及源代码安全的领域,特别涉及一种生成移动智能终端源代码的图形化的结构树的方法及装置。
技术介绍
在计算机科学中,图形化的结构树(abstractsyntaxtree或者缩写为AST),或者语法树(syntaxtree),是源代码的抽象语法结构的树状表现形式,这里特指编程语言的源代码。树上的每个节点都表示源代码中的一种结构。之所以说语法是“抽象”的,是因为这里的语法并不会表示出真实语法中出现的每个细节。比如,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现;而类似于if-condition-then这样的条件跳转语句,可以使用带有两个分支的节点来表示。图形化的结构树(AST)的具体形式的选择,即图形化的结构树中包含的信息的多少,影响程序分析的效率。图形化的结构树能否正确地生成,并包含足够的信息将决定后续的程序分析的成败,如何找到更有效的生成移动智能终端源代码的图形化的结构树的方法及装置,提高代码的完全性成为人们的一道课题。
技术实现思路
为解决以上的问题,本专利技术提供生成移动智能终端源代码的图形化的结构树的方法及装置。本专利技术公开了一种生成移动智能终端源代码的图形化的结构树的方法,包括:S1.抓取移动智能终端的源代码;S2.对所述的源代码进行数据结构的转换,找出数据流的入口到出口的跟踪点;S3.根据所述的跟踪点调用多个处理线程,生成图形化的结构树;S4.保存所述的图形化的结构树。在本专利技术所述的生成移动智能终端源代码的图形化的结构树的方法中,所述的步骤S1至步骤S4均在编译器前端进行。在本专利技术所述的生成移动智能终端源代码的图形化的结构树的方法中,所述的跟踪点包括分支点、汇聚点。在本专利技术所述的生成移动智能终端源代码的图形化的结构树的方法中,所述步骤S4后还包括步骤S5:抓取所述的图形化的结构树中源代码的漏洞位置并在所述的移动智能终端显示。本专利技术公开了一种生成移动智能终端源代码的图形化的结构树的装置,包括:源代码抓取单元,用于抓取移动智能终端的源代码;跟踪点查找单元,用于对所述的源代码进行数据结构的转换,找出数据流的入口到出口的跟踪点;处理线程调用单元,用于根据所述的跟踪点调用多个处理线程,生成图形化的结构树;结构树保存单元,用于保存所述的图形化的结构树。在本专利技术所述的生成移动智能终端源代码的图形化的结构树的装置中,所述的、装置位于编译器前端。在本专利技术所述的生成移动智能终端源代码的图形化的结构树的装置中,所述的跟踪点包括分支点、汇聚点。在本专利技术所述的生成移动智能终端源代码的图形化的结构树的装置中,所述的结构树保存单元还具有漏洞位置显示单元,用于抓取所述的图形化的结构树中源代码的漏洞位置并在所述的移动智能终端显示。本专利技术的一种生成移动智能终端源代码的图形化的结构树的方法和装置,具有以下有益效果:本技术方案中,图形化的结构树中包含的信息在满足程序后续静态分析需要的同时,包含的其他信息较少,找出潜在的风险可能性较大,提高了代码的安全性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1a为本专利技术实施例一种生成移动智能终端源代码的图形化的结构树的方法流程示意图;图1b为本专利技术中的源代码中两个汇聚点之间在方法main的控制流图表现为虚分支图;图2为本专利技术实施例一种生成移动智能终端源代码的图形化的结构树的装置功能方框图。具体实施方式通过下面给出的本专利技术的具体实施例可以进一步了解本专利技术,但它们不是对本专利技术的限定。对于本领域的技术人员根据上述
技术实现思路
所作的一些非本质的改进与调整,也视为落在本专利技术的保护范围内。请参阅图1a,本专利技术第一实施例,一种生成移动智能终端源代码的图形化的结构树的方法,包括:S1.抓取移动智能终端的源代码;S2.对所述的源代码进行数据结构的转换,找出数据流的入口到出口的跟踪点;S3.根据所述的跟踪点调用多个处理线程,生成图形化的结构树;S4.保存所述的图形化的结构树。较佳地,步骤S4后还包括步骤S5:抓取图形化的结构树中源代码的漏洞位置并在所述的移动智能终端显示。进一步地,所述的步骤S1至步骤S4均在编译器前端进行,更进一步地,所述的跟踪点包括分支点、汇聚点。分支点是指程序判断语句的判定部分,这些判断语句根据判定结果的不同而执行不同的分支。与判断语句一样,每个分支点有一个“流入”分支和多个“流出”分支;特殊的,当分支点上的判定条件是一个常量时,分支点只有一个“流出”分支。分支点有五种类型,分别对应各种判断语句的判定部分:1)if分支点:对应if语句的if(exp)部分。2)switch分支点:对应switch语句的switch(exp)部分。3)for分支点:对应for语句的for(init;exp;inc)部分。4)while分支点:对应while语句的while(exp)部分。5)do-while分支点:对应do-while语句的while(exp)部分。分支点在图中用菱形表示,并标记判断语句的关键字。汇聚点是指程序中多于一条控制流汇聚到一起的位置。通常,这个位置不对应任何语句或语句片断,而是对应于程序语句的一个抽象结束位置。汇聚点有多个“流入”分支,但只有一个或者没有“流出”的分支。汇聚点可分为以下几种类型:1)判断语句的汇聚点:每个判断语句有一个汇聚点,位于判断语句块的“结束”位置。2)标号语句的汇聚点:每个标号有一个汇聚点,位于标号的“:”之后。3)case和default的汇聚点:位于其“:”之后。4)方法入口点:对应于方法体的开括号“{”。5)方法结束点:对应于方法体的闭括号“}”。6)分支跳转点:对应于跳转语句。分支点和汇聚点合称控制流中的节点,在不严格区分的情况下,统称分支点。程序中任意两个节点之间如果存在一个直接的控制流,即从一个节点执行0条或任意有限条顺序语句可到达另一个节点,其间不再包含任何其它节点,则称这两个节点之间的直接的控制流为一条分支,这两个节点称作是相邻节点。特殊地,相邻节点之间的直接控制流,如果是由执行0条顺序语句而形成,这两个节点之间的分支称作虚分支。源代码中两个汇聚点之间在方法main的控制流中的表现为虚分支,如图1b中所示。一种简便的分支数计算方法是计算程序中每个节点的“流出”分支数之和。下表给出每种语法及其对应的分支点的“流出”分支数的计算方法。请参阅图2、一种生成移动智能终端源代码的图形化的结构树的装置1,包括:源代码抓取单元10,用于抓取移动智能终端的源代码;跟踪点查找单元20,用于对所述的源代码进行数据结构的转换,找出数据流的入口到出口的跟踪点;处理线程调用单元30,用于根据所述的跟踪点调用多个处理线程,生成图形化的结构树;结构树保存单元40,用于保存所述的图形化的结构树。较佳地,结构树保存单元40还具有漏洞位置显示单元50,用于抓取图形化的结构树中源代码的漏洞位置并在所述的移动智能终端显示。进一步地,所述的装置位于编译器前端。进一步地,所述的跟踪点包括分支点、汇聚点。本发本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201310016788.html" title="生成移动智能终端源代码的抽象语法树的方法及装置原文来自X技术">生成移动智能终端源代码的抽象语法树的方法及装置</a>

【技术保护点】
一种生成移动智能终端源代码的抽象语法树的方法,其特征在于,包括:S1.抓取移动智能终端的源代码;S2.对所述的源代码进行数据结构的转换,找出数据流的入口到出口的跟踪点;S3.根据所述的跟踪点调用多个处理线程,生成图形化的结构树;S4.保存所述的结构树。

【技术特征摘要】
1.一种生成移动智能终端源代码的图形化的语法树的方法,其特征在于,所述方法包括如下步骤:S1.抓取移动智能终端的源代码;S2.对所述的源代码进行数据结构的转换,找出数据流的入口到出口的跟踪点;S3.根据所述的跟踪点调用多个处理线程,生成图形化的结构树;S4.保存所述的图形化的结构树;所述的跟踪点包括分支点、汇聚点;分支点和汇聚点合称控制流中的节点;程序中任意两个节点之间如果存在一个直接的控制流,即从一个节点执行任意有限条顺序语句能到达另一个节点,其间不再包含任何其它节点,则称所述两个节点之间的直接的控制流为一条分支,所述两个节点称作是相邻节点;相邻节点之间的直接控制流,如果是由执行0条顺序语句而形成,所述两个节点之间的分支称作虚分支;源代码中两个汇聚点之间在方法main的控制流中的表现为虚分支。2.根据权利要求1所述的生成移动智能终端源代码的图形化的语法树的方法,其特征在于,所述的步骤S1至步骤S4均在编译器前端进行。3.根据权利要求1所述的生成移动智能终端源代码的图形化的语法树的方法,其特征在于,所述步骤S4后还包括步骤S5:抓取所述的图形化的结构树中源代码的漏洞位置并在所述的移动智能终端显示。4.一种生成移动智...

【专利技术属性】
技术研发人员:王甜魏理豪朱奕崔磊邹洪艾解清周开东张超粱哲恒
申请(专利权)人:广东电网公司信息中心
类型:发明
国别省市:广东;44

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

1