代码流程追踪方法和系统与流程

文档序号:30963277发布日期:2022-07-30 15:03阅读:来源:国知局

技术特征:
1.代码流程追踪方法,其特征在于,其包括如下步骤:步骤s1,对程序进行扫描分析,识别程序包含的所有函数代码,并对每组函数代码分配相应的识别标记;从每组函数代码中提取得到相应的源头代码部分和触发代码部分,以此形成每组函数代码自身内部的代码触发关系信息集合;步骤s2,采集程序在测试运行过程中所有函数代码各自的运行状态信息,根据所述运行状态信息,确定程序在运行过程中所有函数代码相互之间的调用逻辑关系信息集合;根据所述识别标记和所述调用逻辑关系信息集合,构建关于所有函数代码的调用关系结构模型;步骤s3,根据所述代码触发关系信息集合,对所述调用关系结构模型内部每组函数代码的触发关系进行扩展,从而得到扩展化的调用关系结构模型;将所述扩展化的调用关系结构模型以可视化追踪流程图的方式进行显示。2.如权利要求1所述的代码流程追踪方法,其特征在于:在所述步骤s1中,对程序进行扫描分析,识别程序包含的所有函数代码,并对每组函数代码分配相应的识别标记;从每组函数代码中提取得到相应的源头代码部分和触发代码部分,以此形成每组函数代码自身内部的代码触发关系信息集合具体包括:步骤s101,利用程序静态分析软件对程序进行逐行代码的扫描分析,识别得到程序包含每一函数代码行;再对两两相邻的函数代码行进行分析,判断相邻的两个函数代码行之间是否具有同一函数关联性;若具有同一函数关联性,则将具有同一函数关联系的所有函数代码行,识别标记为同一组函数代码;步骤s102,对同一组函数代码进行检测,确定同一组函数代码是否存在代码编辑漏洞;若存在代码编辑漏洞,则对同一组函数代码内部的所有代码进行检查修复;步骤s103,从每组函数代码中提取得到运行相应函数的源头代码部分和触发代码部分;构建关于所述源头代码部分和所述触发代码部分的代码匹配组,所述代码匹配组包括所述源头代码部分与所述触发代码部分之间的触发关联信息;再将所有代码匹配组共同组成每组函数代码自身内部的代码触发关系信息集合。3.如权利要求2所述的代码流程追踪方法,其特征在于:在所述步骤s2中,采集程序在测试运行过程中所有函数代码各自的运行状态信息,根据所述运行状态信息,确定程序在运行过程中所有函数代码相互之间的调用逻辑关系信息集合;根据所述识别标记和所述调用逻辑关系信息集合,构建关于所有函数代码的调用关系结构模型具体包括:步骤s201,采集程序在测试运行过程中所有函数代码各自的函数输入信息和函数输出信息,以此作为所述运行状态信息;步骤s202,判断其中一个函数代码的函数输出信息是否属于另一个函数代码的函数输入信息,若属于,则确定上述两个函数代码之间存在调用逻辑关系,从而得到程序在运行过程中所有函数代码相互之间的调用逻辑关系信息集合;步骤s203,根据所述识别标记和所述调用逻辑关系信息集合,构建关于不同组函数代码相互之间的调用关系结构模型。4.如权利要求3所述的代码流程追踪方法,其特征在于:在所述步骤s3中,根据所述代码触发关系信息集合,对所述调用关系结构模型内部每
组函数代码的触发关系进行扩展,从而得到扩展化的调用关系结构模型;将所述扩展化的调用关系结构模型以可视化追踪流程图的方式进行显示具体包括:步骤s301,根据所述代码触发关系信息集合,对所述调用关系结构模型包含的每一组函数代码中源头代码部分和触发代码部分之间的代码触发关系进行扩展标引,从而得到扩展化的调用关系结构模型;步骤s302,将所述扩展化的调用关系模型转换为可视化追踪流程图,并将所述可视化追踪流程图同步上传至运行程度的终端机;步骤s303,当终端机运行程序时,根据终端机运行程序的实际进度,指示所述可视化追踪流程图进行动态化的同步显示。5.代码流程追踪系统,其特征在于,其包括函数代码分析与处理模块、函数代码调用关系确定模块、调用关系结构模型扩展模块和调用关系模型可视化处理模块;其中,所述函数代码分析与处理模块用于对程序进行扫描分析,识别程序包含的所有函数代码,并对每组函数代码分配相应的识别标记;从每组函数代码中提取得到相应的源头代码部分和触发代码部分,以此形成每组函数代码自身内部的代码触发关系信息集合;所述函数代码调用关系确定模块用于采集程序在测试运行过程中所有函数代码各自的运行状态信息,根据所述运行状态信息,确定程序在运行过程中所有函数代码相互之间的调用逻辑关系信息集合;根据所述识别标记和所述调用逻辑关系信息集合,构建关于所有函数代码的调用关系结构模型;所述调用关系结构模型扩展模块用于根据所述代码触发关系信息集合,对所述调用关系结构模型内部每组函数代码的触发关系进行扩展,从而得到扩展化的调用关系结构模型;所述调用关系模型可视化处理模块用于将所述扩展化的调用关系结构模型以可视化追踪流程图的方式进行显示。6.如权利要求5所述的代码流程追踪系统,其特征在于:所述函数代码分析与处理模块用于对程序进行扫描分析,识别程序包含的所有函数代码,并对每组函数代码分配相应的识别标记;从每组函数代码中提取得到相应的源头代码部分和触发代码部分,以此形成每组函数代码自身内部的代码触发关系信息集合具体包括:利用程序静态分析软件对程序进行逐行代码的扫描分析,识别得到程序包含每一函数代码行;再对两两相邻的函数代码行进行分析,判断相邻的两个函数代码行之间是否具有同一函数关联性;若具有同一函数关联性,则将具有同一函数关联系的所有函数代码行,识别标记为同一组函数代码;对同一组函数代码进行检测,确定同一组函数代码是否存在代码编辑漏洞;若存在代码编辑漏洞,则对同一组函数代码内部的所有代码进行检查修复;从每组函数代码中提取得到运行相应函数的源头代码部分和触发代码部分;构建关于所述源头代码部分和所述触发代码部分的代码匹配组,所述代码匹配组包括所述源头代码部分与所述触发代码部分之间的触发关联信息;再将所有代码匹配组共同组成每组函数代码自身内部的代码触发关系信息集合。7.如权利要求6所述的代码流程追踪系统,其特征在于:
所述函数代码调用关系确定模块用于采集程序在测试运行过程中所有函数代码各自的运行状态信息,根据所述运行状态信息,确定程序在运行过程中所有函数代码相互之间的调用逻辑关系信息集合;根据所述识别标记和所述调用逻辑关系信息集合,构建关于所有函数代码的调用关系结构模型具体包括:采集程序在测试运行过程中所有函数代码各自的函数输入信息和函数输出信息,以此作为所述运行状态信息;判断其中一个函数代码的函数输出信息是否属于另一个函数代码的函数输入信息,若属于,则确定上述两个函数代码之间存在调用逻辑关系,从而得到程序在运行过程中所有函数代码相互之间的调用逻辑关系信息集合;根据所述识别标记和所述调用逻辑关系信息集合,构建关于不同组函数代码相互之间的调用关系结构模型。8.如权利要求7所述的代码流程追踪系统,其特征在于:所述调用关系结构模型扩展模块用于根据所述代码触发关系信息集合,对所述调用关系结构模型内部每组函数代码的触发关系进行扩展,从而得到扩展化的调用关系结构模型具体包括:根据所述代码触发关系信息集合,对所述调用关系结构模型包含的每一组函数代码中源头代码部分和触发代码部分之间的代码触发关系进行扩展标引,从而得到扩展化的调用关系结构模型;以及,所述调用关系模型可视化处理模块用于将所述扩展化的调用关系结构模型以可视化追踪流程图的方式进行显示具体包括:将所述扩展化的调用关系模型转换为可视化追踪流程图,并将所述可视化追踪流程图同步上传至运行程度的终端机;当终端机运行程序时,根据终端机运行程序的实际进度,指示所述可视化追踪流程图进行动态化的同步显示。

技术总结
本发明提供了代码流程追踪方法和系统,其对程序进行分析,得到其包含的所有函数代码,并对每组函数代码的源头代码部分和触发代码部分进行识别,得到代码触发关系信息集合;再根据程序在测试运行过程中所有函数代码的运行状态信息,确定不同函数代码之间的调用逻辑关系信息集合,以此构建关于所有函数代码的调用关系结构模型;最后根据代码触发关系信息集合,对调用关系结构模型进行二次扩展,以及对扩展后的调用关系结构模型以可视化追踪流程图的方式进行显示,并且还动态化同步显示相应的可视化追踪流程图,从而对程序运行情况进行实时追踪,提高程序运行的可控性与安全性。提高程序运行的可控性与安全性。提高程序运行的可控性与安全性。


技术研发人员:兰雨晴 唐霆岳 余丹 邢智涣 王丹星 刘一凡
受保护的技术使用者:慧之安信息技术股份有限公司
技术研发日:2022.03.28
技术公布日:2022/7/29
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1