CN106709338A - 一种程序检测方法及装置 - Google Patents
一种程序检测方法及装置 Download PDFInfo
- Publication number
- CN106709338A CN106709338A CN201610377002.1A CN201610377002A CN106709338A CN 106709338 A CN106709338 A CN 106709338A CN 201610377002 A CN201610377002 A CN 201610377002A CN 106709338 A CN106709338 A CN 106709338A
- Authority
- CN
- China
- Prior art keywords
- arm
- virtual
- executable program
- data system
- instruction
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种程序检测方法,所述方法应用于ARM虚拟机,包括:加载可执行程序,并获取所述可执行程序中的ARM指令;根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数;根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。本发明实施例还公开了一种程序检测装置。采用本发明实施例,可以通过不同的CPU平台执行ARM程序,实现程序自动检测,提高程序检测的效率。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种程序检测方法及装置。
背景技术
程序检测是指对一个完成全部或部分功能模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行。安全人员一般可以通过程序行为判定一个程序是否为恶意程序,比如网络操作、文件操作,判定的方法包括静态反汇编技术和动态调试(控制程序执行、记录中间过程)等等。随着可执行程序(由操作系统进行加载执行的文件)的保护技术的发展,这种文件保护技术被恶意程序使用,导致安全人员很难通过静态反汇编的方法判定程序是否是恶意程序,只能通过动态调试的手段来对程序进行检测,在动态调试过程中,还原被保护的核心代码,获取程序的行为,进而判定该程序是否为恶意程序。但是,动态调试需要连接手机,部署调试环境,导致调试效率低,分析成本高。
发明内容
本发明实施例提供一种程序检测方法及装置。可以通过不同的CPU平台执行ARM程序,实现程序自动检测,提高程序检测的效率,减少程序检测的成本。
本发明第一方面提供了一种程序检测方法,所述方法应用于ARM虚拟机,包括:
加载可执行程序,并获取所述可执行程序中的ARM指令;
根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数;
根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。
相应地,本发明第二方面提供了一种程序检测装置,包括:
信息加载模块,用于加载可执行程序,并获取所述可执行程序中的ARM指令;
信息记录模块,用于根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数;
信息确定模块,用于根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。
相应地,本发明第三方面提供了一种程序检测装置,包括接口电路、存储器以及处理器,其中,存储器中存储一组程序代码,且处理器用于调用存储器中存储的程序代码,用于执行以下操作:
加载可执行程序,并获取所述可执行程序中的ARM指令;
根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数;
根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。
实施本发明实施例,首先通过不同的CPU平台运行ARM虚拟机,然后通过虚拟机加载可执行程序,并根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,记录访问所述虚拟数据系统的行为参数;最后根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序,在程序检测过程中,不需要搭建硬件调试环境,通过ARM虚拟机自动执行ARM指令并获取检测结果,从而提高程序检测的效率,减少程序检测的成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提出的一种程序检测方法的第一实施例流程图;
图2是本发明实施例提供的一种执行ARM指令的流程示意图;
图3是本发明提出的一种程序检测方法的第二实施例流程图;
图4是本发明实施例提出的一种程序检测装置的结构示意图;
图5是本发明实施例提出的装置中信息确定模块的结构示意图;
图6是本发明实施例提出的另一种程序检测装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1是本发明提出的一种程序检测方法的第一实施例流程图。如图所示,本发明实施例中的方法包括:
S101,加载可执行程序,并获取所述可执行程序中的ARM指令。
具体实现中,安全人员可以首先在不同类型的CPU(X86、Mips、PowerPC等等)平台上安装ARM虚拟机,在安装成功后启动该ARM虚拟机,并对ARM虚拟机进行初始化,在ARM虚拟机初始化成功之后,安全人员可以将需要检测的可执行程序导入到该ARM虚拟机中,在安全人员点击开始检测之后,ARM虚拟机开始加载该可执行程序,其中,可执行程序为16进制的字符数据,ARM虚拟机包括指令翻译器,在加载可执行程序成功后,ARM虚拟机可以首先读取所述可执行程序中的字符数据,然后通过指令翻译器将16进制的字符数据翻译成ARM指令。
S102,根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数。
具体实现中,所述虚拟数据系统包括虚拟进程、虚拟文件系统以及虚拟设备,ARM虚拟机还包括指令执行模块以及行为分析记录器。例如,如图2所示,当ARM指令为进程访问时,指令执行模块从虚拟进程中获取所需数据,同时将指令执行模块收到的进程访问动作和参数存入行为记录分析器,当ARM指令为文件访问时,指令执行模块从虚拟文件系统中获取所需数据,同时将指令执行模块接收到的文件访问动作和参数存入行为记录分析器,当ARM指令为设备访问时,指令执行模块从虚拟设备中获取所需数据,同时将指令执行模块接收到的虚拟设备访问动作和参数存入行为分析记录器。
可选的,在根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数之前,可以根据所述可执行程序中的ARM指令,获取执行所述虚拟数据系统所需的访问内存和/或寄存器数据。例如,如图2所示,当指令执行模块执行的ARM指令(如:访问虚拟文件系统)需要访问内存时,指令执行模块可以从内存管理器中获取访问虚拟数据系统所需的内存,当指令执行模块执行的ARM指令(如:访问虚拟设备)需要访问寄存器时,指令执行模块可以从虚拟ARM-CPU中获取寄存器数据。
可选的,在根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统之后,可以判定ARM指令是否执行成功,并确定该ARM指令为系统调用指令,如果ARM指令执行失败,则终止与本步骤,不再执行下述操作步骤,如果ARM指令不是系统调用指令,则执行上述可执行程序中的下一条ARM指令,如果ARM指令执行成功且ARM指令为系统调用指令,则继续执行下述操作步骤。进一步的,可以获取访问所述ARM虚拟机中的虚拟数据系统的时长;判断访问所述ARM虚拟机中的虚拟数据系统的时长是否小于预设阈值;若访问所述ARM虚拟机中的虚拟数据系统的时长小于预设阈值,则确定所述ARM指令执行成功;若访问所述ARM虚拟机中的虚拟数据系统的时长不小于预设阈值,则确定所述ARM指令执行失败。
S103,根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。
具体实现中,可以判断所述访问所述虚拟数据系统的行为参数是否存在于预置的恶意行为序列,所述预置的恶意行为序列包括多种恶意行为和参数;若所述访问所述虚拟数据系统的行为参数存在于所述预置的恶意行为序列中,则确定所述可执行程序为恶意程序,若所述访问所述虚拟数据系统的行为参数不存在于所述预置的恶意行为序列,则确定所述可执行程序不是恶意程序,继续执行上述可执行程序中的下一条ARM指令。
例如,可以预先在恶意行为序列中进行如下定义:目标文件中写入数据,摄像头被打开并使用该摄像头进行录像且将该录像发送到其他网络设备。如果根据ARM指令将数据写入了目标文件中,则该可执行程序的为恶意程序;如果某个网络设备打开摄像头,使用该摄像头进行录像,并且将该录像发送到其他网络设备,则该可执行程序的为恶意程序。
在本发明实施例中,首先通过不同的CPU平台运行ARM虚拟机,然后通过ARM虚拟机加载可执行程序,并根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,记录访问所述虚拟数据系统的行为参数;根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序,在程序检测过程中,不需要搭建硬件调试环境,通过ARM虚拟机自动执行ARM指令并获取检测结果,从而提高程序检测的效率,减少程序检测的成本。
请参考图3,图3是本发明提出的一种程序检测方法的第二实施例流程图。如图所示,本发明实施例中的方法包括:
S301,加载可执行程序,并读取所述可执行程序中的字符数据。
具体实现中,安全人员可以首先在不同类型的CPU(X86、Mips、PowerPC等等)平台上安装ARM虚拟机,在安装成功后启动该ARM虚拟机,并对ARM虚拟机进行初始化,在ARM虚拟机初始化成功之后,安全人员可以将需要检测的可执行程序导入到该ARM虚拟机中,在安全人员点击开始检测之后,ARM虚拟机开始加载可执行程序,其中,可执行程序为16进制的字符数据。
S302,通过指令翻译器将所述字符数据翻译成ARM指令。
具体实现中,ARM虚拟机可以包括指令翻译器,可以通过指令翻译器将16进制的字符数据翻译成ARM指令。
S303,获取执行所述虚拟数据系统所需的访问内存和/或寄存器数据。
例如,如图2所示,当指令执行模块执行的ARM指令(如:访问虚拟文件系统)需要访问内存时,指令执行模块可以从内存管理器中获取访问虚拟数据系统所需的内存,当指令执行模块执行的ARM指令(如:访问虚拟设备)需要访问寄存器时,指令执行模块可以从虚拟ARM-CPU中获取寄存器数据。
S304,根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数。
具体实现中,所述虚拟数据系统包括虚拟进程、虚拟文件系统以及虚拟设备,ARM虚拟机还包括指令执行模块以及行为分析记录器。例如,如图2所示,当ARM指令为进程访问时,指令执行模块从虚拟进程中获取所需数据,同时将指令执行模块收到的进程访问动作和参数存入行为记录分析器,当ARM指令为文件访问时,指令执行模块从虚拟文件系统中获取所需数据,同时将指令执行模块接收到的文件访问动作和参数存入行为记录分析器,当ARM指令为设备访问时,指令执行模块从虚拟设备中获取所需数据,同时将指令执行模块接收到的虚拟设备访问动作和参数存入行为分析记录器。
可选的,在根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统之后,可以判定ARM指令是否执行成功,并确定该ARM指令为系统调用指令,如果ARM指令执行失败,则终止与本步骤,不再执行下述操作步骤,如果ARM指令不是系统调用指令,则执行上述可执行程序中的下一条ARM指令,如果ARM指令执行成功且ARM指令为系统调用指令,则继续执行下述操作步骤。进一步的,可以获取访问所述ARM虚拟机中的虚拟数据系统的时长;判断访问所述ARM虚拟机中的虚拟数据系统的时长是否小于预设阈值;若访问所述ARM虚拟机中的虚拟数据系统的时长小于预设阈值,则确定所述ARM指令执行成功;若访问所述ARM虚拟机中的虚拟数据系统的时长不小于预设阈值,则确定所述ARM指令执行失败。
S305,判断所述访问所述虚拟数据系统的行为参数是否存在于预置的恶意行为序列中,所述预置的恶意行为序列包括多种恶意行为和参数。
S306,若所述访问所述虚拟数据系统的行为参数存在于所述预置的恶意行为序列中,则确定所述可执行程序为恶意程序。其中,所述预置的恶意行为序列包括多种恶意行为和参数。
例如,可以预先在恶意行为序列中进行如下定义:目标文件中写入数据,摄像头被打开并使用该摄像头进行录像且将该录像发送到其他网络设备。如果根据ARM指令将数据写入了目标文件中,则该可执行程序的为恶意程序;如果某个网络设备打开摄像头,使用该摄像头进行录像,并且将该录像发送到其他网络设备,则该可执行程序的为恶意程序。
S307,若所述访问所述虚拟数据系统的行为参数不存在于所述预置的恶意行为序列中,则确定所述可执行程序不是恶意程序,继续执行上述可执行程序中的下一条ARM指令。
在本发明实施例中,首先通过不同的CPU平台运行ARM虚拟机,然后通过ARM虚拟机加载可执行程序,并根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,记录访问所述虚拟数据系统的行为参数;根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序,在程序检测过程中,不需要搭建硬件调试环境,通过ARM虚拟机自动执行ARM指令并获取检测结果,从而提高程序检测的效率,减少程序检测的成本。
请参考图4,图4是本发明实施例提出的一种程序检测装置的结构示意图。如图所示,本发明实施例中的装置包括:
信息加载模块401,用于加载可执行程序,并获取所述可执行程序中的ARM指令。
具体实现中,安全人员可以首先在不同类型的CPU(X86、Mips、PowerPC等等)平台上安装ARM虚拟机,在安装成功后启动该ARM虚拟机,并对ARM虚拟机进行初始化,在ARM虚拟机初始化成功之后,安全人员可以将需要检测的可执行程序导入到该ARM虚拟机中,在安全人员点击开始检测之后,ARM虚拟机开始加载可执行程序,其中,可执行程序为16进制的字符数据,ARM虚拟机包括指令翻译器,ARM虚拟机可以首先读取所述可执行程序中的字符数据,然后通过指令翻译器将16进制的字符数据翻译成ARM指令。
信息记录模块402,用于根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数。
具体实现中,所述虚拟数据系统包括虚拟进程、虚拟文件系统以及虚拟设备,ARM虚拟机还包括指令执行模块以及行为分析记录器,例如,如图2所示,当ARM指令为进程访问时,指令执行模块从虚拟进程中获取所需数据,同时将指令执行模块收到的进程访问动作和参数存入行为记录分析器,当ARM指令为文件访问时,指令执行模块从虚拟文件系统中获取所需数据,同时将指令执行模块接收到的文件访问动作和参数存入行为记录分析器,当ARM指令为设备访问时,指令执行模块从虚拟设备中获取所需数据,同时将指令执行模块接收到的虚拟设备访问动作和参数存入行为分析记录器。
可选的,信息记录模块402,还可以用于判定ARM指令是否执行成功,并确定该ARM指令为系统调用指令,如果ARM指令执行失败,则终止与本步骤,不再执行下述操作步骤,如果ARM指令不是系统调用指令,则执行上述可执行程序中的下一条ARM指令,如果ARM指令执行成功且ARM指令为系统调用指令,则继续执行下述操作步骤。进一步的,可以获取访问所述ARM虚拟机中的虚拟数据系统的时长;判断访问所述ARM虚拟机中的虚拟数据系统的时长是否小于预设阈值;若访问所述ARM虚拟机中的虚拟数据系统的时长小于预设阈值,则确定所述ARM指令执行成功;若访问所述ARM虚拟机中的虚拟数据系统的时长不小于预设阈值,则确定所述ARM指令执行失败。
信息确定模块403,用于根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。
具体实现中,如图5所示,信息确定模块403还可以进一步包括:
信息判断单元501,用于判断所述访问所述虚拟数据系统的行为参数是否存在于预置的恶意行为序列中,所述预置的恶意行为序列包括多种恶意行为和参数。
信息确定单元502,用于若所述访问所述虚拟数据系统的行为参数存在于所述预置的恶意行为序列中,则确定所述可执行程序为恶意程序;若所述访问所述虚拟数据系统的行为参数不存在于所述预置的恶意行为序列,则确定所述可执行程序不是恶意程序,继续执行上述可执行程序中的下一条ARM指令。
例如,可以预先在恶意行为序列中进行如下定义:目标文件中写入数据,摄像头被打开并使用该摄像头进行录像且将该录像发送到其他网络设备。如果根据ARM指令将数据写入了目标文件中,则该可执行程序的为恶意程序;如果某个网络设备打开摄像头,使用该摄像头进行录像,并且将该录像发送到其他网络设备,则该可执行程序的为恶意程序。
可选的,如图4所示,本发明实施例中的装置还可以进一步包括:
数据获取模块404,用于根据所述可执行程序中的ARM指令,获取执行所述虚拟数据系统所需的访问内存和/或寄存器数据。例如,如图2所示,当指令执行模块执行的ARM指令(如:访问虚拟文件系统)需要访问内存时,指令执行模块可以从内存管理器中获取访问虚拟数据系统所需的内存,当指令执行模块执行的ARM指令(如:访问虚拟设备)需要访问寄存器时,指令执行模块可以从虚拟ARM-CPU中获取寄存器数据。
在本发明实施例中,首先通过不同的CPU平台运行ARM虚拟机,然后通过ARM虚拟机加载可执行程序,并根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,记录访问所述虚拟数据系统的行为参数;最后根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序,在程序检测过程中,不需要搭建硬件调试环境,通过ARM虚拟机自动执行ARM指令并获取检测结果,从而提高程序检测的效率,减少程序检测的成本。
请继续参考图6,图6是本发明实施例提出的另一种程序检测装置的结构示意图的结构示意图。如图6所示,该装置包括处理器601和接口电路602,图中还给出了存储器603和总线604,该处理器601、接口电路602和存储器603通过总线604连接并完成相互间的通信。
其中,处理器601用于执行如下操作步骤:
加载可执行程序,并获取所述可执行程序中的ARM指令;
根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数;
根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。
其中,处理器601用于执行如下操作步骤:
根据所述可执行程序中的ARM指令,获取执行所述虚拟数据系统所需的访问内存和/或寄存器数据。
其中,处理器601用于执行如下操作步骤:
判断所述访问所述虚拟数据系统的行为参数是否存在于预置的恶意行为序列中;
若所述访问所述虚拟数据系统的行为参数存在于所述预置的恶意行为序列中,则确定所述可执行程序为恶意程序。
其中,处理器601用于执行如下操作步骤:
获取访问所述ARM虚拟机中的虚拟数据系统的时长;
判断访问所述ARM虚拟机中的虚拟数据系统的时长是否小于预设阈值;
若访问所述ARM虚拟机中的虚拟数据系统的时长小于预设阈值,则确定所述ARM指令执行成功。
其中,处理器601用于执行如下操作步骤:
读取所述可执行程序中的字符数据,通过所述指令翻译器将所述字符数据翻译成ARM指令。
需要说明的是,这里的处理器601可以是一个处理元件,也可以是多个处理元件的统称。例如,该处理元件可以是中央处理器(Central Processing Unit,CPU),也可以是特定集成电路(Application Specific Integrated Circuit,ASIC),
该装置还可以包括输入输出装置,连接于总线604,以通过总线与处理器601等其它部分连接。该输入输出装置可以为操作人员提供一输入界面,以便操作人员通过该输入界面选择布控项,还可以是其它接口,可通过该接口外接其它设备。
或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)。
存储器603可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或应用程序运行装置运行所需要参数、数据等。且存储器603可以包括随机存储器(RAM),也可以包括非易失性存储器(non-volatilememory),例如磁盘存储器,闪存(Flash)等。
总线604可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线604可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例所提供的内容下载方法及相关设备、系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (13)
1.一种程序检测方法,其特征在于,所述方法应用于ARM虚拟机,所述方法包括:
加载可执行程序,并获取所述可执行程序中的ARM指令;
根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数;
根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。
2.如权利要求1所述的方法,其特征在于,所述根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数之前,还包括:
根据所述可执行程序中的ARM指令,获取执行所述虚拟数据系统所需的访问内存和/或寄存器数据。
3.如权利要求1所述的方法,其特征在于,所述根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序包括:
判断所述访问所述虚拟数据系统的行为参数是否存在于预置的恶意行为序列中;
若所述访问所述虚拟数据系统的行为参数存在于所述预置的恶意行为序列中,则确定所述可执行程序为恶意程序。
4.如权利要求1所述的方法,其特征在于,所述根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序之前,还包括:
获取访问所述ARM虚拟机中的虚拟数据系统的时长;
判断访问所述ARM虚拟机中的虚拟数据系统的时长是否小于预设阈值;
若访问所述ARM虚拟机中的虚拟数据系统的时长小于预设阈值,则确定所述ARM指令执行成功。
5.如权利要求1所述的方法,其特征在于,所述ARM虚拟机包括指令翻译器,所述获取所述可执行程序中的ARM指令包括:
读取所述可执行程序中的字符数据,通过所述指令翻译器将所述字符数据翻译成ARM指令。
6.如权利要求1-5任意一项所述的方法,其特征在于,所述虚拟数据系统包括虚拟进程、虚拟文件系统以及虚拟设备。
7.一种程序检测装置,其特征在于,所述装置包括:
信息加载模块,用于加载可执行程序,并获取所述可执行程序中的ARM指令;
信息记录模块,用于根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数;
信息确定模块,用于根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
数据获取模块,用于根据所述可执行程序中的ARM指令,获取执行所述虚拟数据系统所需的访问内存和/或寄存器数据。
9.如权利要求7所述的装置,其特征在于,所述信息确定模块包括:
信息判断单元,用于判断所述访问所述虚拟数据系统的行为参数是否存在于预置的恶意行为序列中;
信息确定单元,用于若所述访问所述虚拟数据系统的行为参数存在于所述预置的恶意行为序列中,则确定所述可执行程序为恶意程序。
10.如权利要求7所述的装置,其特征在于,
所述信息记录模块,还用于获取访问所述ARM虚拟机中的虚拟数据系统的时长;判断访问所述ARM虚拟机中的虚拟数据系统的时长是否小于预设阈值;若访问所述ARM虚拟机中的虚拟数据系统的时长小于预设阈值,则确定所述ARM指令执行成功。
11.如权利要求7所述的装置,其特征在于,所述ARM虚拟机包括指令翻译器,所述信息加载模块具体用于:
读取所述可执行程序中的字符数据,通过所述指令翻译器将所述字符数据翻译成ARM指令。
12.如权利要求7-11任意一项所述的装置,其特征在于,所述虚拟数据系统包括虚拟进程、虚拟文件系统以及虚拟设备。
13.一种程序检测装置,其特征在于,所述装置包括接口电路、存储器以及处理器,其中,存储器中存储一组程序代码,且处理器用于调用存储器中存储的程序代码,用于执行以下操作:
加载可执行程序,并获取所述可执行程序中的ARM指令;
根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数;
根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610377002.1A CN106709338A (zh) | 2016-05-30 | 2016-05-30 | 一种程序检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610377002.1A CN106709338A (zh) | 2016-05-30 | 2016-05-30 | 一种程序检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106709338A true CN106709338A (zh) | 2017-05-24 |
Family
ID=58940269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610377002.1A Pending CN106709338A (zh) | 2016-05-30 | 2016-05-30 | 一种程序检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106709338A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800569A (zh) * | 2018-12-29 | 2019-05-24 | 360企业安全技术(珠海)有限公司 | 程序鉴别方法及装置 |
CN109977633A (zh) * | 2019-03-28 | 2019-07-05 | 武汉斗鱼鱼乐网络科技有限公司 | 一种程序保护方法及相关装置 |
CN113098730A (zh) * | 2020-01-08 | 2021-07-09 | 中国移动通信有限公司研究院 | 一种服务器的测试方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183414A (zh) * | 2007-12-07 | 2008-05-21 | 白杰 | 一种程序检测的方法、装置及程序分析的方法 |
CN101848092A (zh) * | 2009-03-25 | 2010-09-29 | 华为技术有限公司 | 恶意代码检测方法和装置 |
CN102054149A (zh) * | 2009-11-06 | 2011-05-11 | 中国科学院研究生院 | 一种恶意代码行为特征提取方法 |
US20120144488A1 (en) * | 2010-12-01 | 2012-06-07 | Symantec Corporation | Computer virus detection systems and methods |
CN103078864A (zh) * | 2010-08-18 | 2013-05-01 | 北京奇虎科技有限公司 | 一种基于云安全的主动防御文件修复方法 |
CN103761479A (zh) * | 2014-01-09 | 2014-04-30 | 北京奇虎科技有限公司 | 恶意程序的扫描方法和装置 |
CN103914650A (zh) * | 2012-12-31 | 2014-07-09 | 腾讯科技(深圳)有限公司 | 病毒检测方法和装置 |
-
2016
- 2016-05-30 CN CN201610377002.1A patent/CN106709338A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183414A (zh) * | 2007-12-07 | 2008-05-21 | 白杰 | 一种程序检测的方法、装置及程序分析的方法 |
CN101848092A (zh) * | 2009-03-25 | 2010-09-29 | 华为技术有限公司 | 恶意代码检测方法和装置 |
CN102054149A (zh) * | 2009-11-06 | 2011-05-11 | 中国科学院研究生院 | 一种恶意代码行为特征提取方法 |
CN103078864A (zh) * | 2010-08-18 | 2013-05-01 | 北京奇虎科技有限公司 | 一种基于云安全的主动防御文件修复方法 |
US20120144488A1 (en) * | 2010-12-01 | 2012-06-07 | Symantec Corporation | Computer virus detection systems and methods |
CN103914650A (zh) * | 2012-12-31 | 2014-07-09 | 腾讯科技(深圳)有限公司 | 病毒检测方法和装置 |
CN103761479A (zh) * | 2014-01-09 | 2014-04-30 | 北京奇虎科技有限公司 | 恶意程序的扫描方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800569A (zh) * | 2018-12-29 | 2019-05-24 | 360企业安全技术(珠海)有限公司 | 程序鉴别方法及装置 |
CN109977633A (zh) * | 2019-03-28 | 2019-07-05 | 武汉斗鱼鱼乐网络科技有限公司 | 一种程序保护方法及相关装置 |
CN113098730A (zh) * | 2020-01-08 | 2021-07-09 | 中国移动通信有限公司研究院 | 一种服务器的测试方法及设备 |
CN113098730B (zh) * | 2020-01-08 | 2022-08-05 | 中国移动通信有限公司研究院 | 一种服务器的测试方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2514141C1 (ru) | Способ эмуляции вызовов системных функций для обхода средств противодействия эмуляции | |
US10176329B2 (en) | Systems and methods for detecting unknown vulnerabilities in computing processes | |
RU2553056C2 (ru) | Система и способ сохранения состояния эмулятора и его последующего восстановления | |
CN104978213B (zh) | 实现应用安装包的链接获取方法和装置 | |
CN103778373A (zh) | 病毒检测方法及装置 | |
CN112840341B (zh) | 用于探测与安全相关的数据流的方法 | |
CN112996020B (zh) | 一种基于蓝牙的自动化测试方法、装置及蓝牙测试终端 | |
CN106709338A (zh) | 一种程序检测方法及装置 | |
CN113268684A (zh) | 数据处理方法、装置、终端设备以及存储介质 | |
CN114065196A (zh) | Java内存马检测方法、装置、电子设备与存储介质 | |
CN116166525A (zh) | 一种测试脚本的生成方法及装置 | |
US10503430B2 (en) | Method and device for clearing data and electronic device | |
CN110414220B (zh) | 沙箱内程序动态执行过程中的操作文件提取方法及装置 | |
CN111782474A (zh) | 日志处理方法、装置、电子设备和介质 | |
CN111310160A (zh) | Windows自动登陆布署方法、装置、计算机设备及存储介质 | |
CN115495363A (zh) | 一种软件测试方法、电子设备及可读存储介质 | |
US10922249B2 (en) | Input/output control code filter | |
CN107274589B (zh) | 一种金融自助终端硬件设备的访问方法、系统及终端设备 | |
CN107742080B (zh) | 针对虚拟化环境的漏洞挖掘方法及装置 | |
CN108959070B (zh) | 一种基于代码对象的Python钩子函数方法和装置 | |
CN111885063A (zh) | 开源系统访问管控方法、装置、设备及存储介质 | |
CN111142873A (zh) | 浏览器的访问方法、装置、计算机设备和存储介质 | |
US9697018B2 (en) | Synthesizing inputs to preserve functionality | |
CN107968997A (zh) | 一种移动终端识别方法、装置、网关设备及存储介质 | |
CN103914650A (zh) | 病毒检测方法和装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170524 |