[发明专利]一种源代码特征提取方法及装置有效

专利信息
申请号: 202011031611.4 申请日: 2020-09-27
公开(公告)号: CN112162777B 公开(公告)日: 2022-11-18
发明(设计)人: 笋大伟;华嘉仪 申请(专利权)人: 北京智联安行科技有限公司
主分类号: G06F8/75 分类号: G06F8/75;G06F11/36
代理公司: 北京德琦知识产权代理有限公司 11018 代理人: 梁少微;王丽琴
地址: 100088 北京市海*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 源代码 特征 提取 方法 装置
【权利要求书】:

1.一种源代码特征提取方法,该方法包括:

确定源代码文件中的每一个敏感点;

对于每一敏感点,根据每个敏感点的初始敏感变量,追踪所述初始敏感变量的数据流,获取其他敏感变量,得到与每一敏感变量语义相关的代码行集合;

将获取到的各个代码行集合按源代码文件中的顺序排列,得到包含源代码敏感点特征信息的特征代码片段。

2.如权利要求1所述的方法,其特征在于,所述敏感点包括敏感函数调用、数组敏感操作或指针敏感操作;其中,敏感函数包括库函数或者API函数;数组敏感操作包括对数组元素的访问或赋值;指针敏感操作包括对指针的访问或赋值;

当敏感点是敏感函数调用时,初始敏感变量为敏感函数调用的参数;

当敏感点是数组敏感操作时,初始敏感变量为该数组;

当敏感点是指针敏感操作时,初始敏感变量为该指针。

3.如权利要求1所述的方法,其特征在于,在确定源代码文件中的每一个敏感点之前,该方法还包括对源代码文件进行预处理,包括对源代码文件进行规范化和宏定义展开。

4.如权利要求1所述的方法,其特征在于,在将获取到的各个代码行集合按源代码文件中的顺序排列之后,该方法还包括对所述源代码文件进行后处理,获取特征代码片段编号、源代码文件路径、敏感点所在行号。

5.如权利要求1所述的方法,其特征在于,所述确定源代码文件中的每一个敏感点,包括:

将源代码文件生成抽象语法树;

对所述抽象语法树进行解析,记录源代码文件中的每一个敏感点位置,形成敏感点列表;存储用户自定义函数调用的函数名及参数,用户自定义函数的函数名及参数,以及函数间的调用关系。

6.如权利要求1所述的方法,其特征在于,所述对于每一敏感点,根据每个敏感点的初始敏感变量,追踪所述初始敏感变量的数据流,获取其他敏感变量,得到与每一敏感变量语义相关的代码行集合,具体包括:

循环遍历敏感点列表,对于每一个敏感点,获取其初始敏感变量加入到敏感变量列表中,通过解析所述抽象语法树,追踪所述初始敏感变量的数据流,记录与初始敏感变量语义相关的代码行集合;

以所述初始敏感变量为起点迭代追踪其他敏感变量,在追踪所述初始敏感变量的数据流的过程中,

当所述代码行集合中的一代码行中存在第一变量传递到敏感变量时,将所述第一变量作为第一敏感变量加入到敏感变量列表,通过解析所述抽象语法树,追踪所述第一敏感变量的数据流,记录与第一敏感变量语义相关的代码行集合;

或者,根据函数间的调用关系,用户自定义函数调用的函数名及参数,用户自定义函数的函数名及参数,确定第二敏感变量并加入到敏感变量列表,通过解析所述抽象语法树,追踪所述第二敏感变量的数据流,记录与第二敏感变量语义相关的代码行集合。

7.如权利要求6所述的方法,其特征在于,根据函数间的调用关系,用户自定义函数调用的函数名及参数,用户自定义函数的函数名及参数,确定第二敏感变量,具体包括:

根据函数间的调用关系,获取用户自定义函数调用的函数与用户自定义函数相同;

根据相同的用户自定义函数调用的函数的参数为实际参数,且为敏感变量,以及根据相同的用户自定义函数的参数为形式参数,确定所述形式参数与实际参数相对应,为第二敏感变量。

8.如权利要求1所述的方法,其特征在于,当存在函数间的调用关系时,将获取到的各个代码行集合按源代码文件中的顺序排列之后,该方法进一步包括:将代码行按照函数执行顺序进行拼接。

9.一种源代码特征提取装置,该装置包括:

确定模块,确定源代码文件中的每一个敏感点;

解析模块,对于每一敏感点,根据每个敏感点的初始敏感变量,追踪所述初始敏感变量的数据流,获取其他敏感变量,得到与每一敏感变量语义相关的代码行集合;

处理模块,将获取到的各个代码行集合按源代码文件中的顺序排列,得到包含源代码敏感点特征信息的特征代码片段。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智联安行科技有限公司,未经北京智联安行科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202011031611.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top