一种程序检测方法及装置制造方法及图纸

技术编号:15437788 阅读:31 留言:0更新日期:2017-05-26 03:47
本发明专利技术实施例公开了一种程序检测方法,所述方法应用于ARM虚拟机,包括:加载可执行程序,并获取所述可执行程序中的ARM指令;根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数;根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。本发明专利技术实施例还公开了一种程序检测装置。采用本发明专利技术实施例,可以通过不同的CPU平台执行ARM程序,实现程序自动检测,提高程序检测的效率。

Program detecting method and device

The embodiment of the invention discloses a program detection method, including the method is applied to the ARM virtual machine, loading the executable program, and access to the executable program ARM instructions; according to the executable program ARM instructions, access to the ARM virtual machine in the virtual data system. And record the behavior parameters of the virtual data access system; according to the behavior parameters of the access to the virtual data system, determine the executable program is malicious programs. The embodiment of the invention also discloses a program detecting device. With the embodiment of the invention, the ARM program can be executed by different CPU platforms, and the program automatic detection can be realized, and the efficiency of the program detection can be improved.

【技术实现步骤摘要】
一种程序检测方法及装置
本专利技术涉及电子
,尤其涉及一种程序检测方法及装置。
技术介绍
程序检测是指对一个完成全部或部分功能模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行。安全人员一般可以通过程序行为判定一个程序是否为恶意程序,比如网络操作、文件操作,判定的方法包括静态反汇编技术和动态调试(控制程序执行、记录中间过程)等等。随着可执行程序(由操作系统进行加载执行的文件)的保护技术的发展,这种文件保护技术被恶意程序使用,导致安全人员很难通过静态反汇编的方法判定程序是否是恶意程序,只能通过动态调试的手段来对程序进行检测,在动态调试过程中,还原被保护的核心代码,获取程序的行为,进而判定该程序是否为恶意程序。但是,动态调试需要连接手机,部署调试环境,导致调试效率低,分析成本高。
技术实现思路
本专利技术实施例提供一种程序检测方法及装置。可以通过不同的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指令;根据所述可执行程序中的ARM指令,访问所述ARM虚拟机中的虚拟数据系统,并记录访问所述虚拟数据系统的行为参数;根据所述访问所述虚拟数据系统的行为参数,确定所述可执行程序的是否为恶意程序。

【技术特征摘要】
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指令;信息...

【专利技术属性】
技术研发人员:白子潘
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1