[发明专利]一种API日志的循环逻辑的识别方法及装置有效
申请号: | 201210135701.7 | 申请日: | 2012-05-03 |
公开(公告)号: | CN103383720A | 公开(公告)日: | 2013-11-06 |
发明(设计)人: | 邹义鹏;刘欢;白彦庚;张楠;陈勇 | 申请(专利权)人: | 北京金山安全软件有限公司;可牛网络技术(北京)有限公司;贝壳网际(北京)安全技术有限公司 |
主分类号: | G06F21/00 | 分类号: | G06F21/00;G06F11/14 |
代理公司: | 北京银龙知识产权代理有限公司 11243 | 代理人: | 黄灿;安利霞 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 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个节点组成的第二循环体节点子序列进行相应位置的节点匹配,若完全匹配,则将所述第二循环体节点子序列作为一个外层循环体;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山安全软件有限公司;可牛网络技术(北京)有限公司;贝壳网际(北京)安全技术有限公司,未经北京金山安全软件有限公司;可牛网络技术(北京)有限公司;贝壳网际(北京)安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210135701.7/2.html,转载请声明来源钻瓜专利网。