一种注入代码提取方法及装置的制造方法

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

【发明内容】

[0005] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的注入代码提取方法及装置。
[0006] 本发明的一个方面,提供了一种注入代码提取方法,包括:
[0007] 运行一可疑程序;
[0008] 在运行所述可疑程序过程中,通过应用程序编程接口执行记录工具PIN,检测所述 可疑程序的进程是否向其它进程注入了代码;
[0009] 若检测到所述可疑程序的进程向所述其它进程注入了代码,则通过所述PIN,提取 所述可疑程序的进程向所述其它进程注入的代码。
[0010] 优选地,所述在运行所述可疑程序过程中,检测所述可疑程序的进程是否向其它 进程注入了代码,包括:
[0011] 在运行所述可疑程序过程中,在所述可疑程序调用的每个应用程序编程接口API 函数的头和尾插入所述PIN的监控代码,其中,在执行所述监控代码时,所述监控代码能够 监控所述可疑程序调用的每个API函数,并将所述可疑程序调用的每个API函数的相关信息 存储到所述PIN的日志文件中;
[0012] 从所述PIN的日志文件中提取所述可疑程序调用的每个API函数的相关信息;
[0013] 基于所述可疑程序调用的每个API函数的相关信息,判断所述可疑程序调用的API 函数中是否有预设API函数,其中,所述预设API函数用于向所述其它进程注入代码和/或数 据;
[0014] 若所述可疑程序调用的API函数中有所述预设API函数,则确定所述可疑程序的进 程向所述其它进程注入了代码。
[0015] 优选地,所述通过所述PIN,提取所述可疑程序的进程向所述其它进程注入的代 码,包括:
[0016] 从所述PIN的日志文件中提取所述预设API函数的相关信息;
[0017] 从所述预设API函数的相关信息中,提取所述可疑程序的进程向所述其它进程注 入的代码。
[0018] 优选地,所述通过所述PIN,提取所述可疑程序的进程向所述其它进程注入的代码 之后,还包括:
[0019] 输出所述可疑程序的进程向所述其它进程注入的代码。
[0020] 优选地,所述通过所述PIN,提取所述可疑程序的进程向所述其它进程注入的代码 之后,还包括:
[0021] 通过所述PIN,判断所述可疑程序的进程向所述其它进程注入的代码是否为恶意 代码;
[0022] 若所述可疑程序的进程向所述其它进程注入的代码为所述恶意代码,则将所述可 疑程序确定为恶意程序。
[0023] 优选地,所述通过所述PIN,判断所述可疑程序的进程向所述其它进程注入的代码 是否为恶意代码,包括:
[0024] 运行所述可疑程序的进程向所述其它进程注入的代码;
[0025] 通过所述PIN,获取运行所述注入的代码时所述注入的代码调用的API函数序列的 相关信息;
[0026] 基于所述API函数序列的相关信息,判断所述API函数序列是否合法;
[0027] 若所述API函数序列不合法,则将所述注入的代码确定为恶意代码。
[0028] 优选地,所述通过所述PIN,获取运行所述注入的代码时所述注入的代码调用的 API函数序列的相关信息,包括:
[0029] 在运行所述可疑程序的进程向所述其它进程注入的代码过程中,在所述注入的代 码中的每个API函数的头和尾插入所述PIN的监控代码,其中,在执行所述监控代码时,所述 监控代码能够监控所述注入的代码调用的每个API函数,并将所述注入的代码调用的每个 API函数的相关信息存储到所述PIN的日志文件中;
[0030] 从所述PIN的日志文件中提取所述注入的代码调用的每个API函数的相关信息;
[0031] 基于所述注入的代码调用的每个API函数的相关信息,确定所述注入的代码调用 的API函数序列的相关信息。
[0032]优选地,所述注入的代码调用的API函数序列的相关信息,包括:
[0033] 运行所述注入的代码时所述注入的代码调用的每个API函数的名称,以及
[0034] 运行所述注入的代码时所述注入的代码调用每个API函数的先后顺序。
[0035]优选地,所述基于所述API函数序列的相关信息,判断所述API函数序列是否合法, 包括:
[0036]基于所述API函数序列的相关信息,判断所述API函数序列是否被记录在一恶意 API函数序列库中,其中,所述恶意API函数序列库中记录有全部恶意代码在被执行时可能 调用的API函数序列;
[0037]若所述API函数序列被记录在所述恶意API函数序列库中,则确定所述API函数序 列不合法;
[0038]若所述API函数序列未被记录在所述恶意API函数序列库中,则确定所述API函数 序列合法。
[0039] 优选地,所述将所述可疑程序确定为恶意程序之后,还包括:
[0040] 通过所述PIN,获取所述可疑程序中的用于调用所述可疑程序中每个API函数的指 令代码;
[0041] 输出所述可疑程序中的用于调用所述可疑程序中每个API函数的指令代码。
[0042]优选地,所述获取所述可疑程序中的用于调用所述可疑程序中每个API函数的指 令代码,包括:
[0043] 在所述PIN的日志文件中,提取所述可疑程序中的用于调用所述可疑程序中每个 API函数的指令代码的内存地址;
[0044] 基于所述内存地址,从内存中提取所述可疑程序中的用于调用所述可疑程序中每 个API函数的指令代码。
[0045] 优选地,所述将所述可疑程序确定为恶意程序之后,还包括:
[0046] 对所述可疑程序进行删除;或
[0047] 对所述可疑程序造成的破坏进行修复;或 [0048]对所述可疑程序进行隔离;或
[0049] 对所述可疑程序进行样本归类。
[0050] 本发明的另一个方面,提供了一种注入代码提取装置,包括:
[0051 ]运行模块,用于运行一可疑程序;
[0052] 检测模块,用于在运行所述可疑程序过程中,通过应用程序编程接口执行记录工 具PIN,检测所述可疑程序的进程是否向其它进程注入了代码;
[0053] 提取模块,用于若检测到所述可疑程序的进程向所述其它进程注入了代码,则通 过所述PIN,提取所述可疑程序的进程向所述其它进程注入的代码。
[0054]优选地,所述检测模块,包括:
[0055] 插入子模块,用于在运行所述可疑程序过程中,在所述可疑程序调用的每个应用 程序编程接口API函数的头和尾插入所述PIN的监控代码,其中,在执行所述监控代码时,所 述监控代码能够监控所述可疑程序调用的每个API函数,并将所述可疑程序调用的每个API 函数的相关信息存储到所述PIN的日志文件中;
[0056] 第一提取子模块,用于从所述PIN的日志文件中提取所述可疑程序调用的每个API 函数的相关信息;
[0057]第一判断子模块,用于基于所述可疑程序调用的每个API函数的相关信息,判断所 述可疑程序调用的API函数中是否有预设API函数,其中,所述预设API函数用于向所述其它 进程注入代码和/或数据;
[0058]第一确定子模块,用于若所述可疑程序调用的API函数中有所述预设API函数,则 确定所述可疑程序的进程向所述其它进程注入了代码。
[0059] 优选地,所述提取模块,包括:
[0060] 第二提取子模块,用于从所述PIN的日志文件中提取所述预设API函数的相关信 息;
[0061] 第三提取子模块,用于从所述预设API函数的相关信息中,提取所述可疑程序的进 程向所述其它进程注入的代码。
[0062] 优选地,所述注入代码提取装置,还包括:
[0063] 输出模块,用于所述通过所述PIN,提取所述可疑程序的进程向所述其它进程注入 的代码之后,输出所述可疑程序的进程向所述其它进程注入的代码。
[0064] 优选地,所述注入代码提取装置,还包括:
[0065] 判断模块,用于所述通过所述PIN,提取所述可疑程序的进程向所述其它进程注入 的代码之后,通过所述PIN,判断所述可疑程序的进程向所述其它进程注入的代码是否为恶 意代码;
[0066] 确定模块,用于若所述可疑程序的进程向所述其它进程注入的代码为所述恶意代 码,则将所述可疑程序确定为恶意程序。
[0067]优选地,所述判断模块,包括:
[0068] 运行子模块,用于运行所述可疑程序的进程向所述其它进程注入的代码;
[0069] 获取子模块,用于通过所述PIN,获取运行所述注入的代码时所述注入的代码调用 的API函数序列的相关信息;
[0070] 第二判断子模块,用于基于所述API函数序列的相关信息,判断所述API函数序列 是否合法;
[0071] 第二确定子模块,用于若所述API函数序列不合法,则将所述注入的代码确定为恶 意代码。
[0072] 优选地,所述获取子模块,具体用于:
[0073] 在运行所述可疑程序的进程向所述其它进程注入的代码过程中,在所述注入的代 码中的每个API函数的头和尾插入所述PIN的监控代码,其中,在执行所述监控代码时,所
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1