CN104040552B

Software modification for partial secure memory processing

Abstract

This disclosure relates to software modifications that can be used to prevent software piracy and prevent unauthorized modifications of applications. In some embodiments, the software supplier can modify the software before it is distributed to the user. Software vendors can extract multiple cutouts from the application to create a modified application. The user equipment can download the modified application and these cutouts. The user equipment can use the modified application and run the application by executing the cutouts in a safe execution environment that hides the underlying code in the cutouts.

CN104040552B, drawing sheet 1
Sheet 1 of 9

Term

5.3 yearsleft in the term

Expires 29 December 2031.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

23 claims: 6 independent, 17 dependent

  1. 1
    一种处理器,包括: 第一逻辑单元,用于对包括有待分别地存储在安全存储器内的代码的所提取部分的应 用,处理存储在存储器内的代码;以及 第二逻辑单元,用于当所述第一逻辑单元到达代码的所述所提取部分的位置时,在安 全执行环境中对存储在所述安全存储器内的代码的所述所提取部分的至少一部分进行处 理,所述安全存储器被限制成通过所述安全执行环境访问,所述安全执行环境在将结果数 据传递回至所述第一逻辑单元的同时隐藏二进制代码的所述所提取部分的内容。
  2. 2
    如权利要求1所述的处理器,其中,当检测到重定向代码后,所述第一逻辑单元重定 向至所述第二逻辑单元,其中所述重定向代码是用于所述代码的所述所提取部分的应用中 的占位符。
  3. 3
    如权利要求1所述的处理器,其中,代码的所述所提取部分是由所述第二逻辑单元解 密并且在所述安全执行环境中执行的。
  4. 4
    如权利要求1所述的处理器,其中,所述第一逻辑单元将至少一个参数传递至所述第 二逻辑单元,以发起对所提取代码的所述至少一部分进行处理的请求。
  5. 5
    如权利要求1所述的处理器,进一步包括第三逻辑单元,用于对所述应用进行解密并 且将所述代码的所述所提取部分存储在所述安全存储器内。
  6. 6
    —种安全地分发软件的方法,所述方法包括: 从应用中提取代码的多个部分作为剪切块,以创建不包括这些剪切块的修改后的应 用,其中,所述修改后的应用包括到安全执行环境的重定向代码; 使用由用户维护的加密密钥对所述这些剪切块进行加密;以及 将这些加密后的剪切块和所述修改后的应用传输至所述用户。
  7. 7
    如权利要求6所述的方法,其中,所述这些剪切块是来自所述应用的代码的函数。
  8. 8
    如权利要求6所述的方法,其中,所述这些剪切块在大小上被限制到阈值大小。
  9. 9
    如权利要求6所述的方法,进一步包括:至少部分地基于使用来自开发者的指示符, 对所述这些剪切块进行识别。
  10. 10
    如权利要求6所述的方法,进一步包括:从开发者接收未修改状态下的所述应用。 11 ·如权利要求6所述的方法,进一步包括:在所述加密之前,将所述加密密钥传输至所 述用户。
  11. 11
    12. —种计算设备,包括: 应用转换器,用于从应用中移除代码的多个部分作为剪切块,以创建修改后的应用,其 中,所述修改后的应用包括到安全执行环境的重定向代码;以及 下载管理器,用于使用由用户维护的加密密钥对这些剪切块进行加密并且将所述修改 后的应用和这些加密后的剪切块传输至所述用户。
  12. 12
    13. 如权利要求12所述的计算设备,其中,所述应用转换器用于通过自动化的选择过 程,将代码的所述多个部分识别为所述这些剪切块。
  13. 13
    14. 如权利要求12所述的计算设备,其中,所述下载管理器用于将用户许可证传输至所 述用户。
  14. 14
    15. 如权利要求12所述的计算设备,其中,所述修改后的应用和所述这些加密后的剪切 块被包括在加密包内用于所述传输。 CN 104040552 Β
  15. 15
    16. 如权利要求12所述的计算设备,还包括客户端注册管理器,所述客户端注册管理器 用于在所述加密之前,将所述加密密钥传输至所述用户。
  16. 16
    17. —种用于安全地存储和执行应用的系统,所述系统包括: 一个或多个处理器; 公开存储器,用于存储所述一个或多个处理器可执行的应用; 安全存储器,用于在所述公开存储器接收到所述应用之前,将代码存储为从所述应用 所提取的一个或多个剪切块,所述安全存储器被限制成使用所述一个或多个处理器通过安 全执行环境访问; 其中,所述一个或多个处理器执行来自所述公开存储器的所述应用;以及 当所述执行来自所述公开存储器的所述应用到达所述应用内的剪切块时,在所述安全 执行环境中执行所述剪切块内的相应代码而不向所述公开存储器泄露所述剪切块的内容。
  17. 17
    18. 如权利要求17所述的系统,其中,所述应用包括代替所述剪切块的重定向代码,以 将所述处理重定向至所述剪切块内的相应代码。
  18. 18
    19. 如权利要求17所述的系统,其中,当所述剪切块处于所述安全执行环境中时,对其 进行解密。
  19. 19
    20. 如权利要求17所述的系统,其中,所述剪切块为所述应用的函数。
  20. 20
    21. 如权利要求17所述的系统,其中,所述安全存储器进一步包括加密密钥,所述加密 密钥用于在下载了所述应用和所述一个或多个剪切块之后对所述应用和所述一个或多个 剪切块进行解密。
  21. 21
    22. 如权利要求17所述的系统,其中,所述一个或多个处理器在执行所述相应代码之前 将至少一个参数传递至所述安全执行环境。
  22. 22
    23. —种存储有指令的计算机可读存储介质,所述指令在被执行时使机器执行如权利 要求6 —11的任一项所述的方法。
  23. 23
    24. —种计算机系统,包括用于执行如权利要求6 —11的任一项所述的方法的装置。
Independent claims23