1.一种用于检测从存储装置访问数据的潜在恶意代码的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有包含在其中的计算机可读程序代码,所述计算机可读程序代码在被执行时执行操作,所述操作包括:
处理应用程序代码中的指定类型的命令;
响应于处理所述指定类型的命令而执行陷阱代码以分配陷阱地址范围;
执行所述应用程序代码中的所述指定类型的命令;
确定访问应用程序是否访问所述陷阱地址范围;以及
响应于确定所述访问应用程序访问了陷阱地址范围,执行以下中的至少一个:发送所述访问应用程序包括潜在恶意代码的通知,监视所述访问应用程序的执行,以及限制所述访问应用程序的执行。
2.根据权利要求1所述的计算机程序产品,其中所述陷阱地址范围不被正在执行的所述应用程序代码访问。
3.根据权利要求1所述的计算机程序产品,其中所述指定类型的命令包括从用户模式切换到内核模式以访问内核地址的命令,并且其中所述陷阱地址范围被定义在内核地址空间中。
4.根据权利要求3所述的计算机程序产品,其中所述操作还包括:
响应于所述访问应用程序访问所述内核地址空间中未映射到高速缓存中的有效数据的地址表中的地址,接收段错误,其中响应于接收到所述段错误,执行确定所述访问应用程序是否已经访问所述陷阱地址范围。
5.根据权利要求4所述的计算机程序产品,其中所述指定类型的命令包括系统调用,其中所述系统调用在执行所述陷阱代码之后被执行。
6.如权利要求1所述的计算机程序产品,其中所述陷阱地址范围映射到地址表中的无效物理地址,其中所述确定所述访问应用程序是否已经访问所述陷阱地址范围包括当所述访问应用程序访问映射到无效位置的所述陷阱地址范围时检测生成的故障。
7.如权利要求1所述的计算机程序产品,其中执行所述陷阱代码将所述陷阱地址范围映射到地址表中,其中确定所述访问应用程序是否已经访问所述陷阱地址范围包括检测所述访问应用程序尝试使用来自所述陷阱地址范围的陷阱数据来访问计算资源。
8.根据权利要求1所述的计算机程序产品,其中响应于执行所述陷阱代码的多个实例而分配多个陷阱地址范围。
9.根据权利要求1所述的计算机程序产品,其中执行所述应用程序代码的所述处理器推测性地执行所述应用程序代码的多个条件分支的两个分支,其中取决于用于确定遍历所述多个条件分支中的哪些条件分支的条件而维持所述多个条件分支中仅一个条件分支的结果。
10.根据权利要求9所述的计算机程序产品,其中当处理所述多个条件分支时,所述陷阱代码由处理器推测性地在所述多个条件分支的一个条件分支中执行。
11.一种用于检测从存储装置访问数据的潜在恶意代码的系统,包括:
处理器;以及
具有计算机可读程序的计算机可读存储介质,所述计算机可读程序在由所述处理器执行时执行操作,所述操作包括:
处理应用程序代码中的指定类型的命令;
响应于处理所述指定类型的命令而执行陷阱代码以分配陷阱地址范围;
执行所述应用程序代码中的所述指定类型的命令;
确定访问应用程序是否访问所述陷阱地址范围;以及
响应于确定所述访问应用程序访问了所述陷阱地址范围,执行以下中的至少一个:发送所述访问应用程序包括潜在恶意代码的通知,监视所述访问应用程序的执行,以及限制所述访问应用程序的执行。
12.根据权利要求11所述的系统,其中所述指定类型的命令包括从用户模式切换到内核模式以访问内核地址的命令,并且其中所述陷阱地址范围被定义在内核地址空间中。
13.根据权利要求12所述的系统,其中所述操作还包括:
响应于所述访问应用程序访问所述内核地址空间中的未映射到高速缓存中的有效数据的地址表的地址,接收段错误,其中响应于接收到所述段错误,执行确定所述访问应用程序是否已经访问所述陷阱地址范围。
14.根据权利要求13所述的系统,其中所述指定类型的命令包括系统调用,其中所述系统调用在执行所述陷阱代码之后被执行。
15.如权利要求11所述的系统,其中所述陷阱地址范围映射到地址表中的无效物理地址,其中所述确定所述访问应用程序是否已经访问所述陷阱地址范围包括当所述访问应用程序访问映射到无效位置的所述陷阱地址范围时检测生成的故障。
16.如权利要求11所述的系统,其中执行所述陷阱代码将所述陷阱地址范围映射到地址表中,其中确定所述访问应用程序是否已经访问所述陷阱地址范围包括检测所述访问应用程序尝试使用来自所述陷阱地址范围的陷阱数据来访问计算资源。
17.根据权利要求11所述的系统,其中执行所述应用程序代码的所述处理器推测性地执行所述应用程序代码的多个条件分支的两个分支,其中取决于用于确定遍历所述多个条件分支中的哪些条件分支的条件而维持所述多个条件分支中仅一个条件分支的结果。
18.根据权利要求17所述的系统,其中当处理所述多个条件分支时,所述陷阱代码由处理器推测性地在所述多个条件分支的一个条件分支中执行。
19.一种用于检测从存储装置访问数据的潜在恶意代码的方法,包括:
处理应用程序代码中的指定类型的命令;
响应于处理所述指定类型的命令而执行陷阱代码以分配陷阱地址范围;
执行所述应用程序代码中的所述指定类型的命令;
确定访问应用程序是否访问所述陷阱地址范围;以及
响应于确定所述访问应用程序访问了所述陷阱地址范围,执行以下中的至少一个:发送所述访问应用程序包括潜在恶意代码的通知,监视所述访问应用程序的执行,以及限制所述访问应用程序的执行。
20.根据权利要求19所述的方法,其中所述指定类型的命令包括从用户模式切换到内核模式以访问内核地址的命令,并且其中所述陷阱地址范围是在内核地址空间中定义的。
21.根据权利要求20所述的方法,还包括:
响应于所述访问应用程序访问所述内核地址空间中的未映射到高速缓存中的有效数据的地址表的地址,接收段错误,其中响应于接收到所述段错误,执行确定所述访问应用程序是否已经访问所述陷阱地址范围。
22.根据权利要求21所述的方法,其中所述指定类型的命令包括系统调用,其中所述系统调用在执行所述陷阱代码之后执行。
23.如权利要求19所述的方法,其中所述陷阱地址范围映射到地址表中的无效物理地址,其中所述确定所述访问应用程序是否已经访问所述陷阱地址范围包括当所述访问应用程序访问映射到无效位置的所述陷阱地址范围时检测生成的故障。
24.如权利要求19所述的方法,其中执行所述陷阱代码将所述陷阱地址范围映射到地址表中,其中所述确定所述访问应用程序是否已经访问所述陷阱地址范围包括检测所述访问应用程序尝试使用来自所述陷阱地址范围的陷阱数据来访问计算资源。
25.根据权利要求19所述的方法,其中执行所述应用程序代码的所述处理器推测性地执行所述应用程序代码的多个条件分支的两个分支,其中取决于用于确定遍历所述多个条件分支中的哪些条件分支的条件而维持所述多个条件分支中的仅一个条件分支的结果。
26.根据权利要求25所述的方法,其中当处理所述多个条件分支时,所述捕获代码由处理器推测性地在所述多个条件分支的一个条件分支中执行。