本公开总体上涉及包括处理器或微控制器的计算机处理系统,并且更具体地涉及用于限制由特定软件模块对计算机处理系统的资源的访问的系统和方法。
背景技术:
1、已知提供处理环境,其中应用可以被赋予不同级别的特权以用于访问资源,诸如硬件资源,例如外围设备或特定存储器区域,或者其他资源,例如软件服务、加密服务、特定参数或机密数据。
2、具有用于访问给定受限资源所需的特权级别的可信软件应用可以使用直接调用来直接访问它。对照而言,如果不具有所需特权级别的不可信应用希望访问受限资源,则可能需要执行中断应用执行的系统调用,并且请求具有更高特权级别的系统(诸如操作系统)代表不可信应用访问资源。
技术实现思路
1、根据一个实施例,一种计算设备包括被配置为存储软件应用的至少一个存储器设备、经由总线被耦合到至少一个存储器设备并被配置为执行软件应用的处理设备、以及能够通过软件应用中的代码的执行被调用的一个或多个资源。该至少一个存储器设备、或者计算设备的另外的存储器设备被配置为存储重定向表,该重定向表基于对所述资源中的一个资源的调用的调用方地址和被调用地址中的任一者或两者指示调用将被转发到的替代地址。该计算设备还包括软件,软件用于拦截来自软件应用的调用并且基于重定向表选择性地重定向该调用。在一个实施例中,其中一个或多个资源包括一个或多个硬件资源,该一个或多个硬件资源诸如计算设备的外围设备。在一个实施例中,一个或多个资源包括至少一个存储器设备的一个或多个存储器区域。在一个实施例中,用于拦截调用的软件被配置为将调用的调用方地址与在重定向表中被指示的多个参考调用方地址进行比较,并且在命中的情况下,将调用重定向到重定向表中的与调用的参考调用方地址相关联的替代地址。在一个实施例中,用于拦截调用的软件被配置为将调用的被调用地址与在重定向表中被指示的多个参考被调用地址进行比较,并且在命中的情况下,将调用重定向到重定向表中的与调用的参考被调用地址相关联的替代地址。在一个实施例中,用于拦截调用的软件被配置为将调用的调用方地址与在重定向表中被指示的多个参考调用方地址进行比较,并且将调用的被调用地址与在重定向表中被指示的多个参考被调用地址进行比较,并且在针对调用方地址和被调用地址两者都命中的情况下,将调用重定向到重定向表中的与调用的参考调用方地址和参考被调用地址相关联的替代地址。在一个实施例中,能够通过软件应用中的代码的执行被调用的一个或多个资源包括第一资源和第二资源,所述第一资源能够通过对被存储在至少一个存储器设备中的第一地址处的第一函数的调用而被调用,所述第二资源能够通过对被存储在至少一个存储器设备中的第二地址处的第二函数的调用而被调用。在一个实施例中,用于拦截调用的软件被存储在至少一个存储器设备中。
2、根据另一实施例,一种计算设备包括一个或多个资源、以及被配置为存储软件应用和重定向表的一个或多个存储器设备。重定向表基于对一个或多个资源中的一个资源的调用的调用方地址和被调用地址中的任一者或两者来指示该调用将被转发到的替代地址。该计算设备还包括处理设备,该处理设备被耦合到一个或多个存储器设备并且被配置为执行软件应用。处理设备被配置为生成对所述一个或多个资源中的一个资源的调用。该计算设备还包括电路,该电路用于拦截调用并且根据重定向表将该调用转发到替代地址。在一个实施例中,该电路包括:第一比较器,其被配置为将调用的调用方地址与参考调用方地址或参考调用方地址范围进行比较;或者第二比较器,其被配置为将调用的被调用地址与参考被调用地址或参考被调用地址范围进行比较。在一个实施例中,该电路还包括被配置为所述一个或多个存储器设备中的存储重定向表的存储器设备。在一个实施例中,计算设备还包括总线,该总线被配置为将处理设备、一个或多个存储器设备、一个或多个资源、以及电路彼此耦合。在一个实施例中,该电路被配置为更新重定向表。在一个实施例中,该一个或多个资源包括一个或多个硬件资源,该一个或多个硬件资源诸如计算设备的外围设备。在一个实施例中,该一个或多个资源包括一个或多个存储器设备的一个或多个存储器区域。
3、根据又一实施例,提供了一种访问计算设备的一个或多个资源的方法,该方法包括由计算设备的软件或硬件拦截来自由计算设备的至少一个存储器设备存储的软件应用的调用。计算设备的处理设备经由总线被耦合到至少一个存储器设备,并且被配置为执行软件应用。该方法还包括由计算设备的软件或硬件基于被存储在至少一个存储器设备或另外的存储器设备中的重定向表选择性地重定向该调用。重定向表基于对所述资源中的一个资源的调用的调用方地址和被调用地址中的任一者或两者来指示该调用将被转发到的替代地址。在一个实施例中,该方法还包括由计算设备的软件或硬件将调用的调用方地址与在重定向表中被指示的多个参考调用方地址进行比较,并且在命中的情况下,由计算设备的软件或硬件将调用重定向到重定向表中的与该调用的参考调用方地址相关联的替代地址。在一个实施例中,该方法还包括由计算设备的软件或硬件将调用的被调用地址与在重定向表中被指示的多个参考被调用地址进行比较,并且在命中的情况下,由计算设备的软件或硬件将调用重定向到重定向表中的与该调用的参考被调用地址相关联的替代地址。在一个实施例中,该方法还包括由计算设备的软件或硬件将调用的调用方地址与在重定向表中被指示的多个参考调用方地址进行比较,并且将调用的被调用地址与在重定向表中被指示的多个参考被调用地址进行比较,以及在针对调用方地址和被调用地址两者都命中的情况下,由计算设备的软件或硬件将调用重定向到重定向表中的与调用的参考调用方地址和参考被调用地址相关联的替代地址。在一个实施例中,该方法还包括更新重定向表。
1.一种计算设备,包括:
2.根据权利要求1所述的计算设备,其中所述一个或多个资源包括一个或多个硬件资源,所述一个或多个硬件资源诸如所述计算设备的外围设备。
3.根据权利要求1所述的计算设备,其中所述一个或多个资源包括所述至少一个存储器设备的一个或多个存储器区域。
4.根据权利要求1所述的计算设备,其中用于拦截所述调用的所述软件被配置为将所述调用的所述调用方地址与在所述重定向表中被指示的多个参考调用方地址进行比较,并且在命中的情况下,将所述调用重定向到所述重定向表中的与所述调用的所述参考调用方地址相关联的所述替代地址。
5.根据权利要求1所述的计算设备,其中用于拦截所述调用的所述软件被配置为将所述调用的所述被调用地址与在所述重定向表中被指示的多个参考被调用地址进行比较,并且在命中的情况下,将所述调用重定向到所述重定向表中的与所述调用的所述参考被调用地址相关联的所述替代地址。
6.根据权利要求1所述的计算设备,其中用于拦截所述调用的所述软件被配置为将所述调用的所述调用方地址与在所述重定向表中被指示的多个参考调用方地址进行比较,并且将所述调用的所述被调用地址与在所述重定向表中被指示的多个参考被调用地址进行比较,并且在针对所述调用方地址和所述被调用地址两者都命中的情况下,将所述调用重定向到所述重定向表中的与所述调用的所述参考调用方地址和所述参考被调用地址相关联的所述替代地址。
7.根据权利要求1所述的计算设备,其中能够通过所述软件应用中的所述代码的执行被调用的所述一个或多个资源包括:
8.根据权利要求1所述的计算设备,其中用于拦截所述调用的所述软件被存储在所述至少一个存储器设备中。
9.一种计算设备,包括:
10.根据权利要求9所述的计算设备,其中所述电路包括:
11.根据权利要求10所述的计算设备,其中所述电路还包括所述一个或多个存储器设备中的被配置为存储所述重定向表的存储器设备。
12.根据权利要求9所述的计算设备,还包括总线,所述总线被配置为将所述处理设备、所述一个或多个存储器设备、所述一个或多个资源、以及所述电路彼此耦合。
13.根据权利要求9所述的计算设备,其中所述电路被配置为更新所述重定向表。
14.根据权利要求9所述的计算设备,其中所述一个或多个资源包括一个或多个硬件资源,所述一个或多个硬件资源诸如所述计算设备的外围设备。
15.根据权利要求9所述的计算设备,其中所述一个或多个资源包括所述一个或多个存储器设备的一个或多个存储器区域。
16.一种访问计算设备的一个或多个资源的方法,所述方法包括:
17.根据权利要求16所述的方法,还包括:
18.根据权利要求16所述的方法,还包括:
19.根据权利要求16所述的方法,还包括:
20.根据权利要求16所述的方法,还包括:更新所述重定向表。