掌桥专利:专业的专利平台
掌桥专利
首页

一种反病毒虚拟沙盒操作系统API模拟的方法

文献发布时间:2023-06-19 18:46:07


一种反病毒虚拟沙盒操作系统API模拟的方法

技术领域

本发明涉及信息安全技术领域,尤其涉及一种反病毒虚拟沙盒操作系统API模拟的方法。

背景技术

目前,在信息安全领域中,恶意代码检测一直都是各个安全厂商所面临的首要问题。但是近年来,一些主流病毒家族为了与安全软件厂商进行免杀对抗,大范围在病毒样本中使用代码混淆技术。安全软件厂商为了与不断变化的混淆代码进行对抗,追求更高的病毒检出率,从而发展出了虚拟沙盒技术。常规的反病毒引擎中的虚拟沙盒仅能够虚拟执行汇编指令,对于传统指令级混淆的样本来说,可以完成部分样本数据和代码的解密,但由于虚拟沙盒中缺少系统API(Application Programming Interface)实现,从而最终导致样本无法像在真实系统环境中一样执行。当今的混淆病毒样本混淆手段愈发多样,如:调用API通过检测返回结果或者错误号、利用Windows消息回调机制等方式检测系统真实性,故仅模拟执行汇编指令对于病毒查杀的帮助已经十分有限。故此,在反病毒虚拟沙盒中模拟API对于提高查杀率来说变得尤为重要。

发明内容

本发明要解决的技术问题是如何在反病毒虚拟沙盒操作系统中模拟API的方法。

本发明为了解决此问题,提出了一种反病毒虚拟沙盒操作系统API模拟的方法,具体包括如下步骤:

步骤一:收集、整理API的返回值、参数列表、调用约定;

步骤二:根据API的名称生成全局唯一的API索引号;

步骤三:根据第一步收集、整理的API信息与第二步生成的API索引号生成API中断调用代码;

步骤四:根据第一步收集、整理的API信息,编写代码模拟、仿真对应API的行为、代码逻辑;

步骤五:在虚拟沙盒中接管预留的用于处理API调用的系统中断,在该中断被触发时,根据调用API的索引号,将当前上下文转发到相应的被模拟API函数的入口继续执行,API函数执行到返回后,返回API仿真结果。

进一步的,所述步骤一中根据真实操作系统的动态库中API函数的实现情况将API的返回值、参数列表、调用约定进行收集、整理。

进一步的,所述步骤一中根据查阅操作系统API文档将API的返回值、参数列表、调用约定进行收集、整理。

进一步的,所述步骤一中根据包含该系统API的头文件,将API的返回值、参数列表、调用约定进行收集、整理。

采用上述技术方案,具有以下技术效果:

本发明实现了病毒样本在虚拟沙盒环境中调用仿真API,在反病毒虚拟沙盒中模拟API对于提高查杀率,最终达到病毒样本在虚拟沙盒环境中可以调用仿真API的目的。

附图说明

图1为本发明的模拟过程流程图。

具体实施方式

下面结合附图对本发明做进一步说明。

实施例1:如图1的具体实施方式

具体实施流程见图1:

第一步,假设针对案例样本(sha1:151230e3546faa21fb1a5b0de1bfa8adcc7ff30a)需要在虚拟沙盒操作系统中模拟API(GetStartupInfoW),根据该系统API头文件内信息,得出该API函数返回值类型为void(无法返回值),调用约定为WINAPI(__stdcall),参数列表中只有一个参数,参数类型为指针类型。截取部分系统API头文件(WinBase.h)中GetStartupInfoW相关内容如下:

第二步,根据API名称GetStartupInfoW,在虚拟沙盒系统中生成API索引号(0x4701cf)。

第三步,根据第一步中的API信息和第二步中生成的API索引号,生成API中断调用代码。生成的API中断调用代码如下:

mov eax,0x4701cf;SYSCALL:KERNEL32!GetStartupInfoW

int 0x80

ret 0x4

第四步,根据第一步中的API信息编写代码模拟、仿真对应API的行为、代码逻辑。相关仿真示例代码如下:

第五步,在虚拟沙盒中接管预留的用于处理API调用的系统中断,在该中断被触发时,根据调用API的索引号,将当前上下文转发到相应的被模拟API函数的入口继续执行,API函数执行到返回后,返回API仿真结果。

以上描述了本发明的基本原理和主要特征,本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内,发明要求保护范围由所附的权利要求书及其等效物界定。

技术分类

06120115686778