一种恶意代码检测方法及装置的制造方法

文档序号:9787709阅读:244来源:国知局
一种恶意代码检测方法及装置的制造方法
【技术领域】
[0001 ]本发明涉及计算机技术领域,尤其涉及一种恶意代码检测方法及装置。
【背景技术】
[0002] 随着计算机应用的日益普及,包括病毒、木马在内的恶意程序的数量也迅速增长, 其中的木马程序是一类可以通过在用户的计算机上运行,进而窃取用户文件、隐私、账户等 信息,有的甚至还可以让黑客远程控制用户电脑的恶意程序。相比较传统的单纯以破坏计 算机设备为目的的病毒,木马对计算机用户的侵害行为更具有获取利益的目的性,其窃取 信息的行为常常会给用户造成巨大的损失,因此木马程序的危害也更大。恶意程序可以通 过很多传播途径来侵害用户的电脑,例如便携的移动介质,如闪存盘,光盘等,而随着计算 机网络技术的广泛应用,互联网逐渐成为恶意程序传播的主要途径之一,黑客或恶意程序 传播者将木马等恶意程序文件伪装成其他类型文件,并引诱用户点击和下载,而恶意程序 一旦被下载到用户计算机并成功运行,黑客或恶意程序传播者就可以利用这些恶意程序, 进行破坏用户计算机,窃取用户个人信息等不法行为。
[0003] 利用操作系统以及应用软件的漏洞实施攻击,是使恶意程序在用户计算机上成功 植入和运行的最主要手段之一。漏洞是指操作系统软件或应用软件在逻辑设计上的缺陷或 在编写时产生的错误。这些缺陷或错误往往可以被黑客利用来植入木马等恶意程序,侵害 或控制甚至破坏用户计算机软硬件系统,或者窃取用户的重要资料和信息。
[0004] 目前,主要是通过人工方式对可疑代码中每条指令逐条进行特征分析,来检测可 疑代码是否为恶意代码,存在速度慢、效率低的技术问题。

【发明内容】

[0005] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的恶意代码检测方法及装置。
[0006] 本发明的一个方面,提供了一种恶意代码检测方法,包括:
[0007] 通过应用程序编程接口执行记录工具PIN,获取执行可疑代码时所述可疑代码调 用的应用程序编程接口 API函数序列的相关信息;
[0008] 基于所述API函数序列的相关信息,判断所述API函数序列是否合法;
[0009] 若所述API函数序列不合法,则将所述可疑代码确定为恶意代码。
[0010] 优选地,所述通过应用程序编程接口执行记录工具PIN,获取执行可疑代码时所述 可疑代码调用的应用程序编程接口 API函数序列的相关信息,包括:
[0011] 在执行所述可疑代码过程中,在所述可疑代码中的每个API函数的头和尾插入所 述PIN的监控代码;
[0012] 通过所述监控代码监控所述可疑代码调用的每个API函数,并将所述可疑代码调 用的每个API函数的相关信息存储到日志文件中;
[0013] 从所述日志文件中提取所述可疑代码调用的每个API函数的相关信息,从而获取 到所述可疑代码调用的API函数序列的相关信息。
[0014] 优选地,所述可疑代码调用的应用程序编程接口 API函数序列的相关信息,包括:
[0015] 所述可疑代码调用的每个API函数的名称,以及所述每个API函数被调用的先后顺 序。
[0016] 优选地,所述基于所述API函数序列的相关信息,判断所述API函数序列是否合法, 包括:
[0017] 基于所述API函数序列的相关信息,判断所述API函数序列是否被记录在一恶意 API函数序列库中,其中,所述恶意API函数序列库中记录有全部恶意代码在被执行时可能 调用的API函数序列;
[0018] 若所述API函数序列被记录在所述恶意API函数序列库中,则确定所述API函数序 列不合法;
[0019] 若所述API函数序列未被记录在所述恶意API函数序列库中,则确定所述API函数 序列合法。
[0020] 优选地,所述将所述可疑代码确定为恶意代码之后,还包括:
[0021 ]通过所述PIN,将所述恶意代码的内存地址存储到日志文件中;
[0022] 打开所述日志文,并基于所述恶意代码的内存地址,从内存中提取所述恶意代码。
[0023] 优选地,所述将所述可疑代码确定为恶意代码之后,还包括:
[0024]通过所述,将PIN所述恶意代码中用于调用每个API函数的指令的内存地址存储到 日志文件中;
[0025]打开所述日志文,并基于所述恶意代码中用于调用每个API函数的指令的内存地 址,在内存中提取所述恶意代码中任一用于调用API函数的指令。
[0026] 优选地,所述将所述可疑代码确定为恶意代码之后,还包括:
[0027]对所述恶意代码进行删除;或 [0028]对所述恶意代码造成的破坏进行修复;或 [0029]对所述恶意代码进行隔离;或 [0030]对所述恶意代码进行样本归类。
[0031] 本发明的另一个方面,提供一种恶意代码检测装置,包括:
[0032] 获取模块,用于通过应用程序编程接口执行记录工具PIN,获取执行可疑代码时所 述可疑代码调用的应用程序编程接口 API函数序列的相关信息;
[0033]判断模块,用于基于所述API函数序列的相关信息,判断所述API函数序列是否合 法;
[0034]确定模块,用于若所述API函数序列不合法,则将所述可疑代码确定为恶意代码。 [0035]优选地,所述获取模块,包括:
[0036] 插入子模块,用于在执行所述可疑代码过程中,在所述可疑代码中的每个API函数 的头和尾插入所述PIN的监控代码;
[0037] 监控子模块,用于通过所述监控代码监控所述可疑代码调用的每个API函数,并将 所述可疑代码调用的每个API函数的相关信息存储到日志文件中;
[0038] 获取子模块,用于从所述日志文件中提取所述可疑代码调用的每个API函数的相 关信息,从而获取到所述可疑代码调用的API函数序列的相关信息。
[0039]优选地,所述可疑代码调用的应用程序编程接口 API函数序列的相关信息,包括: [0040]所述可疑代码调用的每个API函数的名称,以及所述每个API函数被调用的先后顺 序。
[0041]优选地,所述判断模块,包括:
[0042]判断子模块,用于基于所述API函数序列的相关信息,判断所述API函数序列是否 被记录在一恶意API函数序列库中,其中,所述恶意API函数序列库中记录有全部恶意代码 在被执行时可能调用的API函数序列;
[0043]第一确定子模块,用于若所述API函数序列被记录在所述恶意API函数序列库中, 则确定所述API函数序列不合法;
[0044]第二确定子模块,用于若所述API函数序列未被记录在所述恶意API函数序列库 中,则确定所述API函数序列合法。
[0045] 优选地,所述恶意代码检测装置,还包括:
[0046] 第一存储模块,用于所述将所述可疑代码确定为恶意代码之后,通过所述PIN,将 所述恶意代码的内存地址存储到日志文件中;
[0047] 第一提取模块,用于打开所述日志文,并基于所述恶意代码的内存地址,从内存中 提取所述恶意代码。
[0048] 优选地,所述恶意代码检测装置,还包括:
[0049] 第二存储模块,用于所述将所述可疑代码确定为恶意代码之后,通过所述PIN,将 所述恶意代码中用于调用每个API函数的指令的内存地址存储到日志文件中;
[0050] 第二提取模块,用于打开所述日志文,并基于所述恶意代码中用于调用每个API函 数的指令的内存地址,在内存中提取所述恶意代码中任一用于调用API函数的指令。
[0051 ]优选地,所述恶意代码检测装置,还包括:
[0052] 删除模块,用于所述将所述可疑代码确定为恶意代码之后,对所述恶意代码进行 删除;或
[0053] 修复模块,用于所述将所述可疑代码确定为恶意代码之后,对所述恶意代码造成 的破坏进行修复;或
[0054] 隔离模块,用于所述将所述可疑代码确定为恶意代码之后,对所述恶意代码进行 隔离;或
[0055] 归类模块,用于所述将所述可疑代码确定为恶意代码之后,对所述恶意代码进行 样本归类。
[0056] 本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
[0057] 根据本发明的一种恶意代码检测方法及装置,通过PIN获取执行可疑代码时可疑 代码调用的应用程序编程接口 API函数序列的相关信息,基于API函数序列的相关信息,判 断API函数序列是否合法,若API函数序列不合法,则将可疑代码确定为恶意代码。相比于现 有技术中通过人工方式逐条指令进行特征分析的方法,本申请中技术方案能够有效地提高 恶意代码的检测效率。
[0058]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0059] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明 的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0060] 图1示出了根据本发明一个实施例的一种恶意代码检测方法的流程图;
[0061] 图2示出了根据本发明一个实施例的一种恶意代码检测装置的结构图。<
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1