CN108093652B - 应用的模拟 - Google Patents

应用的模拟 Download PDF

Info

Publication number
CN108093652B
CN108093652B CN201680037860.XA CN201680037860A CN108093652B CN 108093652 B CN108093652 B CN 108093652B CN 201680037860 A CN201680037860 A CN 201680037860A CN 108093652 B CN108093652 B CN 108093652B
Authority
CN
China
Prior art keywords
function call
parameters
logged
application
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680037860.XA
Other languages
English (en)
Other versions
CN108093652A (zh
Inventor
C.阿尔默
S.哈恩
S.芬克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
McAfee LLC
Original Assignee
McAfee LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by McAfee LLC filed Critical McAfee LLC
Publication of CN108093652A publication Critical patent/CN108093652A/zh
Application granted granted Critical
Publication of CN108093652B publication Critical patent/CN108093652B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

在本文中描述的特定实施例提供了一种电子设备,其可以被配置成标识应用、运行应用、将用于应用的每个函数调用的参数记入日志,并且将记入日志的参数存储在仿真表中。记入日志的参数可以包括函数调用、输入参数和输出参数。可以使用仿真表来模拟应用的执行而不必实际上运行应用。

Description

应用的模拟
相关申请的交叉引用
本申请要求2015年6月27日提交的、标题为“SIMULATION OF AN APPLICATION”的美国非临时(发明)专利申请号14/752,911权益和优先权,该美国非临时专利被通过引用整体地并入本文中。
技术领域
本公开一般地涉及信息安全的领域,并且更特别地涉及应用的模拟。
背景技术
网络安全的领域在现今的社会中变得越来越重要。因特网已经使得能实现全世界不同计算机网络的互连。特别地,因特网提供用于在经由各种类型的客户端设备而连接到不同的计算机网络的不同用户之间交换数据的介质。在因特网的使用变换了商业和个人通信的同时,其还被用作用于恶意操作者获得对计算机和计算机网络的未授权访问和用于敏感信息的有意或疏忽的公开的传播媒介。
使主机计算机感染的恶意软件(“恶意软件”)可能能够执行任何数目的恶意动作,诸如从与主机计算机相关联的商业或个人偷窃敏感信息,传播到其它主机计算机,和/或帮助分布式的拒绝服务攻击,从主机计算机发出垃圾电子邮件或恶意电子邮件等。因此,显著的管理挑战依然针对保护计算机和计算机网络免于恶意软件的恶意和疏忽的利用。
附图说明
为了提供对本公开及其特征和优点的更完全的理解,参考结合附图采取的以下描述,其中相同的参考数字表示相同的部分,在所述附图中:
图1是依照本公开的实施例的用于应用的模拟的通信系统的简化框图;
图2是依照本公开的实施例的用于应用的模拟的通信系统的一部分的简化框图;
图3是依照本公开的实施例的用于应用的模拟的通信系统的示例细节的简图;
图4是依照本公开的实施例的用于应用的模拟的通信系统的示例细节的简图;
图5是图示依照实施例的可能与通信系统相关联的潜在操作的简化流程图;
图6是图示依照实施例的可能与通信系统相关联的潜在操作的简化流程图;
图7是图示依照实施例的以点对点配置进行布置的示例计算系统的框图;
图8是与本公开的示例ARM生态系统片上系统(SOC)相关联的简化框图;以及
图9是图示依照实施例的示例处理器核的框图。
附图中的各图不一定按比例绘制,因为其尺寸可以在不背离本公开的范围的情况下相当地变化。
具体实施方式
示例实施例
图1是依照本公开的实施例的用于应用的模拟的通信系统100的简化框图。通信系统100可以包括电子设备102、云服务104和服务器106。电子设备102可以包括处理器110、存储器112、操作系统(OS)114和安全模块116。安全模块116可以包括仿真模块118。仿真模块可以包括仿真表120。云服务104和服务器106可以每个包括网络安全模块122、训练集124和沙箱环境126。网络安全模块122可以包括仿真数据评定器146和仿真表120。电子设备102、云服务104和服务器106可以每个使用网络108进行通信。
在示例实施例中,通信系统100可以被配置成包括使用数据挖掘和机器学习策略对用于经剖析的操作环境的相关模拟逻辑进行自动地建模的系统。通信系统100可以被配置成(例如,根据训练集124)标识应用、运行应用、将用于应用的每个函数调用的参数记入日志(log),并且将记入日志的参数存储在仿真表(例如,仿真表120)中。记入日志的参数可以包括函数调用、输入参数和输出参数。 在示例中,通信系统100可以评定全部的记入日志的数据并且确定每一系统函数的输入到输出参数映射的最普遍组合。通信系统100还可以梳理出(prune out)不影响被调用函数的输出的任何参数。仿真表可以包括可以由电子设备102中的仿真模块在运行时间解释的每一系统函数的映射表,并且仿真表可以包括用于多个函数调用的多个记入日志的参数。
图1的元件可以采用任何适合的连接(有线的或无线的)通过一个或多个接口而彼此耦合,所述连接提供用于网络(例如,网络108)通信的可行路径。另外,图1的这些元件中的任何一个或多个可以基于特定配置需要而组合或从架构移除。通信系统100可以包括有用于网络中的分组的传输或接收的传输控制协议/因特网协议(TCP/IP)通信能力的配置。通信系统100还可以在适当的情况下和基于特定需要结合用户数据报协议/IP (UDP/IP)或任何其它适合的协议来操作。
出于说明通信系统100的某些示例技术的目的,理解可以遍历网络环境的通信是重要的。以下基础信息可以被视为可以根据其适当地解释本公开的基础。
一些恶意软件检测方法重重依赖于软件仿真的使用。即,为了确定新的软件应用是否潜在地包含危险行为,相应的恶意软件扫描仪将在安全的虚拟的仿真环境内模拟所讨论的文件的执行。意图是既监视所执行的文件对仿真环境产生什么影响,而且监视文件在仿真之后看起来如何。例如,恶意的Windows®可执行文件常常在运行时间被打包或模糊,并且外部模糊壳仅可以通过仿真从文件移开。
为了合理地正确地模拟诸如Windows® OS或web浏览器之类的环境,系统必须模拟OS或浏览器暴露到软件应用或脚本代码的系统函数。当前,这由恶意软件研究员手动地完成。例如,不论何时一些已知的恶意软件对某些系统函数做出调用,开发针对该恶意软件家族的检测的研究员确保仿真环境模拟该系统函数。
手动地创造系统函数的模拟的该方法是反应性的、易错的和昂贵的。仅有的已知替代现今将是许可原始OS映像并且在仿真下运行整个OS。这具有非常清楚的限制,首要的是其高性能成本。所需要的是可以作为手动地创造的模拟函数执行的但同时通过数据挖掘和机器学习的使用生成的系统和方法。
如图1中概述的用于应用的模拟的通信系统可以解决这些问题(和其它)。通信系统100可以被配置成在受监视的原始真实世界环境中剖析(profile)软件应用的大训练集、利用其输入和输出参数来跟踪发生的系统调用、确定最普遍的组合,并且计算可由仿真组件用来模拟应用的运行的广义模拟模型。安全模块可以针对来自应用的对恶意行为的指示而分析模拟运行。例如,使用行为序列的马尔科夫模型的行为恶意软件分类系统可以被用来针对恶意行为来分析文件。
在示例中,通信系统100可以包括数据挖掘环境,其中可以在诸如MicrosoftWindows®之类的感兴趣的操作环境或Mozilla Firefox®浏览器的原始安装时安全地执行应用,并且受监视的应用对操作环境做出的所有系统函数调用被记入日志。系统允许数据挖掘环境,其中可以在诸如Microsoft Windows®之类的所讨论的OS或Mozilla Firefox®浏览器的原始安装时安全地执行软件应用,并且受监视的应用或脚本对OS或浏览器做出的所有系统函数调用被记入日志。例如,可以使用核心模式、用户模式、浏览器DOM钩住(hooking)等将受监视的应用或脚本记入日志。记入日志的数据可以包括系统函数的名称和库、传递到函数中的实际输入参数,以及从函数返回的输出参数。
机器学习组件然后可以评定记入日志的数据并且确定每一系统函数的输入到输出参数映射的最普遍组合。系统还可以仅对相关的那些参数执行标准化且产生每一系统函数的映射表。当仿真模块可以在运行时间解释这些映射表、检查输入参数条件的表条目的列表是否与当前模拟环境状态匹配,以及如果是这样则执行编码在该表条目中的输出动作的情况下,可以将映射表发送给仿真模块。该过程允许在不必实际上运行应用的情况下对应用的模拟。
进一步地,系统可以被配置成自动地确定普遍的系统调用并且不等待实际的恶意软件样本使用某一调用开始。与用于手动地创造的模拟逻辑的O(m)(m针对字节代码大小)相比,用于模拟单个系统函数的性能特性是O(n)(n针对列表大小)。换言之,假定列表条件和手动规则字节代码二者使用可比较的运行时间解释器,则不存在通过机器学习生成的系统逻辑的使用而招致的附加性能影响。虽然存在用于设立剖析的后端环境和将数据挖掘输出馈送到机器学习编译器中的较高的初始一次开发成本,但是一旦该过程被建立,就相对地没有进行的维护成本。
转向图1的基础结构,示出了依照示例实施例的通信系统100。一般地,通信系统100可以以任何类型或拓扑的网络来实现。网络108表示用于接收和传输通过通信系统100传播的信息的分组的互连通信路径的一系列点或节点。网络108提供节点之间的通信接口,并且可以被配置为任何局域网(LAN)、虚拟局域网(VLAN)、广域网(WAN)、无线局域网(WLAN)、城域网(MAN)、内联网、外联网、虚拟专用网(VPN)和促进网络环境中的通信的任何其它适当的架构或系统,或包括有线和/或无线通信的其任何适合的组合。
在通信系统100中,可以根据任何适合的通信消息传送协议来发送和接收包括分组、帧、信号、数据等的网络业务。适合的通信消息传送协议可以包括多分层的方案,诸如开放系统互连(OSI)模型,或其任何衍生或变体(例如,传输控制协议/因特网协议(TCP/IP)、用户数据报协议/IP(UDP/IP))。另外,在通信系统100中还可以提供通过蜂窝网络的无线电信号通信。可以提供适合的接口和基础结构以使得能实现与蜂窝网络的通信。
如在本文中使用的术语“分组”指的是可以在分组交换网络上的源节点与目的地节点之间路由的数据的单元。分组包括源网络地址和目的地网络地址。这些网络地址可以是TCP/IP消息传送协议中的因特网协议(IP)地址。如在本文中使用的术语“数据”指的是任何类型的二进制、数值、语音、视频、文本或脚本数据,或任何类型的源或目标代码,或可以在电子设备和/或网络中从一个点传送到另一个点的以任何适当的格式的任何其它适合的信息。另外,消息、请求、响应和查询是网络业务的形式,并且因此可以包括分组、帧、信号、数据等。
在示例实现中,电子设备102、云服务104和服务器106,并且是网络元件,其打算包含网络器具、服务器、路由器、交换机、网关、桥接器、负载均衡器、处理器、模块或任何其它适合的设备、组件、元件或可操作以在网络环境中交换信息的物体。网络元件可以包括促进其操作的任何适合的硬件、软件、组件、模块或物体,以及用于在网络环境中接收、传输和/或以其它方式传送数据或信息的适合的接口。这可以包括允许数据或信息的有效交换的适当的算法和通信协议。
关于与通信系统100相关联的内部结构,电子设备102、云服务104和服务器106中的每个可以包括存储器元件,用于存储在本文中概述的操作中要使用的信息。电子设备102、云服务104和服务器106中的每个可以在适当的情况下和基于特定需要将信息保持在任何适合的存储器元件(例如,随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM (EEPROM)、专用集成电路(ASIC)等)、软件、硬件、固件中,或在任何其它适合的组件、设备、元件或物体中。本文中讨论的任何存储器项目应当被解释为包含在宽泛的术语“存储器元件”内。此外,可以在任何数据库、寄存器、队列、表、高速缓存、控制列表或其它存储结构(其全部都可以在任何适合的时间帧被引用)中提供在通信系统100中被使用、跟踪、发送或接收的信息。还可以将任何这样的存储选项包括在如在本文中使用的宽泛的术语“存储器元件”内。
在某些示例实现中,本文中概述的功能可以通过编码在一个或多个有形介质中的逻辑(例如,ASIC中提供的嵌入式逻辑、数据信号处理器(DSP)指令、要由处理器执行的(潜在地包括目标代码和源代码的)软件或其它类似的机器等)来实现,所述介质可以包括非瞬时计算机可读介质。在这些实例中的一些中,存储器元件可以存储用于在本文中描述的操作的数据。这包括能够存储被执行以实行在本文中描述的活动的软件、逻辑、代码或处理器指令的存储器元件。
在示例实现中,通信系统100的网络元件,诸如电子设备102、云服务104和服务器106,可以包括要实现或促进如在本文中概述的操作的软件模块(例如,安全模块116、仿真模块118、网络安全模块122和仿真数据评定器146)。这些模块可以以任何适当的方式适合地组合,所述方式可以基于特定配置和/或供应(provisioning)需要。在示例实施例中,这样的操作可以由在这些元件外部实现的或被包括在一些其它网络设备中以实现预期功能性的硬件来执行。此外,模块可以被实现为软件、硬件、固件或其任何适合的组合。这些元件还可以包括可以与其它网络元件协调以便实现如在本文中概述的操作的软件(或往复式软件)。
另外,电子设备102、云服务104和服务器106中的每个可以包括可以执行软件或算法以实行如在本文中讨论的活动的处理器。处理器可以执行与用以实现在本文中详述的操作的数据相关联的任何类型的指令。在一个示例中,处理器可以将元件或物品(例如,数据)从一个状态或东西变换成另一个状态或东西。在另一示例中,在本文中概述的活动可以利用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)来实现,并且在本文中标识的元件可以是一些类型的可编程处理器,可编程数字逻辑(例如,现场可编程门阵列(FPGA)、EPROM、EEPROM)或包括数字逻辑、软件、代码、电子指令的ASIC,或者其任何适合的组合。在本文中描述的任何潜在处理元件、模块和机器应当被解释为包括在宽泛的术语“处理器”内。
电子设备102可以是网络元件并且包括例如台式计算机、膝上型计算机、移动设备、个人数字助理、智能电话、平板,或其它类似的设备。云服务104被配置成向电子设备102提供云服务。云服务一般可以被定义为对通过诸如因特网之类的网络作为服务而递送的计算资源的使用。通常,在云基础结构中提供计算、存储和网络资源,有效地将工作负荷从本地网络移动到云网络。服务器106可以是诸如服务器或虚拟服务器之类的网络元件,并且可以与想要经由一些网络(例如,网络108)在通信系统100中发起通信的客户端、消费者、端点或最终用户相关联。术语“服务器”包括用来为客户端的请求服务和/或代表通信系统100内的客户端执行一些计算任务的设备。尽管在图1中将安全模块116表示为位于电子设备102中,但是这仅是出于说明性目的。安全模块116可以以任何适合的配置组合或分离。此外,安全模块116可以与电子设备102整合或分布在可由电子设备102访问的另一网络中,诸如云服务104或服务器106。
转向图2,图2是依照本公开的实施例的用于应用的模拟的通信系统100的一部分的简化框图。云服务104(或服务器106或一些其它网络元件)可以包括网络安全模块122、训练集124和沙箱环境126。网络安全模块122可以包括仿真数据评定器146和仿真表120。仿真数据评定器146可以包括剖析模块128、数据挖掘模块130、标准化和泛化模块132,以及变换模块134。
训练集124可以包括可以在沙箱环境126中安全地执行的一个或多个应用。沙箱环境126可以包括诸如Microsoft Windows®之类的感兴趣的操作环境、诸如MozillaFirefox®之类的浏览器或其中可以运行应用一些其它环境的原始安装。受监视的应用在沙箱环境126中时做出的系统函数调用被记入日志。
剖析模块128可以被配置成将用于每个受监视的调用的数据记入日志。记入日志的数据可以包括系统函数的名称和库、传递到系统函数(例如,栈的顶部)中的被称为输入参数的实际参数,以及从函数(例如,EAX寄存器)返回的被称为输出参数的参数。数据挖掘模块130可以被配置成评定全部的记入日志的数据,确定每一系统函数的输入到输出参数映射的最普遍组合。标准化和泛化模块132可以被配置成梳理出显然不影响受监视的函数的输出的任何参数并且分解成仅那些相关的参数。变换模块134可以被配置成将来自标准化和泛化模块132的数据变换成可以被包括在仿真表120中的数据。仿真表120中的数据可以包括可以由电子设备102中的仿真模块118在运行时间解释的每一系统函数的映射表,并且考虑到输入参数的相应集合,允许系统快速地查找在应用的模拟下应当返回的输出参数。
转向图3,图3是依照本公开的实施例的用于应用的模拟的通信系统100的一部分的简图。图3图示了应用的一部分在沙箱环境126中的执行的特定示例。在沙箱环境126中,可以从训练集124中的应用获得代码148。代码可以在沙箱环境126中执行并且被允许运行。如果代码是函数调用,则调用被钩住并且实参(argument)被记入日志。例如,系统栈150中的来自函数调用的实参可以被确定并记入日志。针对每个函数调用记入日志的数据可以包括系统函数的名称和库、传递到系统函数中的实际参数(例如,输入参数),以及从函数返回的参数(例如,输出参数)。记入日志的数据然后可以被(例如,数据挖掘模块130、标准化和泛化模块132,以及变换模块134)处理并且用来填充仿真表120。
转向图4,图4是依照本公开的实施例的用于应用的模拟的通信系统的一部分的简图。仿真表120可以包括库列136、函数列138、输入参数条件列140和输出参数动作列142。
在运行时间,仿真模块118可以评定仿真表120、检查输入参数条件的表条目的列表是否与当前模拟环境设置匹配,并且如果是这样,则执行编码在该表条目中的输出动作。输入参数可以包括变量、调用、系统配置、操作系统、文件配置、数据结构等。当前模拟环境是其中如果允许运行或执行应用则将运行应用的环境。为了应用的执行的适当的模拟,输入参数的表条目的列表应当与其中如果允许运行或执行应用则将运行应用的环境匹配。例如,如图4中所图示的,如果用于mylib32.dll中的函数“GetSomeHandleA”的输入参数是8,则输出参数或动作要将“22”写到栈[0]指针中,并且将EAX设置成1。如果用于mylib32.dll中的函数“GetSomeHandleA”的输入参数是32,则输出参数或动作要将“0”写到栈[0]指针中,并且将EAX设置成0。这允许仿真模块118模拟运行应用而不必实际上运行应用,以及使用数据挖掘和机器学习策略对用于经剖析的操作环境的相关模拟逻辑进行自动地建模。
转向图5,图5是图示依照实施例的可能与应用的模拟相关联的流程500的可能操作的示例流程图。在实施例中,流程500的一个或多个操作可以由仿真数据评定器146和网络安全模块122执行。在502处,系统接收(或标识)应用。例如,可以从训练集124接收应用。训练集124可以包括一大批应用或过程并且系统可以从训练集124接收随机地选择的应用、从训练集124接收已知的恶意软件样本,或者管理员可以选择要接收的应用。在504处,允许应用在沙箱环境中运行。例如,可以允许应用在沙箱环境126中运行。在506处,针对每个函数调用,确定用于该函数调用的参数并将其记入日志。在508处,将每个函数调用和该函数调用的参数存储在仿真表中。
转向图6,图6是图示依照实施例的可能与应用的模拟相关联的流程600的可能操作的示例流程图。在实施例中,流程600的一个或多个操作可以由仿真模块118执行。在602处,系统接收(或标识)应用。例如,可以从训练集124接收应用。在604处,使用仿真表,运行应用的模拟。在606处,针对恶意活动的存在,分析应用的模拟运行。
图7图示了根据实施例的以点对点(PtP)配置进行布置的计算系统700。特别地,图7示出了其中处理器、存储器和输入/输出设备通过多个点对点接口互连的系统。一般地,通信系统100的网络元件中的一个或多个可以以如计算系统700相同或类似的方式来配置。
如图7中所图示的,系统700可以包括若干处理器,为了清楚而示出其中的仅两个处理器770和780。虽然示出了两个处理器770和780,但是要理解,系统700的实施例还可以仅包括一个这样的处理器。处理器770和780可以每个包括一组核(即,处理器核774A和774B以及处理器核784A核784B),用以执行程序的多个线程。核可以被配置成以与上面关于图1-6讨论的方式类似的方式执行指令代码。每个处理器770、780可以包括至少一个共享高速缓存771、781。共享高速缓存771、781可以存储由处理器770、780的诸如处理器核774和784之类的一个或多个组件利用的数据(例如,指令)。
处理器770和780还可以每个包括集成存储器控制器逻辑(MC)772和782,用以与存储器元件732和734通信。存储器元件732和/或734可以存储由处理器770和780使用的各种数据。在替代实施例中,存储器控制器逻辑772和782可以是与处理器770和780分离的分立逻辑。
处理器770和780可以是任何类型的处理器并且可以分别使用点对点接口电路778和788经由点对点(PtP)接口750交换数据。处理器770和780可以每个使用点对点接口电路776、786、794和798经由单独的点对点接口752和754与芯片组790交换数据。芯片组790还可以使用接口电路792经由高性能图形接口739与高性能图形电路738交换数据,所述接口电路792可以是PtP接口电路。在替代实施例中,可以将在图7中图示的PtP链路中的任何或全部实现为多点总线而不是PtP链路。
芯片组790可以经由接口电路796与总线720通信。总线720可以具有通过其进行通信的一个或多个设备,诸如总线桥接器718和I/O设备716。经由总线710,总线桥接器718可以与其它设备通信,所述其它设备诸如键盘/鼠标712(或诸如触摸屏、跟踪球等的其它输入设备)、通信设备726(诸如调制解调器、网络接口设备,或可以通过计算机网络760通信的其它类型的通信设备)、音频I/O设备714和/或数据存储设备728。数据存储设备728可以存储代码730,所述代码730可以由处理器770和/或780执行。在替代实施例中,可以利用一个或多个PtP链路来实现总线架构的任何部分。
图7中描绘的计算机系统是可以用来实现在本文中讨论的各种实施例的计算系统的实施例的示意性图示。将领会,可以将在图7中描绘的系统的各种组件组合在片上系统(SoC)架构中或任何其它适合的配置中。例如,可以将在本文中公开的实施例合并到包括移动设备的系统中,所述移动设备诸如智能蜂窝电话、平板计算机、个人数字助理、便携式游戏设备等。将领会,在至少一些实施例中,可以为这些移动设备提供SoC架构。
转向图8,图8是与本公开的示例ARM生态系统SOC 800相关联的简化框图。本公开的至少一个示例实现可以包括应用的模拟、在本文中讨论的特征和ARM组件。例如,图8的示例可以与任何ARM核(例如,A-9、A-15等)相关联。进一步地,架构可以是任何类型的平板、(包括Android™电话、iPhones™的)智能电话、iPad™、Google Nexus™、MicrosoftSurface™、个人计算机、服务器、视频处理组件、(包括任何类型的笔记本的)膝上型计算机、Ultrabook™系统、任何类型的触摸使能的输入设备等的部分。
在图8的该示例中,ARM生态系统SOC 800可以包括多个核806-807、L2高速缓存控制808、总线接口单元809、L2高速缓存810、图形处理单元(GPU)815、互连802、视频编解码器820和液晶显示器(LCD) I/F 825,其可以与耦合到LCD的移动产业处理器接口(MIPI)/高清晰度多媒体接口(HDMI)链路相关联。
ARM生态系统SOC 800还可以包括订户身份模块(SIM)I/F 830、引导只读存储器(ROM)835、同步动态随机存取存储器(SDRAM)控制器840、闪存控制器845、串行外围接口(SPI)主设备(master)850、适合的功率控制855、动态RAM(DRAM)860和闪存865。另外,一个或多个示例实施例包括一个或多个通信能力、接口和特征,诸如Bluetooth™、3G调制解调器875、全球定位系统(GPS)880和802.11 Wi-Fi 885的实例。
在操作中,图8的示例可以提供处理能力连同相对低的功率消耗,以使得能实现各种类型(例如,移动计算、高端数字家庭、服务器、无线基础结构等)的计算。另外,这样的架构可以使得能实现任何数目的软件应用(例如,Android™、Adobe® Flash®播放器、Java平台标准版(Java SE)、JavaFX、Linux、嵌入式Microsoft Windows、Symbian和Ubuntu等)。在至少一个示例实施例中,核处理器可以利用耦合的低等待时间2级高速缓存来实现无序的超标量流水线。
图9图示了根据实施例的处理器核900。处理器核900可以是用于任何类型的处理器的核,所述处理器诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器或用以执行代码的其它设备。尽管在图9中仅图示了一个处理器核900,但是处理器可以替代地包括不止一个在图9中图示的处理器核900。例如,处理器核900表示关于图7的处理器770和780示出和描述的处理器核774a、774b、784a和784b的一个示例实施例。处理器核900可以是单线程核,或针对至少一个实施例,处理器核900可以是多线程的,因为其可以每一核包括不止一个硬件线程上下文(或“逻辑处理器”)。
图9还图示了依照实施例的耦合到处理器核900的存储器902。存储器902可以是如为本领域技术人员所知或以其他方式对本领域技术人员可用的(包括存储器层级的各种层的)多种多样的存储器中的任何存储器。存储器902可以包括要由处理器核900执行的代码904,其可以是一个或多个指令。处理器核900可以跟随由代码904指示的指令的程序序列。每个指令进入前端逻辑906并且由一个或多个解码器908处理。解码器可以生成作为其输出的微操作,诸如以预定义格式的固定宽度的微操作,或可以生成其它指令、微指令或反映原始代码指令的控制信号。前端逻辑906还包括寄存器重命名逻辑910和调度逻辑912,所述调度逻辑912一般分配资源并且使与用于执行的指令对应的操作排队。
处理器核900还可以包括具有执行单元916-1至916-N的集合的执行逻辑914。一些实施例可以包括专用于特定功能或功能的集合的多个执行单元。其它实施例可以包括仅一个执行单元或可以执行特定功能的一个执行单元。执行逻辑914执行由代码指令指定的操作。
在完成由代码指令指定的操作的执行之后,后端逻辑918可以引退代码904的指令。在一个实施例中,处理器核900允许无序的执行但要求指令的有序引退。引退逻辑920可以采取多种已知形式(例如,重排序缓冲器等)。以该方式,在代码904的执行期间,至少在由解码器生成的输出、由寄存器重命名逻辑910利用的硬件寄存器和表以及由执行逻辑914修改的(未示出的)任何寄存器方面,处理器核900被变换。
尽管未在图9中图示,但是处理器可以在具有处理器核900的芯片上包括其它元件,在本文中关于图7示出和描述了所述其它元件中的至少一些。例如,如图7中所示,处理器可以包括存储器控制逻辑连同处理器核900。处理器可以包括I/O控制逻辑和/或可以包括与存储器控制逻辑整合的I/O控制逻辑。
注意,在本文中提供的示例的情况下,可以在两个、三个或更多个网络元件方面描述交互。然而,这已经仅出于清楚和示例的目的而完成。在某些情况下,通过仅引用有限数目的网络元件来描述流程的给定集合的功能性中的一个或多个可能是更容易的。应当领会,通信系统100及其教导可容易地扩展,并且可以容纳大量组件以及更复杂的/精细的布置和配置。因此,所提供的示例不应当限制范围或抑制如潜在地应用于大量其它架构的通信系统的宽泛的教导。
注意到前述流程图(即,图5和6)中的操作仅图示了可以由通信系统100或在通信系统100内执行的可能的相关场景和模式中的一些也是重要的。可以在适当的情况下删除或移除这些操作中的一些,或者可以在不背离本公开的范围的情况下相当地修改或改变这些操作。另外,已经将多个这些操作描述为与一个或多个附加操作同时地或并行地执行。然而,可以相当地更改这些操作的定时。出于示例和讨论的目的,提供了前述操作流程。通信系统9提供大量的灵活性,因为可以在不背离本公开的教导的情况下提供任何适合的布置、年表、配置和定时机制。
尽管已经关于特定布置和配置详细地描述了本公开,但是可以在不脱离本公开的范围的情况下显著地改变这些示例配置和布置。此外,可以基于特定需要和实现来组合、分离、消除或添加某些组件。另外,尽管已经关于促进通信过程的特定元件和操作图示了通信系统9,但是这些元件和操作可以由实现通信系统100的预期功能性的任何适合的架构、协议和/或过程替换。
对于本领域技术人员而言,众多其它改变、代替、变化、更改和修改可能被弄清,并且意图本公开包含如落在所附权利要求书的范围内的所有这样的改变、代替、变化、更改和修改。为了帮助美国专利和商标局(USPTO)并且另外帮助关于本申请发布的任何专利的任何读者解释附加到本申请的权利要求书,申请人希望注意到申请人:(a)不意图所附权利要求中的任何权利要求恳求美国法典第35章第112节的第六段(6),因为其在本申请的申请日存在,除非词语“用于……的部件”或“用于……的步骤”未具体地用在特定权利要求中;并且(b)不意图通过说明书中的任何陈述以未另外在所附权利要求书中反映的任何方式限制本公开。
其它注意和示例
示例C1是至少一种机器可读介质,其具有一个或多个指令,所述一个或多个指令在被至少一个处理器执行时使得所述至少一种至少一种机器可读介质标识应用、运行应用、将用于应用的每个函数调用的参数记入日志,并且将记入日志的参数存储在仿真表中。
在示例C2中,示例C1的主题可以可选地包括,其中记入日志的参数包括函数调用、输入参数和输出参数。
在示例C3中,示例C1-C2中的任一个的主题可以可选地包括,其中指令在被所述至少一个处理器执行时进一步使得所述至少一种机器可读介质评定全部的记入日志的数据并且确定用于每个函数调用的输入到输出参数映射的最普遍组合。
在示例C4中,示例C1-C3中的任一个的主题可以可选地包括,其中指令在被所述至少一个处理器执行时进一步使得所述至少一种机器可读介质梳理出不影响每个函数调用的输出的任何参数。
在示例C5中,示例C1-C4中的任一个的主题可以可选地包括,其中仿真表中的数据包括可以由仿真模块在运行时间解释的每一函数调用的映射表。
在示例C6中,示例C1-C5中的任一个的主题可以可选地包括,其中仿真表包括用于多个函数调用的多个记入日志的参数。
在示例C7中,示例C1-C6中的任一个的主题可以可选地包括,其中指令在被所述至少一个处理器执行时进一步使得所述至少一个处理器将仿真表传送到电子设备。
在示例C8中,示例C1-C7中的任一个的主题可以可选地包括,其中在沙箱环境中运行应用。
在示例A1中,一种装置可以包括网络仿真模块,其中网络仿真模块被配置成标识应用、运行应用、将用于应用的每个函数调用的参数记入日志,并且将记入日志的参数存储在仿真表中。
在示例A2中,示例A1的主题可以可选地包括,其中记入日志的参数包括函数调用、输入参数和输出参数。
在示例A3中,示例A1-A2中的任一个的主题可以可选地包括,其中网络仿真模块被进一步配置成评定全部的记入日志的数据并且确定用于每个函数调用的输入到输出参数映射的最普遍组合。
在示例A4中,示例A1-A3中的任一个的主题可以可选地包括,其中网络仿真模块被进一步配置成梳理出不影响函数调用的输出的任何参数。
在示例A5中,示例A1-A4中的任一个的主题可以可选地包括,其中仿真表中的数据包括可以由仿真模块在运行时间解释的每一函数调用的映射表。
在示例A6中,示例A1-A5中的任一个的主题可以可选地包括,其中仿真表包括用于多个函数调用的多个记入日志的参数。
在示例A7中,示例A1-A6中的任一个的主题可以可选地包括,其中监视模块被进一步配置成将仿真表传送到电子设备。
在示例A8中,示例A1-A7中的任一个的主题可以可选地包括,其中监视模块被进一步配置成在沙箱环境中运行应用。
示例M1是一种方法,其包括标识电子设备上的应用和使用仿真表来模拟应用的执行,其中仿真表包括用于应用的每个函数调用的参数。
在示例M2中,示例M1的主题可以可选地包括,其中参数包括输入参数和输出参数。
在示例M3中,示例M1-M2中的任一个的主题可以可选地包括,针对恶意软件的存在而分析应用的执行的模拟。
在示例M4中,示例M1-M3中的任一个的主题可以可选地包括,仿真表中的数据包括可以由仿真模块在运行时间解释的每一函数调用的映射表。
在示例M5中,示例M1-M4中的任一个的主题可以可选地包括,其中仿真表由网络元件创建并且从网络元件传送到电子设备。
在示例M6中,示例M1-M5中的任一个的主题可以可选地包括,其中通过标识应用、运行应用、将用于应用的每个函数调用的参数记入日志以及将记入日志的参数存储在仿真表中来创建仿真表。
在示例M7中,示例M1-M6中的任一个的主题可以可选地包括,其中在仿真表的创建期间,评定记入日志的数据并且确定用于每个函数调用的输入到输出参数映射的最普遍组合。
示例S1是一种用于应用的模拟的系统,系统包括网络仿真模块,所述网络仿真模块被配置成标识应用、运行应用、将用于应用的每个函数调用的参数记入日志,并且将记入日志的参数存储在仿真表中。
在示例S2中,示例S1的主题可以可选地包括,其中记入日志的参数包括函数调用、输入参数和输出参数。
示例X1是一种机器可读存储介质,其包括用以实现如在示例A1-A8中的任一个中的方法或实现如在示例M1-M7中的任一个中的装置的机器可读指令。示例Y1是一种装置,其包括用于执行示例方法M1-M7中的任何方法的部件。在示例Y2中,示例Y1的主题可以可选地包括,包括处理器和存储器的用于执行方法的部件。在示例Y3中,示例Y2的主题可以可选地包括,包括机器可读指令的存储器。

Claims (33)

1.一种非暂时性机器可读介质,包括一个或多个指令,所述一个或多个指令在被至少一个处理器执行时使得所述至少一个处理器:
在沙箱环境中运行应用,其中所述应用包括多个函数调用;
在沙箱环境中在运行时间期间将用于所述应用的每个函数调用的参数记入日志,其中记入日志的参数包括每个函数调用、用于每个函数调用的输入参数和用于每个函数调用的输出参数;
将记入日志的参数存储在仿真表中;以及
在模拟环境中使用记入日志的参数来模拟所述多个函数调用中的函数调用的执行,其中模拟函数调用的执行包括通过如下各项来模拟函数调用而不必运行函数调用:
从仿真表确定用于函数调用的当前模拟环境参数集合是否与用于函数调用的记入日志的输入参数相匹配;以及
响应于确定当前模拟环境参数集合与记入日志的输入参数相匹配,返回用于函数调用的记入日志的输出参数。
2.根据权利要求1所述的非暂时性机器可读介质,其中记入日志的参数包括函数调用、输入参数和输出参数。
3.根据权利要求1和2中任一项所述的非暂时性机器可读介质,进一步包括一个或多个指令,所述一个或多个指令在被所述至少一个处理器执行时进一步使得所述至少一个处理器:
评定全部的记入日志的数据并且确定用于每个函数调用的输入到输出参数映射的普遍组合。
4.根据权利要求1和2中任一项所述的非暂时性机器可读介质,进一步包括一个或多个指令,所述一个或多个指令在被所述至少一个处理器执行时进一步使得所述至少一个处理器:
移除不影响函数调用中的至少一个的输出的至少一个参数。
5.根据权利要求1和2中任一项所述的非暂时性机器可读介质,其中仿真表中的数据包括能够由仿真模块在运行时间解释的每一函数调用的映射表。
6.根据权利要求1和2中任一项所述的非暂时性机器可读介质,其中仿真表包括用于多个函数调用的多个记入日志的参数。
7.根据权利要求1和2中任一项所述的非暂时性机器可读介质,进一步包括一个或多个指令,所述一个或多个指令在被所述至少一个处理器执行时进一步使得所述至少一个处理器:
将仿真表传送到电子设备。
8.根据权利要求1和2中任一项所述的非暂时性机器可读介质,其中仿真表被用来在模拟环境中模拟第一个函数调用的执行而不必运行第一个函数调用,其中所述多个函数调用包括第一个函数调用。
9.一种用于应用的模拟的装置,包括:
网络仿真模块,其被配置成:
在沙箱环境中运行应用,其中所述应用包括多个函数调用;
在沙箱环境中在运行时间期间将用于所述应用的每个函数调用的参数记入日志,其中记入日志的参数包括每个函数调用、用于每个函数调用的输入参数和用于每个函数调用的输出参数;
将记入日志的参数存储在仿真表中;以及
在模拟环境中使用记入日志的参数来模拟所述多个函数调用中的函数调用的执行,其中模拟函数调用的执行包括通过如下各项来模拟函数调用而不必运行函数调用:
从仿真表确定用于函数调用的当前模拟环境参数集合是否与用于函数调用的记入日志的输入参数相匹配;以及
响应于确定当前模拟环境参数集合与记入日志的输入参数相匹配,返回用于函数调用的记入日志的输出参数。
10.根据权利要求9所述的装置,其中记入日志的参数包括函数调用、输入参数和输出参数。
11.根据权利要求9和10中任一项所述的装置,其中网络仿真模块被进一步配置成:
评定全部的记入日志的数据并且确定用于每个函数调用的输入到输出参数映射的普遍组合。
12.根据权利要求9和10中任一项所述的装置,其中网络仿真模块被进一步配置成:
梳理出不影响每个函数调用的输出的参数。
13.根据权利要求9和10中任一项所述的装置,其中仿真表中的数据包括能够由仿真模块在运行时间解释的每一函数调用的映射表。
14.根据权利要求9和10中任一项所述的装置,其中仿真表包括用于多个函数调用的多个记入日志的参数。
15.根据权利要求9和10中任一项所述的装置,其中网络仿真模块被进一步配置成:
将仿真表传送到电子设备。
16.根据权利要求9和10中任一项所述的装置,其中仿真表被用来在模拟环境中模拟第一个函数调用的执行而不必运行第一个函数调用,其中所述多个函数调用包括第一个函数调用。
17.一种用于应用的模拟的方法,包括:
标识电子设备上的应用,其中所述应用包括多个函数调用;
在沙箱环境中运行所述应用;
在沙箱环境中在运行时间期间将用于所述应用的每个函数调用的参数记入日志,其中记入日志的参数包括每个函数调用、用于每个函数调用的输入参数和用于每个函数调用的输出参数;
将记入日志的参数存储在仿真表中;以及
使用仿真表来模拟所述应用的执行,其中模拟所述应用的执行包括通过如下各项来模拟所述多个函数调用中的函数调用而不必运行函数调用:
从仿真表确定用于函数调用的当前模拟环境参数集合是否与用于函数调用的记入日志的输入参数相匹配;以及
响应于确定当前模拟环境参数集合与记入日志的输入参数相匹配,返回用于函数调用的记入日志的输出参数。
18.根据权利要求17所述的方法,其中参数包括输入参数和输出参数。
19.根据权利要求17和18中任一项所述的方法,进一步包括:
针对恶意软件的存在,分析对所述应用的执行的模拟。
20.根据权利要求18所述的方法,其中仿真表中的数据包括能够由仿真模块在运行时间解释的每一函数调用的映射表。
21.根据权利要求18所述的方法,其中仿真表由网络元件创建并且被从网络元件传送到电子设备。
22.根据权利要求18所述的方法,其中通过如下各项来创建仿真表:
在沙箱环境中运行所述应用;
将用于所述应用的每个函数调用的参数记入日志;以及
将记入日志的参数存储在仿真表中。
23.根据权利要求18所述的方法,其中在仿真表的创建期间,评定记入日志的数据并且确定用于每个函数调用的输入到输出参数映射的普遍组合。
24.一种用于应用的模拟的系统,系统包括:
网络仿真模块,其被配置成:
在沙箱环境中运行应用,其中所述应用包括多个函数调用;
在沙箱环境中在运行时间期间将用于所述应用的每个函数调用的参数记入日志,其中记入日志的参数包括每个函数调用、用于每个函数调用的输入参数和用于每个函数调用的输出参数;
将记入日志的参数存储在仿真表中;以及
在模拟环境中使用记入日志的参数来模拟所述多个函数调用中的函数调用的执行,其中模拟函数调用的执行包括通过如下各项来模拟函数调用而不必运行函数调用:
从仿真表确定用于函数调用的当前模拟环境参数集合是否与用于函数调用的记入日志的输入参数相匹配;以及
响应于确定当前模拟环境参数集合与记入日志的输入参数相匹配,返回用于函数调用的记入日志的输出参数。
25.根据权利要求24所述的系统,其中记入日志的参数包括函数调用、输入参数和输出参数。
26.一种电子设备,包括:
用以在沙箱环境中运行应用的部件,其中所述应用包括多个函数调用;
用以在沙箱环境中在运行时间期间将用于所述应用的每个函数调用的参数记入日志的部件,其中记入日志的参数包括每个函数调用、用于每个函数调用的输入参数和用于每个函数调用的输出参数;
用以将记入日志的参数存储在仿真表中的部件;以及
用以在模拟环境中使用记入日志的参数来模拟所述多个函数调用中的函数调用的执行的部件,其中用以模拟函数调用的执行的部件包括用以通过如下各项来模拟函数调用而不必运行函数调用的部件:
用以从仿真表确定用于函数调用的当前模拟环境参数集合是否与用于函数调用的记入日志的输入参数相匹配的部件;以及
用以响应于确定当前模拟环境参数集合与记入日志的输入参数相匹配而返回用于函数调用的记入日志的输出参数的部件。
27.根据权利要求26所述的电子设备,其中记入日志的参数包括函数调用、输入参数和输出参数。
28.根据权利要求26和27中任一项所述的电子设备,进一步包括:
用以评定全部的记入日志的数据并且确定用于每个函数调用的输入到输出参数映射的普遍组合的部件。
29.根据权利要求26和27中任一项所述的电子设备,进一步包括:
用以移除不影响函数调用中的至少一个的输出的至少一个参数的部件。
30.根据权利要求26和27中任一项所述的电子设备,其中仿真表中的数据包括能够由仿真模块在运行时间解释的每一函数调用的映射表。
31.根据权利要求26和27中任一项所述的电子设备,其中仿真表包括用于多个函数调用的多个记入日志的参数。
32.根据权利要求26和27中任一项所述的电子设备,进一步包括:
用以将仿真表传送到电子设备的部件。
33.根据权利要求26和27中任一项所述的电子设备,其中仿真表被用来在模拟环境中模拟第一个函数调用的执行而不必运行第一个函数调用,其中所述多个函数调用包括第一个函数调用。
CN201680037860.XA 2015-06-27 2016-05-24 应用的模拟 Active CN108093652B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/752911 2015-06-27
US14/752,911 US9846774B2 (en) 2015-06-27 2015-06-27 Simulation of an application
PCT/US2016/033853 WO2017003582A1 (en) 2015-06-27 2016-05-24 Simulation of an application

Publications (2)

Publication Number Publication Date
CN108093652A CN108093652A (zh) 2018-05-29
CN108093652B true CN108093652B (zh) 2021-08-24

Family

ID=57602477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680037860.XA Active CN108093652B (zh) 2015-06-27 2016-05-24 应用的模拟

Country Status (5)

Country Link
US (1) US9846774B2 (zh)
EP (1) EP3314503B1 (zh)
JP (1) JP6583838B2 (zh)
CN (1) CN108093652B (zh)
WO (1) WO2017003582A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10698732B2 (en) 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10452539B2 (en) * 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US11977484B2 (en) 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
RU2659742C1 (ru) * 2017-08-17 2018-07-03 Акционерное общество "Лаборатория Касперского" Способ эмуляции исполнения файлов, содержащих инструкции, отличные от машинных
CN110908893A (zh) * 2019-10-08 2020-03-24 深圳逻辑汇科技有限公司 联邦学习的沙盒机制
CN113722020A (zh) * 2020-05-26 2021-11-30 腾讯科技(深圳)有限公司 接口调用方法、装置和计算机可读存储介质
US20210374229A1 (en) * 2020-05-28 2021-12-02 Mcafee, Llc Methods and apparatus to improve detection of malware in executable code
CN113759749B (zh) * 2020-06-02 2024-05-03 青岛海信日立空调系统有限公司 一种冷水机组仿真系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0883198A (ja) * 1994-09-12 1996-03-26 Toshiba Corp プログラムシミュレーション装置
JPH08147195A (ja) * 1994-11-16 1996-06-07 Oki Electric Ind Co Ltd 障害検出/記録装置
JPH08147196A (ja) * 1994-11-17 1996-06-07 Nippon Telegr & Teleph Corp <Ntt> システムコールエミュレータ
US6073142A (en) 1997-06-23 2000-06-06 Park City Group Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments
US5987610A (en) 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6460050B1 (en) 1999-12-22 2002-10-01 Mark Raymond Pace Distributed content identification system
US6901519B1 (en) 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
US7146305B2 (en) * 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US7814308B2 (en) * 2004-08-27 2010-10-12 Microsoft Corporation Debugging applications under different permissions
US8281401B2 (en) * 2005-01-25 2012-10-02 Whitehat Security, Inc. System for detecting vulnerabilities in web applications using client-side application interfaces
US8135994B2 (en) * 2006-10-30 2012-03-13 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for detecting an anomalous sequence of function calls
CN101329638B (zh) * 2007-06-18 2011-11-09 国际商业机器公司 程序代码的并行性的分析方法和系统
KR100951852B1 (ko) 2008-06-17 2010-04-12 한국전자통신연구원 응용 프로그램 비정상행위 차단 장치 및 방법
US8914879B2 (en) * 2010-06-11 2014-12-16 Trustwave Holdings, Inc. System and method for improving coverage for web code
CN102034050A (zh) * 2011-01-25 2011-04-27 四川大学 基于虚拟机和敏感Native API调用感知的恶意软件动态检测方法
US9672355B2 (en) * 2011-09-16 2017-06-06 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security
US8806639B2 (en) * 2011-09-30 2014-08-12 Avaya Inc. Contextual virtual machines for application quarantine and assessment method and system
CN103186740B (zh) * 2011-12-27 2015-09-23 北京大学 一种Android恶意软件的自动化检测方法
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9336025B2 (en) * 2013-07-12 2016-05-10 The Boeing Company Systems and methods of analyzing a software component
GB2518636B (en) * 2013-09-26 2016-03-09 F Secure Corp Distributed sample analysis
CN103685251B (zh) * 2013-12-04 2016-08-17 电子科技大学 一种面向移动互联网的Android恶意软件检测平台
CN104462973B (zh) * 2014-12-18 2017-11-14 上海斐讯数据通信技术有限公司 移动终端中应用程序的动态恶意行为检测系统及方法

Also Published As

Publication number Publication date
EP3314503A4 (en) 2019-05-08
CN108093652A (zh) 2018-05-29
JP6583838B2 (ja) 2019-10-02
US20160378977A1 (en) 2016-12-29
EP3314503A1 (en) 2018-05-02
US9846774B2 (en) 2017-12-19
WO2017003582A1 (en) 2017-01-05
JP2018525714A (ja) 2018-09-06
EP3314503B1 (en) 2023-12-13

Similar Documents

Publication Publication Date Title
CN108093652B (zh) 应用的模拟
US11328063B2 (en) Identification of malicious execution of a process
US20210029150A1 (en) Determining a reputation for a process
CN107409120B (zh) 检测恶意外设的装置、方法及系统
KR101884548B1 (ko) 멀웨어의 추적 및 검출을 위한 시스템 및 방법
EP3198513A1 (en) Data verification using enclave attestation
US9961102B2 (en) Detection of stack pivoting
CN107960126B (zh) 基于分析事件的漏洞利用检测
US20160381051A1 (en) Detection of malware
JP6598221B2 (ja) マルウェアを特定するための変則検知
US10963561B2 (en) System and method to identify a no-operation (NOP) sled attack
US11182480B2 (en) Identification of malware

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant