一种代码检测方法、装置、电子设备及存储介质与流程

文档序号:16070340发布日期:2018-11-24 13:08阅读:218来源:国知局

本发明涉及通信技术领域,尤其涉及一种代码检测方法、装置、电子设备及存储介质。

背景技术

目前病毒检测技术大都以静态检测和动态行为分析为主。其中,静态检测为根据代码的特征来区分是否为恶意代码。动态行为分析为对代码对应的行为进行分析来区分是否为恶意代码,例如,在沙箱中执行代码,在执行代码过程中,如果出现异常行为,则确定代码为恶意代码。无论是静态检测还是动态行为分析,都是针对承载在实体介质(如,光盘、移动硬盘等)上的代码,并且在代码执行前,对代码进行分析。

目前,高级恶意代码威胁都采用无实体加载代码的方式,即采用一个无害的loader程序,再根据远端的配置在内存中自动执行恶意代码,从而逃过了针对代码的静态检测和动态行为分析。因此,对于支持这种无实体加载代码的方式的设备而言,存在较高的安全风险。



技术实现要素:

有鉴于此,本发明实施例提供一种代码检测方法、装置、电子设备及存储介质,可以针对通过无实体加载代码的方式加载的代码进行检测,降低支持无实体加载代码的方式的设备的安全风险。

在第一方面,本发明实施例提供一种代码检测方法,该方法包括:

当监测到系统分配第一内存时,确定所述第一内存是否具有可执行权限;

若所述第一内存具有可执行权限,分析所述第一内存中存储的第一代码的第一加载过程;

若所述第一加载过程与所述系统对应的标准加载过程不同,记录所述第一内存的地址,并对所述第一代码进行病毒检测,得到第一检测结果;

若所述第一检测结果为所述第一代码为恶意代码,则终止执行所述第一代码,并根据记录的所述第一内存的地址删除所述第一内存中存储的所述第一代码。

优选的,所述分析所述第一内存中存储的第一代码的第一加载过程,包括:分析所述第一加载过程对应的堆栈;若所述堆栈中记录函数调用顺序与所述系统对应的代码加载时的标准函数调用顺序相同,则确定所述第一加载过程与所述系统对应的标准加载过程相同;若所述堆栈中记录函数调用顺序与所述系统对应的代码加载时的标准函数调用顺序不同,则确定所述第一加载过程与所述系统对应的标准加载过程不同。

优选的,所述方法还包括:若所述第一检测结果为所述第一代码为非恶意代码,则将所述第一代码中的认证信息添加至白名单。

优选的,所述记录所述第一内存的地址,并对所述第一代码进行病毒检测,得到第一检测结果,包括:若所述白名单中不包括所述第一代码中的认证信息,则记录所述第一内存的地址,并对所述第一代码进行病毒检测,得到第一检测结果。

优选的,所述方法还包括:当监测到系统准备释放第二内存时,确定所述第二内存是否具有可执行权限;若所述第二内存不具有可执行权限,则释放所述第二内存;若所述第二内存具有可执行权限,确定是否记录过所述第二内存的地址;若记录过所述第二内存的地址,则释放所述第二内存;若未记录过所述第二内存的地址,则在释放所述第二内存之前,记录所述第二内存的地址,并对所述第二内存中存储的第二代码进行病毒检测,得到检测结果。

优选的,在所述记录所述第一内存的地址之后,所述方法还包括:输出用于提示可疑代码的提示信息,所述提示信息包括:所述第一内存的地址。

在第二方面,本发明实施例提供一种代码检测装置,该装置包括:

确定单元,用于当监测到系统分配第一内存时,确定所述第一内存是否具有可执行权限;

分析单元,用于若所述第一内存具有可执行权限,分析所述第一内存中存储的第一代码的第一加载过程;

检测单元,用于若所述第一加载过程与所述系统对应的标准加载过程不同,记录所述第一内存的地址,并对所述第一代码进行病毒检测,得到第一检测结果;

终止单元,用于若所述第一检测结果为所述第一代码为恶意代码,则终止执行所述第一代码,并根据记录的所述第一内存的地址删除所述第一内存中存储的所述第一代码。

优选的,所述分析单元具体用于:分析所述第一加载过程对应的堆栈;若所述堆栈中记录函数调用顺序与所述系统对应的代码加载时的标准函数调用顺序相同,则确定所述第一加载过程与所述系统对应的标准加载过程相同;若所述堆栈中记录函数调用顺序与所述系统对应的代码加载时的标准函数调用顺序不同,则确定所述第一加载过程与所述系统对应的标准加载过程不同。

优选的,所述装置还包括:添加单元,用于若所述第一检测结果为所述第一代码为非恶意代码,则将所述第一代码中的认证信息添加至白名单。

优选的,所述检测单元具体用于:若所述第一加载过程与所述系统对应的标准加载过程不同且所述白名单中不包括所述第一代码中的认证信息,则记录所述第一内存的地址,并对所述第一代码进行病毒检测,得到第一检测结果。

优选的,所述确定单元,还用于当监测到系统准备释放第二内存时,确定所述第二内存是否具有可执行权限;所述装置还包括:释放单元,用于若所述第二内存不具有可执行权限,则释放所述第二内存;所述确定单元,还用于若所述第二内存具有可执行权限,确定是否记录过所述第二内存的地址;所述释放单元,还用于若记录过所述第二内存的地址,则释放所述第二内存;所述检测单元还用于,若未记录过所述第二内存的地址,则在释放所述第二内存之前,记录所述第二内存的地址,并对所述第二内存中存储的第二代码进行病毒检测,得到检测结果。

优选的,所述装置还包括:输出单元,用于在所述记录所述第一内存的地址之后,输出用于提示可疑代码的提示信息,所述提示信息包括:所述第一内存的地址。

在第三方面,本发明实施例提供一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述第一方面中所述的代码检测方法。

在第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述第一方面所述的代码检测方法。

本发明实施例提供的一种代码检测方法、装置、电子设备及存储介质,可以在确定系统分配了具有可执行权限的内存后,根据加载过程判断当前的加载方式,通常如果是无实体加载代码,则代码的加载过程与系统对应的标准加载过程是不同的,因此如果当前的加载过程与系统对应的标准加载过程不同,便可以确定当前的加载方式即为无实体加载,从而可以针对通过无实体加载代码的方式加载的代码进行检测,当检测出代码为恶意代码时,终止执行该代码,从而降低支持无实体加载代码的方式的设备的安全风险。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明的实施例提供的一种代码检测方法的流程示意图;

图2为本发明的实施例提供的另一种代码检测方法的流程示意图;

图3为本发明的实施例提供的又一种代码检测方法的流程示意图;

图4为本发明的实施例提供的一种代码检测装置的结构示意图;

图5为本发明的实施例提供的另一种代码检测装置的结构示意图;

图6为本发明的实施例提供的又一种代码检测装置的结构示意图;

图7为本发明的实施例提供的再一种代码检测装置的结构示意图;

图8为本发明电子设备一个实施例的结构示意图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1为本发明的实施例提供的一种代码检测方法的流程示意图。该代码检测方法可以应用于电子设备。

如图1所示,本实施例的代码检测方法可以包括:

步骤101,当监测到系统分配第一内存时,确定该第一内存是否具有可执行权限。

若第一内存具有可执行属性,则执行步骤102;若第一内存从分配到被释放一直不具有可执行属性,则结束本流程。

在一个例子中,系统在分配内存时会调用virtualalloc函数,因此当检测到系统调用virtualalloc函数时,则可确定系统分配了内存。并且如果该内存属性包括page-execute、page-execute-read、page-execute-readwrite、page-execute-writecopy中的任意一种,则确定该内存具有可执行权限,否则,确定该内存不具有可执行权限。

在一个例子中,系统在调用virtualalloc函数分配内存时,可能分配的内存不具有可执行权限,但是系统可能会在调用virtualalloc函数之后,通过调用virtualprotect函数来修改该内存的可执行权限,即将该内存的执行权限从不具有修改为具有。也就是说,当检测到系统调用virtualalloc函数之后,如果当前内存不具有可执行权限,还需要进行针对该内存进行检测,如果检测到系统通用针对该内存的virtualprotect函数,再次判断该内存属性包括page_execute、page_execute_read、page_execute_readwrite、page_execute_writecopy中的任意一种,则确定该内存具有可执行权限,否则,确定该内存不具有可执行权限。

步骤102,分析该第一内存中存储的第一代码的第一加载过程。

在一个例子中,步骤102可以具体包括:分析该第一加载过程对应的堆栈;若该堆栈中记录函数调用顺序与系统对应的代码加载时的标准函数调用顺序相同,则确定该第一加载过程与系统对应的加载代码时的标准加载过程相同;若该堆栈中记录函数调用顺序与系统对应的代码加载时的标准函数调用顺序不同,则确定该第一加载过程与系统对应的标准加载过程不同。

需要说明的是,通常如果是无实体加载代码,则代码的加载过程与系统对应的标准加载过程是不同的,而代码加载过程对应的堆栈中记录的函数调用顺序可以很好的反映出代码的加载过程,因此第一加载过程对应的堆栈中记录函数调用顺序与系统对应的代码加载时的标准函数调用顺序不同,则可以确定该第一加载过程与系统对应的标准加载过程不同,并确定第一加载过程为无实体加载代码的过程。

还需要说明的是,不同系统对应的标准加载过程可能不同,但不同系统对应的标准加载过程均可以通过对系统进行分析得到,该分析过程可采用现有技术,在此不再赘述。

在一个具体的例子中,以windows10系统为例,windows10系统的标准加载过程对应的堆栈中记录的内容,如下:

“ntd11_77cc0000!ntallocatevirtualmemory

ntd11_77cc0000!rtlcreateheap+0x36d

ntd11_77cc0000!rtldebugcreateheap+0x21f

ntd11_77cc0000!rtlcreatheap+0x62a8e

kernelbase!heapcreat+0x45

msvcrt!_heap_init+0x1b

msvcrt!core_crt_dll_init+0xd0

msvcrt!_crtdll_init+0x13

ntd11_77cc0000!ldrxcallinitroutine+0x16

ntd11_77cc0000!ldrpcallinitroutine+0x7f

ntd11_77cc0000!ldrpinitializenode+0x10e

ntd11_77cc0000!ldrpinitializegraphrecurse+0x5d

ntd11_77cc0000!ldrpinitializegraphrecurse+0x7c

ntd11_77cc0000!ldrpinitializegraphrecurse+0x7c

ntd11_77cc0000!ldrppreparemoduleforexecution+0x8f

ntd1_77cc0000!ldrploaddllinternal+0x128

ntd11_77cc0000!ldrploaddll+0xa2

ntd11_77cc0000!ldrloaddll+0x7e

kernelbase!loadlibraryexw+0x144

kernelbase!loadlibraryw+0x11”

在windows10系统下,无实体加载代码的加载过程对应的堆栈中记录的内容,如下:

“ntd11_77cc0000!ntallocatevirtualmemory

kernelbase!virtualalloc+0x41

loadertest!wmain+0x34

loadertest!_tmaincrtstartup+0x1a8

loadertest!wmaincrtstartup+0xf

kernel32!basethreadinitthunk+0x24

ntd11_77cc0000!_rtluserthreadstart+0x2f

ntd11_77cc0000!_rtluserthreadstart+0x1b”

其中,ntdll-77cc000,kernelbase,msvcrt,kernel32表示系统空间,loadertest表示用户空间,!后面的内容表示某函数在相应的空间中的地址,即通过该地址可以唯一表示一个函数。从上述两个具体的堆栈中记录的函数地址顺序可以分别确定出windows10系统的标准加载过程和无实体加载代码的加载过程的函数调用顺序。由此可以很直观的看出,windows10系统的标准加载过程和无实体加载代码的加载过程是不同的。因此可以通过分析代码的加载过程确定此过程是否是无实体加载代码的过程,即若加载过程与windows10系统的标准加载过程不同,就确定该加载过程为无实体加载代码的过程。

为了可以针对通过无实体加载代码的方式加载的代码进行检测,若第一加载过程与系统对应的标准加载过程不同,则执行步骤103;若第一加载过程与系统对应的标准加载过程相同,则说明是正常加载过程,结束本流程。

步骤103,若第一加载过程与系统对应的标准加载过程不同,记录该第一内存的地址,并对该第一代码进行病毒检测,得到第一检测结果。

在一个例子中,在记录该第一内存的地址之后,该方法还可以包括:输出用于提示可疑代码的提示信息,该提示信息包括:该第一内存的地址。这样可以在进行病毒检测的同时,由人工提前终止执行第一代码或释放该内存,以提高设备的安全性。

针对第一检测结果,若第一检测结果为该第一代码为恶意代码,则执行步骤104。若第一检测结果为非恶意代码,则结束本流程。

步骤104,终止执行该第一代码,并根据记录的第一内存的地址删除第一内存中存储的第一代码。

需要说明的是,步骤102-步骤104在第一代码拷贝至第一内存之后执行,例如,通常在系统调用针对第一内存的virtualprotect函数之后执行步骤102-步骤104。但是,系统在分配了具有可执行权限的第一内存之后,第一代码可能没有及时存储至第一内存中,因此在确定第一内存具有可执行权限后,可能存在获取不到第一代码的情况,此时默认该第一内存中的第一代码为非恶意代码,即不执行步骤102-步骤104,直接结束本流程。例如,系统调用神队第一内存的virtualprotect函数之后,在预设时长内,第一内存中没有存储任何代码,则默认第一内存中的代码为非恶意代码,结束本流程。

通过利用本发明实施例提供的代码检测方法,可以在确定系统分配了具有可执行权限的内存后,根据加载过程判断当前的加载方式,通常如果是无实体加载代码,则代码的加载过程与系统对应的标准加载过程是不同的,因此如果当前的加载过程与系统对应的标准加载过程不同,便可以确定当前的加载方式即为无实体加载,从而可以针对通过无实体加载代码的方式加载的代码进行检测,当检测出代码为恶意代码时,终止执行该代码,从而降低支持无实体加载代码的方式的设备的安全风险。

图2为本发明的实施例提供的另一种代码检测方法的流程示意图。该代码检测方法可以应用于电子设备。

如图2所示,本实施例的代码检测方法可以包括:

步骤201,当监测到系统分配第一内存时,确定该第一内存是否具有可执行权限。

若第一内存具有可执行属性,则执行步骤202;若第一内存从分配到被释放一直不具有可执行属性,则结束本流程。

在一个例子中,系统在分配内存时会调用virtualalloc函数,因此当检测到系统调用virtualalloc函数时,则可确定系统分配了内存。并且如果该内存属性包括page-execute、page-execute-read、page-execute-readwrite、page-execute-writecopy中的任意一种,则确定该内存具有可执行权限,否则,确定该内存不具有可执行权限。

在一个例子中,系统在调用virtualalloc函数分配内存时,可能分配的内存不具有可执行权限,但是系统可能会在调用virtualalloc函数之后,通过调用virtualprotect函数来修改该内存的可执行权限,即将该内存的执行权限从不具有修改为具有。也就是说,当检测到系统调用virtualalloc函数之后,如果当前内存不具有可执行权限,还需要进行针对该内存进行检测,如果检测到系统通用针对该内存的virtualprotect函数,再次判断该内存属性包括page-execute、page-execute-read、page-execute-readwrite、page-execute-writecopy中的任意一种,则确定该内存具有可执行权限,否则,确定该内存不具有可执行权限。

步骤202,分析该第一内存中存储的第一代码的第一加载过程。

在一个例子中,步骤202可以具体包括:分析该第一加载过程对应的堆栈;若该堆栈中记录函数调用顺序与系统对应的代码加载时的标准函数调用顺序相同,则确定该第一加载过程与系统对应的加载代码时的标准加载过程相同;若该堆栈中记录函数调用顺序与系统对应的代码加载时的标准函数调用顺序不同,则确定该第一加载过程与系统对应的标准加载过程不同。

需要说明的是,通常如果是无实体加载代码,则代码的加载过程与系统对应的标准加载过程是不同的,而代码加载过程对应的堆栈中记录的函数调用顺序可以很好的反映出代码的加载过程,因此第一加载过程对应的堆栈中记录函数调用顺序与系统对应的代码加载时的标准函数调用顺序不同,则可以确定该第一加载过程与系统对应的标准加载过程不同,并确定第一加载过程为无实体加载代码的过程。

还需要说明的是,不同系统对应的标准加载过程可能不同,但不同系统对应的标准加载过程均可以通过对系统进行分析得到,该分析过程可采用现有技术,在此不再赘述。

为了可以及针对通过无实体加载代码的方式加载的代码进行检测,若第一加载过程与系统对应的标准加载过程不同,则执行步骤203;若第一加载过程与系统对应的标准加载过程相同,则说明是正常加载过程,结束本流程。

步骤203,若第一加载过程与系统对应的标准加载过程不同,确定白名单中是否包括第一代码中的认证信息。

如果白名单中包括第一代码中的认证信息,说明该代码被检测过且已确定为非恶意代码,则可以结束本流程;如果白名单中不包括第一代码中的认证信息,说明该代码为恶意代码或者未被检测过,因此执行步骤204。

步骤204,记录该第一内存的地址,并对该第一代码进行病毒检测,得到第一检测结果。

在一个例子中,在记录该第一内存的地址之后,该方法还可以包括:输出用于提示可疑代码的提示信息,该提示信息包括:该第一内存的地址。这样可以在进行病毒检测的同时,由人工提前终止执行第一代码或释放该内存,以提高设备的安全性。

针对第一检测结果,若第一检测结果为该第一代码为恶意代码,则执行步骤205。若第一检测结果为非恶意代码,则执行步骤206。

步骤205,终止执行该第一代码,并根据记录的第一内存的地址删除第一内存中存储的第一代码。

步骤206,将该第一代码中的认证信息添加至白名单。

需要说明的是,步骤202-步骤206在第二代码拷贝至第二内存之后执行,例如,通常在系统调用针对第二内存的virtualprotect函数之后执行步骤202-步骤206。但是,系统在分配了具有可执行权限的第二内存之后,第二代码可能没有及时存储至第二内存中,因此在确定第二内存具有可执行权限后,可能存在获取不到第二代码的情况,此时默认该第二内存中的第二代码为非恶意代码,即不执行步骤202-步骤206,直接结束本流程。例如,系统调用针对第二内存的virtualprotect函数之后,在预设时长内,第二内存中没有存储任何代码,则默认第二内存中的代码为非恶意代码,结束本流程。

通过利用本发明实施例提供的代码检测方法,可以在确定系统分配了具有可执行权限的内存后,根据加载过程判断当前的加载方式,通常如果是无实体加载代码,则代码的加载过程与系统对应的标准加载过程是不同的,因此如果当前的加载过程与系统对应的标准加载过程不同,便可以确定当前的加载方式即为无实体加载,从而可以针对通过无实体加载代码的方式加载的代码进行检测,当检测出代码为恶意代码时,终止执行该代码,从而降低支持无实体加载代码的方式的设备的安全风险。

图3为本发明的实施例提供的又一种代码检测方法的流程示意图。该代码检测方法可以应用于电子设备。

如图3所示,本实施例的代码检测方法可以包括:

步骤301,当监测到系统准备释放第二内存时,确定该第二内存是否具有可执行权限。

其中,第二内存为系统已分配的任一内存。

基于此,如果该第二内存不具有可执行权限,则执行步骤302;如果该第二内存具有可执行权限,则执行步骤303。

在一个例子中,系统在准备释放内存时会调用virtualfree函数,因此当检测到系统调用针对第二内存的virtualfree函数时,则可确定系统准备释放第二内存。

步骤302,释放该第二内存。

步骤303,确定是否记录过该第二内存的地址。

如果记录过该第二内存的地址,说明该第二内存中存储的第二代码被检测过,直接释放第二内存即可,则执行步骤302;如果未记录过该第二内存的地址,说明该第二内存中存储的第二代码被检测过,需要对第二内存中存储的第二代码进行检测,则执行步骤304。

步骤304,记录该第二内存的地址,并对该第二内存中存储的第二代码进行病毒检测,得到检测结果。

执行步骤304之后,再执行步骤302。

需要说明的是,系统在分配了具有可执行权限的内存之后,代码可能没有及时存储至内存中,因此在确定内存具有可执行权限后,可能存在获取不到代码的情况,此时默认该内存中的代码为非恶意代码。但在此之后,可能会有代码存储到该内存中,而这些代码是没有被检测过的,所以需要一个对代码进行补充检测的机制,即为图3所示的方法。图3所示的方法可以与图1或图2所示的方法,结合使用。

图4为本发明实施例提供的一种代码检测装置的结构示意图。该装置可以应用于电子设备。

如图4所示,本实施例的装置可以包括:确定单元401,分析单元402,检测单元403及终止单元404。

其中,确定单元401用于当监测到系统分配第一内存时,确定第一内存是否具有可执行权限。

分析单元402用于若第一内存具有可执行权限,分析第一内存中存储的第一代码的第一加载过程。

检测单元403用于若第一加载过程与系统对应的标准加载过程不同,记录第一内存的地址,并对第一代码进行病毒检测,得到第一检测结果。

终止单元404用于若第一检测结果为所述第一代码为恶意代码,则终止执行第一代码,并根据记录的第一内存的地址删除第一内存中存储的第一代码。

优选的,分析单元402具体用于分析第一加载过程对应的堆栈;若该堆栈中记录函数调用顺序与系统对应的代码加载时的标准函数调用顺序相同,则确定第一加载过程与所述系统对应的标准加载过程相同;若该堆栈中记录函数调用顺序与系统对应的代码加载时的标准函数调用顺序不同,则确定第一加载过程与系统对应的标准加载过程不同。

优选的,如图5所示,该装置还包括:添加单元405。该添加单元405用于若第一检测结果为第一代码为非恶意代码,则将第一代码中的认证信息添加至白名单。

优选的,检测单元403具体用于若第一加载过程与系统对应的标准加载过程不同且白名单中不包括第一代码中的认证信息,则记录第一内存的地址,并对第一代码进行病毒检测,得到第一检测结果。

优选的,如图6所示,该装置还可以包括:释放单元406。相应的,确定单元401还用于当监测到系统准备释放第二内存时,确定第二内存是否具有可执行权限。释放单元406用于若第二内存不具有可执行权限,则释放第二内存。确定单元401还用于若所述第二内存具有可执行权限,确定是否记录过第二内存的地址。释放单元406还用于若记录过第二内存的地址,则释放第二内存。检测单元403还用于若未记录过所述第二内存的地址,则在释放第二内存之前,记录第二内存的地址,并对第二内存中存储的第二代码进行病毒检测,得到检测结果。

优选的,如图7所示,该装置还包括:输出单元407。该输出单元407用于在记录第一内存的地址之后,输出用于提示可疑代码的提示信息,该提示信息包括:第一内存的地址。

本发明实施例提供的一种代码检测装置,可以在确定系统分配了具有可执行权限的内存后,根据加载过程判断当前的加载方式,通常如果是无实体加载代码,则代码的加载过程与系统对应的标准加载过程是不同的,因此如果当前的加载过程与系统对应的标准加载过程不同,便可以确定当前的加载方式即为无实体加载,从而可以针对通过无实体加载代码的方式加载的代码进行检测,当检测出代码为恶意代码时,终止执行该代码,从而降低支持无实体加载代码的方式的设备的安全风险。

本发明实施例还提供一种电子设备。图8为本发明电子设备一个实施例的结构示意图,可以实现本发明图1、图2或图3所示实施例的流程,如图8所示,上述电子设备可以包括:壳体81、处理器82、存储器83、电路板84和电源电路85,其中,电路板84安置在壳体81围成的空间内部,处理器82和存储器83设置在电路板84上;电源电路85,用于为上述电子设备的各个电路或器件供电;存储器83用于存储可执行程序代码;处理器82通过读取存储器83中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的代码检测方法。

该电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放模块(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子设备。

本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一实施例所述的代码检测方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1