[发明专利]一种基于函数调用关系图的代码同源性分析方法有效
申请号: | 201811212440.8 | 申请日: | 2018-10-18 |
公开(公告)号: | CN109542508B | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 付才;张哲畅;胡启宬;韩兰胜;刘铭;崔永泉;骆婷;汤学明 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F8/74 | 分类号: | G06F8/74 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智;曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 函数 调用 关系 代码 同源性 分析 方法 | ||
本发明公开了一种基于函数调用关系图的代码同源性分析方法,包括以:基于代码的函数调用关系图生成母图;计算函数调用关系图与母图之间的相对编辑距离、函数调用关系图对应矩阵的半方差值、函数调用关系图的度分布有序值;基于相对编辑距离、半方差值、度分布有序值三者的中至少一个,分析代码同源性。相对编辑距离从程序组织的角度进行代码同源性分析,判断程序整体的有序性和无序性;半方差值从代码逻辑的角度进行代码同源性分析,判断程序编写者的深度优先或广度优先编写习惯;度分布有序值从统计学的角度进行代码同源性分析,判断程序的调用次数分布。通过综合三种指标,区分功能函数的设计和调用特征,在代码溯源领域有较优的表现。
技术领域
本发明属代码溯源技术领域,更具体地,涉及一种基于函数调用关系图的代码同源性分析方法。
背景技术
目前针对恶意代码的研究主要分为一维研究和多维研究。一维研究主要包括静态分析与多数动态分析,仅针对恶意代码本身,检测局限性较为明显。多维研究是目前研究的主要趋势,包括执行特征、传播特征和通信特征等。目前有学者将恶意代码研究投入到恶意代码溯源的领域,通过分析恶意代码各类行为社会特征,判定恶意代码同源性,从而区分编写者,为犯罪调查提供证据或对实时恶意代码持续跟踪。
专利CN104933365A公开了一种基于调用习惯的恶意代码自动化同源判定方法及系统,该方法依据定义的7类WinAPI调用特征项,基于某作者的恶意代码样本集,构建该作者调用习惯模型并选择判定阈值,进而判定待测样本是否同源。具体包括两个阶段:学习阶段与判定阶段。其中学习阶段基于特定作者的样本集构建该作者的编程习惯模型与选择同源判定阈值,主要步骤包括:特征提取、习惯模型构建、同源度计算、阈值选择;判定阶段依据学习阶段构建的编程习惯模型与选择的阈值,判定待测样本是否与训练样本集同源。
然而,现有的代码同源性分析方法均未考虑将代码特征与代码编写行为联系起来。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种基于函数调用关系图的代码同源性分析方法,其将代码特征与代码编写行为联系起来,旨在为代码挖掘取证、同源性分析提供新思路,也同时对代码特征提炼研究提供理论支持。
为实现上述目的,本发明实施例提供了一种基于函数调用关系图的代码同源性分析方法,该方法包括以下步骤:
S1.基于代码的函数调用关系图,生成函数调用关系图的母图;
S2.计算函数调用关系图与母图之间的相对编辑距离、函数调用关系图对应矩阵的半方差值、函数调用关系图的度分布有序值;
S3.基于相对编辑距离、半方差值、度分布有序值三者的中至少一个,分析代码同源性。
具体地,所述基于代码的函数调用关系图,生成函数调用关系图的母图为:
按广度优先遍历函数调用关系图,在遍历过程中对图进行操作,即第一次寻到某函数时标记该函数所在层数,即可得到母图。
具体地,计算函数调用关系图与母图之间的相对编辑距离,包括以下步骤:
(1)编辑距离DE初始为0;
(2)从函数调用关系图的顶层开始,依次检查每个层次所有节点的子节点,当前检查层次记为1,每检查到函数调用关系图中的一个1层节点的子节点对应到母图中的层数不是1+1层,则编辑距离DE增加1;
(3)按照层次遍历所有节点,得到编辑距离DE;
(4)基于编辑距离DE,按照下列公式计算相对编辑距离DRE;
式中,n为函数的总个数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811212440.8/2.html,转载请声明来源钻瓜专利网。