对文件的执行进行仿真的系统和方法技术方案

技术编号:20484112 阅读:18 留言:0更新日期:2019-03-02 18:40
本发明专利技术公开了一种用于对文件的执行进行仿真的系统和方法。形成文件的图像,文件的图像由从该文件中读取的指令构成。分析模块在从该文件中读取的部分中检测至少一个已知指令集,以及将断点插入到生成的文件的图像中的位置中,该位置对应于检测到的指令集的起点。仿真模块通过对来自生成的文件的图像的指令的执行进行仿真来对该文件的执行进行仿真,以及将与仿真的至少一个已知指令集的执行相关联的相应记录添加到仿真日志。

【技术实现步骤摘要】
对文件的执行进行仿真的系统和方法
本专利技术总体上涉及对文件的执行进行仿真的领域,具体地,涉及对文件的执行进行仿真的系统和方法。
技术介绍
目前,存在用于开发可执行文件的各种各样的方法。通常,在开发软件期间,特别是在创建可执行文件时,与机器指令不同的指令被放置在这些可执行文件中,诸如以中间代码形式的指令(诸如通用中间语言指令或CIL指令)或脚本形式的指令。在对文件(如可移植可执行文件或PE文件)的执行进行仿真时,重要的是形成尽可能完整的函数调用日志。在对文件的执行进行仿真时,这样的日志的完整性特别影响恶意文件的检测质量(例如检测率)。当可执行文件使用来自动态库的数据或函数类型时,仿真器执行操作系统(OperatingSystem,OS)加载器的多个步骤。例如,对于WindowsOS的可执行文件,仿真器改变可执行文件的图像的IAT(输入地址表)部分,该IAT部分涉及在文件的执行期间(以及因此在对执行的仿真期间)所需要调用的函数的地址的固定。仿真器保存输入到IAT中的、关于函数的地址与函数的名称之间的对应性的信息。因此,当在对文件的执行的仿真期间调用某个函数时,仿真器确定已经调用了某个库函数,并适当地改变函数调用日志。但是在对包含与机器指令不同的指令的文件的执行进行仿真时,根本没有关于以与机器指令不同的方式形式化的函数的信息保存在IAT中,从而出现了指令的日志记录问题(将函数调用记录在日志中),包括以与机器指令不同的方式形式化的函数的问题。
技术实现思路
因此,本文公开了一种用于对文件的执行进行仿真的系统和方法,更具体地,公开了用于对包含与机器指令不同的指令的文件的执行进行仿真的系统和方法。在一个示例性方面,提供了一种用于对文件的执行进行仿真的系统和方法。该方法包括:生成文件的图像,所述文件的图像由从所述文件读取的指令构成;以及在从所述文件中读取的部分中检测至少一个已知指令集。该方法还包括将断点插入到生成的所述文件的图像中的位置中,所述位置对应于从所述文件的被读取的所述部分检测到的所述至少一个已知指令集的起点。该方法包括通过对来自生成的所述文件的图像的指令的执行进行仿真来对所述文件的执行进行仿真,以及将与仿真的所述至少一个已知指令集的执行相关联的相应记录添加到仿真日志。在另一方面,所述文件的图像包括所述文件中包含的程序代码的指令以及关于所述程序代码的入口点的服务信息。在另一方面,通过对来自生成的所述文件的图像的指令的执行进行仿真来对所述文件的执行进行仿真包括:响应于遇到插入的所述断点,将指示对所述已知指令集的执行进行的仿真的记录添加到所述仿真日志,对检测到的所述至少一个已知指令集所对应的替选指令集的执行进行仿真,以及制止对检测到的所述至少一个已知指令集的执行进行仿真。在另一方面,所述替选指令集包括优化的指令集,所述优化的指令集配置成与所述已知指令集相比具有相同的对执行进行仿真的结果,且消耗较少的资源。在另一方面,检测到的所述至少一个已知指令集包括反仿真指令,所述反仿真指令配置成阻止对所述文件的执行的仿真,其中,所述反仿真指令所对应的所述替选指令集配置成具有相同的对文件的执行的仿真结果,且不阻止对所述文件的执行的仿真。在另一方面,检测到的所述至少一个已知指令集包括解释器库的指令集,所述解释器库的指令集配置成处理所述文件的与机器指令不同的指令。在另一方面,使用来自已知指令集的数据库的一个或多个签名来检测从所述文件中读取的所述部分中的所述至少一个已知指令集。在另一方面,所述方法还包括生成所述文件的指令的解释器的库文件的图像。根据另一示例性方面,提供了一种计算机可读介质,所述计算机可读介质包括用于执行本专利技术所公开的任一方法的计算机可执行指令。以上对本专利技术的示例性的方面的简要概述用于提供对本专利技术的基本理解。该概述不是对所有预期方面的广泛综述,并且既不旨在标识所有方面的关键的要素或主要的要素,也不旨在勾画本专利技术的任何方面或所有方面的范围。该概述的唯一目的是以简化的形式呈现一个或多个方面,作为随后的对本专利技术的更详细的描述的前奏。为了实现前述内容,本专利技术的一个或多个方面包括在权利要求中所描述的且特别指出的特征。附图说明并入本说明书中并构成本说明书的一部分的附图示出了本专利技术的一个或多个示例性的方面,以及连同详细的描述一起用来阐述这些示例性的方面的原理和实现方式。图1是示出根据示例性方面的用于对文件的执行进行仿真的系统的框图;图2A是示出根据示例性方面的用于对文件的执行进行仿真的方法的流程图;图2B是示出根据另一示例性方面的用于对文件的执行进行仿真的另一方法的流程图;图3是根据示例性方面的其上可以实施所公开的系统和方法的通用计算机系统的框图。具体实施方式本文中在用于仿真文件的执行的系统、方法和计算机程序产品的上下文中描述示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本专利技术的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。本专利技术将引入一些术语,这些术语将用在本专利技术的不同方面的描述中。仿真是通过计算机的一个设备或多个设备来模仿另一个设备的运行,其中,模仿设备接收与被模仿设备相同的数据、执行与被模仿设备相同的程序、并且获得与被模仿设备相同的结果。对文件的执行进行仿真是通过计算机的一个设备或多个设备来模仿文件在另一个设备上的执行。对指令的执行进行仿真是通过计算机的一个设备或多个设备来模仿指令在另一个设备上的执行。指令是指可执行代码的指令,特别地,可执行代码可以包含在可执行文件中、以及以可执行文件的形式。文件的图像是在对文件的执行进行模仿的过程中文件的表示,具体地,是描述文件的、至少具有用于文件的执行(以及对文件的执行的仿真)所必需的完整性的数据集。当对文件的执行进行仿真时,仿真器(硬件或软件)对该文件的图像的指令的执行进行仿真。文件指令可以以不同的方式形式化:以机器指令的形式和以中间代码的形式(例如Microsoft中间语言(MicrosoftIntermediateLanguage,MSIL)或伪代码(可移植的代码)指令或脚本),这样的指令分别是机器指令、中间代码指令和脚本指令。本专利技术中用于对文件的执行进行仿真的系统的构件是指使用硬件实现的真实的设备、系统、部件、部件组(诸如集成微电路(专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC))或可编程门阵列(现场可编程门阵列(Field-ProgrammableGateArray,FPGA))),或者例如以软件和硬件的组合的形式,诸如微处理器系统和软件指令集、以及神经形态芯片(神经轴突芯片)的组合的形式。这样的系统构件的功能可以由硬件单独实现,也可以组合的形式实现,其中系统构件的一些功能由软件实现,而一些功能由硬件实现。在一些方面,可以在通用计算机(例如在图3中描述的通用计算机)的处理器上实现这些构件的一些或全部。系统部件可以在单个计算设备的范围内实现或分布在多个互连的计算设备之间。图1是示出根据示例性方面的用于对文件的执行进行仿真的系统100的框图。系统本文档来自技高网...

【技术保护点】
1.一种用于对文件的执行进行仿真的方法,其中,所述方法包括:生成文件的图像,所述文件的图像由从所述文件中读取的指令构成;在从所述文件中读取的部分中检测至少一个已知指令集;将断点插入到生成的所述文件的图像中的位置中,所述位置对应于从所述文件的被读取的所述部分中检测到的所述至少一个已知指令集的起点;以及通过对来自生成的所述文件的图像的指令的执行进行仿真来对所述文件的执行进行仿真,以及将与仿真的所述至少一个已知指令集的执行相关联的相应记录添加到仿真日志。

【技术特征摘要】
2017.08.17 RU 2017129267;2017.10.12 US 15/730,9581.一种用于对文件的执行进行仿真的方法,其中,所述方法包括:生成文件的图像,所述文件的图像由从所述文件中读取的指令构成;在从所述文件中读取的部分中检测至少一个已知指令集;将断点插入到生成的所述文件的图像中的位置中,所述位置对应于从所述文件的被读取的所述部分中检测到的所述至少一个已知指令集的起点;以及通过对来自生成的所述文件的图像的指令的执行进行仿真来对所述文件的执行进行仿真,以及将与仿真的所述至少一个已知指令集的执行相关联的相应记录添加到仿真日志。2.根据权利要求1所述的方法,其中,所述文件的图像包括所述文件中包含的程序代码的指令以及关于所述程序代码的入口点的服务信息。3.根据权利要求1所述的方法,其中,通过对来自生成的所述文件的图像的指令的执行进行仿真来对所述文件的执行进行仿真还包括:响应于遇到插入的所述断点:将指示对所述已知指令集的执行的仿真的记录添加到所述仿真日志;以及对检测到的所述至少一个已知指令集所对应的替选指令集的执行进行仿真,以及制止对检测到的所述至少一个已知指令集的执行进行仿真。4.根据权利要求3所述的方法,其中,所述替选指令集包括优化的指令集,所述优化的指令集配置成,与所述已知指令集相比,具有相同的对执行进行仿真的结果,且消耗较少的资源。5.根据权利要求3所述的方法,其中,检测到的所述至少一个已知指令集包括反仿真指令,所述反仿真指令配置成阻止对所述文件的执行的仿真,其中,所述反仿真指令所对应的所述替选指令集配置成具有相同的对所述文件的执行的仿真结果,且不阻止对所述文件的执行的仿真。6.根据权利要求1所述的方法,其中,检测到的所述至少一个已知指令集包括解释器库的指令集,所述解释器库的指令集配置成处理所述文件的与机器指令不同的指令。7.根据权利要求1所述的方法,其中,使用来自已知指令集的数据库的一个或多个签名来检测从所述文件中读取的所述部分中的所述至少一个已知指令集。8.根据权利要求1所述的方法,还包括:生成所述文件的指令的解释器的库文件的图像。9.一种用于对文件的执行进行仿真的系统,所述系统包括:配置成存储文件、文件的图像以及仿真日志的存储设备;以及硬件处理器,所述硬件处理器配置成:生成所述文件的图像,所述文件的图像由从所述文件中读取的指令构成;在从所述文件中读取的部分中检测至少一个已知...

【专利技术属性】
技术研发人员:亚历山大·V·利斯金弗拉基米尔·V·克雷洛夫
申请(专利权)人:卡巴斯基实验室股份制公司
类型:发明
国别省市:俄罗斯,RU

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

1