一种API日志的循环逻辑的识别方法及装置制造方法及图纸

技术编号:9312342 阅读:196 留言:0更新日期:2013-11-06 18:45
本发明专利技术提供一种API日志的循环逻辑的识别方法及装置,其中方法包括:对API日志进行解析,获得多个节点组成的节点序列;其中每一个所述节点包括:对可移植的执行体PE文件执行过程中调用到的系统接口函数的内存地址REIP以及该系统接口函数API的名称的组合;获得所述REIP和所述API的名称的组合的校验值,并将所述校验值作为所述节点的键值;根据节点的键值,在所述节点序列中,识别出一个节点子序列,并将所述节点子序列作为一个内层循环体;根据识别出的所述内层循环体,在所述节点序列中,识别出所有循环体;根据识别出的所有循环体对病毒行为进行动态分析。本发明专利技术的方案能够解决API日志信息冗余和可读性差的问题。

【技术实现步骤摘要】

本专利技术涉及计算机安全
,特别是指一种API日志的循环逻辑的识别方法及装置。
技术介绍
在反病毒领域,随着病毒技术和反病毒技术的日积月累,加密、对抗技术日新月异,单纯以静态特征来识别未知病毒变得越来越困难。因此,动态自动分析技术成为近年来热门技术。由于目前Windows系统几乎垄断个人电脑市场,针对Windows的恶意软件,如盗号木马等,在病毒领域占据绝大多数。随着云安全技术的不断进步,安全厂商可以借助强大的云端后台系统来对样本进行动态分析,而动态自动分析技术目前仍然处于发展阶段,对于安全厂商而言,目前通常采用模拟病毒执行环境,对Windows API(Windows系统接口函数)进行挂钩子(HOOK),记录病毒执行期间的API日志,包括执行期间的内存地址、返回地址、REIP(Windows PE文件在执行的过程中,调用到Windows系统接口函数的内存地址)、API以及参数信息,然后针对该API日志进行病毒行为的动态分析。但API日志的循环逻辑的存在,让日志变得异常冗余且可读性极差,不利用对病毒行为的动态分析。
技术实现思路
本专利技术要解决的技术问题是提供一种对API日志的循环逻辑的识别方法及装置,能够解决API日志信息冗余和可读性差的问题。为解决上述技术问题,本专利技术的实施例提供一种API日志的循环逻辑的识别方法,包括:对API日志进行解析,获得多个节点组成的节点序列;其中每一个所述节点包括:对可移植的执行体PE文件执行过程中调用到的系统接口函数的内存地址REIP以及该系统接口函数API名称的组合;获得所述REIP和所述API名称的组合的校验值,并将所述校验值作为所述节点的键值;根据节点的键值,在所述节点序列中,识别出一个节点子序列,并将所述节点子序列作为一个内层循环体;根据识别出的所述内层循环体,在所述节点序列中,识别出所有循环体;根据识别出的所有循环体对病毒行为进行动态分析。其中,所述根据节点的键值,在所述节点序列中,识别出一个节点子序列,并将所述节点子序列作为一个内层循环体的步骤包括:在所述节点序列中,从第N+1个节点开始,在所述第N+1个节点之前的N个节点中,如果查找到与所述第N+1个节点的键值相同的第P个节点,获得所述第P个节点到所述第N+1个节点组成的第一节点子序列;其中,N为正整数,P大于等于1且小于N+1;将所述第一节点子序列与从第N+1节点到所述第P个节点组成的第二节点子序列进行相应位置的节点匹配,若完全匹配,则将所述第二节点子序列作为一个内层循环体。其中,所述根据识别出的所述内层循环体,在所述节点序列中,识别出所有循环体的步骤包括:根据识别出的所述内层循环体,在所述节点序列中,识别出与所述内层循环体相匹配的其它内层循环体;对识别出的每一个内层循环体,进行内层循环体内的各节点的REIP和API名称的合并;获得合并后的REIP和API名称的组合的校验值,作为所述内层循环体的键值;根据内层循环体的键值,在多个内层循环体的键值形成的循环体节点序列中,识别出外层循环体,从而得到包括内层循环体和外层循环体的所有循环体。其中,所述根据识别出的所述内层循环体,在所述节点序列中,识别出与所述内层循环体相匹配的其它内层循环体的步骤包括:在所述节点序列中,从识别出的第一个内层循环体的结束位置的下一个节点开始向后匹配,查找到与所述第一个内层循环体内的各节点的键值完全相同的其它节点子序列,将所述其它节点子序列作为其它内层循环体。其中,所述根据内层循环体的键值,在多个内层循环体的键值形成的循环体节点序列中,识别出外层循环体,从而得到包括内层循环体和外层循环体的所有循环体的步骤包括:在多个内层循环体的键值形成的循环体节点序列中,从第M+1个循环体节点开始,在所述第M+1个节点之前的M个循环体节点中,如果查找到与所述第M+1个节点的键值相同的第T个循环体节点,获得所述第T个循环体节点到所述第M+1个循环体节点组成的第一循环体节点子序列;其中,M为正整数,T大于等于1且小于M+1;将所述第一循环体节点子序列与从第M+1节点到所述第T个节点组成的第二循环体节点子序列进行相应位置的节点匹配,若完全匹配,则将所述第二循环体节点子序列作为一个外层循环体;在所述循环体节点序列中,查找到与识别出的所述一个外层循环体匹配的其它外层循环体,从而得到包括所有内层循环体以及外层循环体的所有循环体。其中,所述节点还包括:API的返回值及参数信息。其中,所述校验值是所述REIP和所述API名称的组合采用CRC32校验算法得到的校验值。其中,识别出所有循环体后还包括:用可扩展标记语言XML文件保存所述所有循环体。本专利技术的实施例还提供一种API日志的循环逻辑的识别装置,包括:解析模块,用于对API日志进行解析,获得多个节点组成的节点序列;其中每一个所述节点包括:对可移植的执行体PE文件执行过程中调用到的系统接口函数的内存地址REIP以及该系统接口函数API名称的组合;获得模块,用于获得所述REIP和所述API名称的组合的校验值,并将所述校验值作为所述节点的键值;第一识别模块,用于根据节点的键值,在所述节点序列中,识别出一个节点子序列,并将所述节点子序列作为一个内层循环体;第二识别模块,用于根据识别出的所述内层循环体,在所述节点序列中,识别出所有循环体;分析模块,用于根据识别出的所有循环体对病毒行为进行动态分析。其中,所述第一识别模块包括:第一识别子模块,用于在所述节点序列中,从第N+1个节点开始,在所述第N+1个节点之前的N个节点中,如果查找到与所述第N+1个节点的键值相同的第P个节点,获得所述第P个节点到所述第N+1个节点组成的第一节点子序列;其中,N为正整数,P大于等于1且小于N+1;第二识别子模块,用于将所述第一节点子序列与从第N+1节点到所述第P个节点组成的第二节点子序列进行相应位置的节点匹配,若完全匹配,则将所述第二节点子序列作为一个内层循环体。其中,所述第二识别模块包括:第三识别子模块,用于根据识别出的所述内层循环体,在所述节点序列中,识别出与所述内层循环体相匹配的其它内层循环体;第四识别子模块,用于对识别出的每一个内层循环体,进行内层循环体内的各节点的REIP和API名称的合并;第五识别子模块,用于获得合并后的REIP和API名本文档来自技高网...

【技术保护点】
一种API日志的循环逻辑的识别方法,其特征在于,包括:对API日志进行解析,获得多个节点组成的节点序列;其中每一个所述节点包括:对可移植的执行体PE文件执行过程中调用到的系统接口函数的内存地址REIP以及该系统接口函数API名称的组合;获得所述REIP和所述API名称的组合的校验值,并将所述校验值作为所述节点的键值;根据节点的键值,在所述节点序列中,识别出一个节点子序列,并将所述节点子序列作为一个内层循环体;根据识别出的所述内层循环体,在所述节点序列中,识别出所有循环体;根据识别出的所有循环体对病毒行为进行动态分析。

【技术特征摘要】
1.一种API日志的循环逻辑的识别方法,其特征在于,包括:
对API日志进行解析,获得多个节点组成的节点序列;其中每一个所述
节点包括:对可移植的执行体PE文件执行过程中调用到的系统接口函数的内
存地址REIP以及该系统接口函数API名称的组合;
获得所述REIP和所述API名称的组合的校验值,并将所述校验值作为所
述节点的键值;
根据节点的键值,在所述节点序列中,识别出一个节点子序列,并将所述
节点子序列作为一个内层循环体;
根据识别出的所述内层循环体,在所述节点序列中,识别出所有循环体;
根据识别出的所有循环体对病毒行为进行动态分析。
2.根据权利要求1所述的API日志的循环逻辑的识别方法,其特征在于,
所述根据节点的键值,在所述节点序列中,识别出一个节点子序列,并将所述
节点子序列作为一个内层循环体的步骤包括:
在所述节点序列中,从第N+1个节点开始,在所述第N+1个节点之前的
N个节点中,如果查找到与所述第N+1个节点的键值相同的第P个节点,获
得所述第P个节点到所述第N+1个节点组成的第一节点子序列;其中,N为
正整数,P大于等于1且小于N+1;
将所述第一节点子序列与从第N+1节点到所述第P个节点组成的第二节
点子序列进行相应位置的节点匹配,若完全匹配,则将所述第二节点子序列作
为一个内层循环体。
3.根据权利要求2所述的API日志的循环逻辑的识别方法,其特征在于,
所述根据识别出的所述内层循环体,在所述节点序列中,识别出所有循环体的
步骤包括:
根据识别出的所述内层循环体,在所述节点序列中,识别出与所述内层循
环体相匹配的其它内层循环体;
对识别出的每一个内层循环体,进行内层循环体内的各节点的REIP和
API名称的合并;
获得合并后的REIP和API名称的组合的校验值,作为所述内层循环体的
键值;
根据内层循环体的键值,在多个内层循环体的键值形成的循环体节点序列
中,识别出外层循环体,从而得到包括内层循环体和外层循环体的所有循环体。
4.根据权利要求3所述的API日志的循环逻辑的识别方法,其特征在于,
所述根据识别出的所述内层循环体,在所述节点序列中,识别出与所述内层循
环体相匹配的其它内层循环体的步骤包括:
在所述节点序列中,从识别出的第一个内层循环体的结束位置的下一个节
点开始向后匹配,查找到与所述第一个内层循环体内的各节点的键值完全相同
的其它节点子序列,将所述其它节点子序列作为其它内层循环体。
5.根据权利要求4所述的API日志的循环逻辑的识别方法,其特征在于,
所述根据内层循环体的键值,在多个内层循环体的键值形成的循环体节点序列
中,识别出外层循环体,从而得到包括内层循环体和外层循环体的所有循环体
的步骤包括:
在多个内层循环体的键值形成的循环体节点序列中,从第M+1个循环体
节点开始,在所述第M+1个节点之前的M个循环体节点中,如果查找到与所
述第M+1个节点的键值相同的第T个循环体节点,获得所述第T个循环体节
点到所述第M+1个循环体节点组成的第一循环体节点子序列;其中,M为正
...

【专利技术属性】
技术研发人员:邹义鹏刘欢白彦庚张楠陈勇
申请(专利权)人:北京金山安全软件有限公司可牛网络技术北京有限公司贝壳网际北京安全技术有限公司
类型:发明
国别省市:

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

1