通过解释器执行代码的系统和方法技术方案

技术编号:18349984 阅读:28 留言:0更新日期:2018-07-01 22:53
本发明专利技术涉及通过解释器执行代码的系统和方法。一种示例性方法包括:通过所述解释器在模拟的计算机环境中执行所述程序代码的指令;当通过所述解释器检测到所述程序代码的与未知对象相关联的指令时,通过所述解释器停止所述程序代码的指令的进一步执行,所述解释器缺少对于所述未知对象的解释规则;通过所述解释器获得辅助代码,所述辅助代码的执行结果对应于所述未知对象的执行结果,其中,所述辅助代码包含已知对象,所述解释器具有对于所述已知对象的解释规则;通过所述解释器执行所述辅助代码的指令;以及在完成所述辅助代码的执行之后,通过所述解释器恢复所述程序代码的指令的执行。

【技术实现步骤摘要】
通过解释器执行代码的系统和方法
本专利技术总体涉及解释器的领域,以及更具体地涉及用于通过解释器执行程序代码的系统和方法。
技术介绍
模拟器越来越多地被防病毒应用程序用于针对恶意功能的存在分析计算机程序代码。通常采用这类方法来分析以脚本编程语言编写的代码。通常,模拟器包括语法分析器(解析器)和解释器。该语法分析器将被分析的程序代码转换为中间代码(诸如字节代码)。解释器使用中间代码和模拟的执行环境来根据解释规则相继地执行(即解释)中间代码的指令。在模拟期间,被分析的代码无权访问实际计算机系统的资源,因为该代码的执行发生在模拟环境中。因此,在模拟器中执行的代码无法删除或改变计算机上的文件、从文件读取数据、或以其它方式对运行该代码的计算机系统造成伤害。同时,非常难以实现能够解释被执行代码的所有对象(功能、进程和方法、类实例等)的模拟器。网络罪犯利用该事实且经常将很少使用的对象包括在其程序代码中。因此,如果特定对象(例如功能)的返回值不对应于该对象的执行的期望值,则恶意代码“理解”其被执行在模拟器内部且停止其进一步执行或不执行恶意功能,从而不被检测到。反过来,防病毒应用程序的制造者力图有效地将解释规则添加到模拟器,用于被网络罪犯包括在其恶意代码中的新对象。然而,这通常需要改变模拟器自身的程序代码。在每次这类改变之后,需要对模拟器的程序代码测试和调试以排除故障,因此无法有效地将更新版本的模拟器提供给防病毒的用户。技术问题出现,包括需要解释(即,由解释器执行)调查的程序代码的指令,该程序代码包含解释器缺少对其的解释规则(即,执行结果对应于对应指令的执行结果的程序代码)的对象,而不改变解释器的真实程序代码。该对象可以为进程、类实例、类实例的方法或变量、脚本或甚至文件。然而,现有的防病毒技术经常无法检测包含模拟器(更具体地,其解释器)缺少对其的解释规则的对象的恶意代码,因此没有解决上文提及的技术问题。
技术实现思路
本专利技术针对于用于通过解释器执行程序代码的系统、方法和计算机程序产品,该解释器缺少对于该程序代码的解释规则。本专利技术的技术效果之一在于,通过解释辅助程序代码提高了由解释器对调查的程序代码(该解释器缺少对于该调查的程序代码的解释规则)的执行的质量,而不改变解释器本身。在一个示例性方面中,一种通过解释器执行程序代码的方法包括:通过所述解释器在模拟的计算机环境中执行所述程序代码的指令;当通过所述解释器检测到所述程序代码的与未知对象相关联的指令时,通过所述解释器停止所述程序代码的所述指令的进一步执行,所述解释器缺少对于所述未知对象的解释规则;通过所述解释器获得辅助代码,所述辅助代码的执行结果对应于所述未知对象的执行结果,其中,所述辅助代码包含已知对象,所述解释器具有对于所述已知对象的解释规则;通过所述解释器执行所述辅助代码的指令;以及在完成所述辅助代码的执行之后,通过所述解释器恢复所述程序代码的所述指令的执行。在一个示例性方面中,所述对象为如下项中的一者:进程、类实例、类实例的方法或变量、脚本、文件、辅助代码。在一个示例性方面中,从所述模拟的计算机环境获得所述辅助代码。在一个示例性方面中,从本地数据库或远程数据库获得所述辅助代码。在一个示例性方面中,针对所述辅助代码将所述解释器的执行环境初始化。在一个示例性方面中,所述程序代码的执行和所述辅助代码的执行包括如下项中的一者或多者:对所述代码执行词汇分析;对所述代码执行语法分析;创建中间代码;以及根据所述解释规则解释所述中间代码。在一个示例性方面中,所述辅助代码还包含至少一个其它未知对象,针对所述至少一个其它未知对象获得另一辅助代码,所述另一辅助代码的执行结果对应于所述其它未知对象的执行结果。在一个示例性方面中,所述方法还包括:对所解释的代码执行防病毒检查。在一个示例性方面中,一种通过解释器执行程序代码的系统包括在模拟的计算机环境中执行解释器的硬件处理器,其中,所述解释器配置成:执行所述程序代码的指令;当通过所述解释器检测到所述程序代码的与未知对象相关联的指令时,停止所述程序代码的所述指令的进一步执行,所述解释器缺少对于所述未知对象的解释规则;获得辅助代码,所述辅助代码的执行结果对应于所述未知对象的执行结果,其中,所述辅助代码包含已知对象,所述解释器具有对于所述已知对象的解释规则;执行所述辅助代码的指令;以及在完成所述辅助代码的执行之后,恢复所述程序代码的所述指令的执行。在一个示例性方面中,一种其上存储用于通过解释器执行程序代码的计算机可执行指令的非易失性计算机可读介质,所述计算机可执行指令包括用于如下操作的指令:通过所述解释器在模拟的计算机环境中执行所述程序代码的指令;当通过所述解释器检测到所述程序代码的与未知对象相关联的指令时,通过所述解释器停止所述程序代码的所述指令的进一步执行,所述解释器缺少对于所述未知对象的解释规则;通过所述解释器获得辅助代码,所述辅助代码的执行结果对应于所述未知对象的执行结果,其中,所述辅助代码包含已知对象,所述解释器具有对于所述已知对象的解释规则;通过所述解释器执行所述辅助代码的指令;以及在完成所述辅助代码的执行之后,通过所述解释器恢复所述程序代码的所述指令的执行。以上对本专利技术的示例性方面的简要概述用于提供对本专利技术的基本理解。该概述不是对所有预期方面的广泛综述,并且既不旨在标识所有方面的关键的要素或主要的要素,也不旨在勾画本专利技术的任何方面或所有方面的范围。为了实现前述内容,本专利技术的一个或多个方面包括在权利要求中所描述的且特别指出的特征。附图说明并入本说明书中并构成本说明书的一部分的附图示出了本专利技术的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。图1示出用于通过解释器执行程序代码的示例性系统。图2示出用于通过解释器执行程序代码的示例性系统。图3示出用于通过解释器执行程序代码的示例性方法。图4示出其上可实施用于通过解释器执行程序代码的系统和方法的方面的通用计算机系统的示例。具体实施方式本文中在用于通过解释器执行程序代码的系统、方法和计算机程序产品的背景下描述本专利技术的示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本专利技术的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。图1示出根据本专利技术的一个方面的用于通过解释器执行程序代码的示例性系统。防病毒应用程序101是为该防病毒应用程序配置在其上的计算机系统提供信息安全的计算机程序。防病毒应用程序101将用于分析的程序代码102传递到模拟器200。在一个示例性方面中,模拟器200为防病毒应用程序101的一部分。源程序代码102可以用脚本编程语言(诸如JavaScript、VBScript、Python等)来编写。在一个示例性方面中,模拟器200可以包括但不限于:词汇分析器103、语法分析器104、语义分析器105、中间代码生成器106、解释器107、记录模块115和分析模块113。在一个示例性方面中,解释器107包含虚拟机。在一个示例性方面中,词汇分析器103读取构成源程序代码102的字符串本文档来自技高网
...
通过解释器执行代码的系统和方法

【技术保护点】
1.一种通过解释器执行程序代码的方法,所述方法包括:通过所述解释器在模拟的计算机环境中执行所述程序代码的指令;当通过所述解释器检测到所述程序代码的与未知对象相关联的指令时,通过所述解释器停止所述程序代码的指令的进一步执行,所述解释器缺少对于所述未知对象的解释规则;通过所述解释器获得辅助代码,所述辅助代码的执行结果对应于所述未知对象的执行结果,其中,所述辅助代码包含已知对象,所述解释器具有对于所述已知对象的解释规则;通过所述解释器执行所述辅助代码的指令;以及在完成所述辅助代码的执行之后,通过所述解释器恢复所述程序代码的指令的执行。

【技术特征摘要】
2016.12.12 RU 2016148489;2017.03.01 US 15/446,1571.一种通过解释器执行程序代码的方法,所述方法包括:通过所述解释器在模拟的计算机环境中执行所述程序代码的指令;当通过所述解释器检测到所述程序代码的与未知对象相关联的指令时,通过所述解释器停止所述程序代码的指令的进一步执行,所述解释器缺少对于所述未知对象的解释规则;通过所述解释器获得辅助代码,所述辅助代码的执行结果对应于所述未知对象的执行结果,其中,所述辅助代码包含已知对象,所述解释器具有对于所述已知对象的解释规则;通过所述解释器执行所述辅助代码的指令;以及在完成所述辅助代码的执行之后,通过所述解释器恢复所述程序代码的指令的执行。2.如权利要求1所述的方法,其中,所述对象为如下项中的一者:进程、类实例、类实例的方法或变量、脚本、文件、辅助代码。3.如权利要求1所述的方法,其中,从所述模拟的计算机环境获得所述辅助代码。4.如权利要求1所述的方法,其中,从本地数据库或远程数据库获得所述辅助代码。5.如权利要求1所述的方法,其中,针对所述辅助代码将所述解释器的执行环境初始化。6.如权利要求1所述的方法,其中,所述程序代码的执行和所述辅助代码的执行包括如下项中的一者或多者:对所述代码执行词汇分析;对所述代码执行语法分析;创建中间代码;以及根据所述解释规则解释所述中间代码。7.如权利要求1所述的方法,其中,所述辅助代码还包含至少一个其它未知对象,针对所述至少一个其它未知对象获得另一辅助代码,所述另一辅助代码的执行结果对应于所述其它未知对象的执行结果。8.如权利要求1所述的方法,还包括:对所解释的代码执行防病毒检查。9.一种通过解释器执行程序代码的系统,所述系统包括:在模拟的计算机环境中执行解释器的硬件处理器,其中,所述解释器配置成:执行所述程序代码的指令;当通过所述解释器检测到所述程序代码的与未知对象相关联的指令时,停止所述程序代码的指令的进一步执行,所述解释器缺少对于所述未知对象的解释规则;获得辅助代码,所述辅助代码的执行结果对应于所述未知对象的执行结果,其中,所述辅助代码包含已知对象,所述解释器具有对于所述已知对象的解释规则;...

【专利技术属性】
技术研发人员:瓦西里·A·达维多夫德米特里·V·维诺格拉多夫罗曼·Y·加夫里尔琛科德米特里·A·基尔萨诺夫
申请(专利权)人:卡巴斯基实验室股份制公司
类型:发明
国别省市:俄罗斯,RU

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

1