[发明专利]一种基于C/C++代码库的API调用模式挖掘方法有效

专利信息
申请号: 201610412437.5 申请日: 2016-06-14
公开(公告)号: CN106095443B 公开(公告)日: 2019-04-05
发明(设计)人: 屈鸿;王晓斌;王留帅;冯鲁桥;符明晟;张翮;涂强 申请(专利权)人: 电子科技大学
主分类号: G06F8/30 分类号: G06F8/30
代理公司: 成都弘毅天承知识产权代理有限公司 51230 代理人: 徐金琼
地址: 611731 四川省成*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要: 没本发明公开了一种基于C/C++代码库的API调用模式挖掘方法。本方法的输入是C/C++代码库,首先通过开源的基于LLVM的clang编译器对输入代码库进行编译,利用clang提供的相关扩展接口完成API序列信息的提取;然后对API序列进行预处理,将相同的API序列合并成一条序列及将嵌套使用的序列进行关联处理;然后将预处理好的API序列存储到数据库中;然后计算数据库中API序列间的距离,得到距离矩阵;然后根据API序列间的距离矩阵,使用DBScan聚类算法对API序列进行聚类处理,将聚类结果存储到数据库中;最后用户输入函数片段信息,利用数据库查询技术将符合要求的API序列及对应的使用代码片段返回给用户。
搜索关键词: 一种 基于 c++ 代码 api 调用 模式 挖掘 方法
【主权项】:
1.一种基于C/C++代码库的API调用模式挖掘方法,其特征在于,如下步骤:步骤(1)、clang编译C/C++代码库,提取代码API序列信息;步骤(2)、对API序列信息预处理,将相同的API序列合并成一条序列,将嵌套使用的多条API序列关联成一条序列;步骤(3)、API序列数据库存储,将预处理后的API序列中的函数统一编号后,对函数及其参数类型信息进行存储,后将API序列函数名转化为编号后存储;步骤(4)、计算API序列距离矩阵;步骤(5)、利用距离矩阵,使用DBScan算法,将API序列进行聚类处理;步骤(6)、用户查询数据库,将匹配的API序列及对应代码片段返回给用户;所述步骤(4)中,计算API序列距离矩阵,m行n列值表示第m条序列与第n条序列之间的距离,该矩阵为对称矩阵,只需计算上三角矩阵值即可,步骤如下:(41)对于N条API序列,初始化N×N矩阵,对角线位置值设置为零,其它位置设置成数1;(42)对于m行n列值,取出第m条序列及第n条序列,这两条序列是由函数编号组成的集合;(43)两条序列是集合,将两条集合取并操作形成新集合S;(44)统计出两条序列不同元素的个数为d;(45)计算其中|S|为新集合S中元素个数,该值即为m行n列值;(46)重复步骤(42)‑(45),直至该矩阵上三角值全部更新;所述步骤(5)中,利用距离矩阵,为N条序列设置N维标记数组A,标记数组记录每一条序列所属簇,第m条序列簇号为Am值,使用DBScan算法,将API序列进行聚类处理,将标记数组更新,后将聚类结果存储到数据库中,步骤如下:(51)为N条序列设置一个N维标记数组,标记数组记录每一条序列所属簇,初始化标记数组为0;(52)设置聚类参数,扫描半径eps在0.45‑0.55之间,最小包含点数MinPts在3‑5之间;(53)查询距离矩阵,利用DBScan算法对N条序列聚类,聚类过程中将标记数组值更新;(54)API序列存储到数据库中,属于同一簇的API序列记录其簇号,同时记录聚类数据库中序列与未聚类数据库序列间的映射关系。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

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

本文链接:http://www.vipzhuanli.com/patent/201610412437.5/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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