书签 分享 收藏 举报 版权申诉 / 14

使用混合代码签名跟踪程序的调用上下文.pdf

  • 上传人:Y948****062
  • 文档编号:6226470
  • 上传时间:2019-05-22
  • 格式:PDF
  • 页数:14
  • 大小:1.35MB
  • 摘要
    申请专利号:

    CN201280040570.2

    申请日:

    2012.06.26

    公开号:

    CN103765402A

    公开日:

    2014.04.30

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 15/00申请日:20120626|||公开

    IPC分类号:

    G06F15/00

    主分类号:

    G06F15/00

    申请人:

    国际商业机器公司

    发明人:

    M·J·塞拉诺

    地址:

    美国纽约

    优先权:

    2011.08.22 US 13/214,352

    专利代理机构:

    北京市中咨律师事务所 11247

    代理人:

    于静;张亚非

    PDF完整版下载: PDF下载
    内容摘要

    一种用于混合代码签名的方法,包括:通过处理器执行应用,所述执行包括执行所述应用的根指令;通过所述处理器分析所述应用的所述执行,所述分析包括存储参考签名;通过所述处理器确定在所述根指令的所述执行之后执行的指令的工作签名,所述确定包括响应于存储所述参考签名,实现所述指令的散列函数;通过在计数器中存储值,跟踪所述工作签名的更新;以及当至少所述工作签名与所述参考签名不匹配时,通过所述处理器使用所述散列函数持续更新所述工作签名。

    权利要求书

    权利要求书
    1.  一种用于生成混合代码签名的方法,所述方法包括:
    通过处理器执行应用,所述执行包括执行所述应用的根指令;
    通过所述处理器分析所述应用的所述执行,所述分析包括存储从所述根指令确定的参考签名;
    通过所述处理器确定在所述根指令的所述执行之后执行的指令的工作签名,所述确定包括响应于存储所述参考签名而实现所述指令的散列函数;
    通过在计数器中存储值而跟踪所述工作签名的更新;以及
    当所述工作签名至少与所述参考签名不匹配时,通过所述处理器使用所述散列函数持续更新所述工作签名。

    2.  根据权利要求1的方法,其中所述工作签名的所述更新进一步包括确定执行应用的其它辅助条件。

    3.  根据权利要求2的方法,其中所述其它辅助条件的所述确定进一步包括判定所述根指令的地址是否与预定地址相匹配、存储在循环计数器中的第一值是否与第二预定值相匹配,或者所述参考签名是否与将所述地址与所述工作签名“异或”或将所述第一值与所述工作签名“异或”中的至少一个的散列值相匹配。

    4.  根据权利要求1的方法,其中所述工作签名的所述更新进一步包括在所述根指令之后执行所述应用。

    5.  根据权利要求1的方法,还包括响应于在所述应用的执行期间执行调用指令和返回指令,更新所述工作签名。

    6.  根据权利要求1的方法,还包括响应于在所述应用的执行期间执行分支指令并且在所述分支指令之后继续,更新所述工作签名。

    7.  根据权利要求3的方法,还包括在所述调用指令的执行期间递增所述计数器的值,以及在所述返回指令的执行期间递减所述计数器的值。

    8.  根据权利要求1的方法,还包括响应于所述根指令的执行,初始地将所述参考签名存储为所述工作签名。

    9.  根据权利要求1的方法,其中所述工作签名进一步包括通过将所述参考签名与所述工作签名“异或”而生成所述工作签名的散列值。

    10.  一种系统,其包括被配置为执行一种方法的处理器,所述方法包括:
    执行应用,所述执行包括执行所述应用的根指令;
    分析所述应用的所述执行,所述分析包括存储参考签名;
    确定在所述根指令的所述执行之后执行的指令的工作签名,所述确定包括响应于存储所述参考签名而实现所述指令的散列函数;
    通过在计数器中存储值而跟踪所述工作签名的更新;以及
    当所述工作签名至少与所述参考签名不匹配时,使用所述散列函数持续更新所述工作签名。

    11.  根据权利要求10的系统,其中所述工作签名的所述更新进一步包括确定执行应用的其它辅助条件。

    12.  根据权利要求11的系统,其中所述其它辅助条件的所述确定进一步包括判定所述根指令的地址是否与预定地址相匹配、存储在循环计数器中的第一值是否与第二预定值相匹配,或者所述参考签名是否与将所述地址与所述工作签名“异或”或将所述第一值与所述工作签名“异或”中的至少一个的散列值相匹配。

    13.  根据权利要求10的系统,其中所述工作签名的所述更新进一步包括在所述应用的执行期间执行调用指令和返回指令。

    14.  根据权利要求10的系统,其中所述工作签名的所述更新进一步包括在所述应用的执行期间执行分支指令并且在所述分支指令之后继续。

    15.  根据权利要求10的系统,其中所述方法还包括在所述调用指令的执行期间递增所述计数器的值,以及在所述返回指令的执行期间递减所述计数器的值。

    16.  根据权利要求10的系统,其中所述方法还包括响应于所述根指令的执行,初始地将所述参考签名存储为所述工作签名。

    17.  根据权利要求10的系统,其中所述工作签名包括将所述参考签名 与所述工作签名“异或”的散列值。

    18.  一种计算机程序产品,包括:
    有形存储介质,其可由处理电路读取并且存储指令以便由所述处理电路执行以执行一种方法,所述方法包括:
    执行应用,所述执行包括执行所述应用的根指令;
    分析所述应用的所述执行,所述分析包括存储参考签名;
    确定在所述根指令的所述执行之后执行的指令的工作签名,所述确定包括响应于存储所述参考签名而实现所述指令的散列函数;
    通过在计数器中存储值而跟踪所述工作签名的更新;以及
    当所述工作签名至少与所述参考签名不匹配时,使用所述散列函数持续更新所述工作签名。

    19.  根据权利要求18的计算机程序产品,其中所述方法还包括所述工作签名的更新包括确定执行应用的其它辅助条件。

    20.  根据权利要求19的计算机程序产品,其中所述其它辅助条件的所述确定进一步包括判定所述根指令的地址是否与预定地址相匹配、存储在循环计数器中的第一值是否与第二预定值相匹配,或者所述参考签名是否与将所述地址与所述工作签名“异或”或将所述第一值与所述工作签名“异或”中的至少一个的散列值相匹配。

    21.  根据权利要求18的计算机程序产品,其中所述工作签名的所述更新进一步包括在所述应用的执行期间执行调用指令和返回指令。

    22.  根据权利要求18的计算机程序产品,其中所述工作签名的所述更新进一步包括在所述应用的执行期间执行分支指令并且在所述分支指令之后继续。

    23.  根据权利要求18的计算机程序产品,其中所述方法还包括在所述调用指令的执行期间递增所述计数器的值,以及在所述返回指令的执行期间递减所述计数器的值。

    24.  根据权利要求18的计算机程序产品,其中所述方法还包括响应于所述根指令的执行,初始地将所述参考签名存储为所述工作签名。

    25.  根据权利要求18的计算机程序产品,其中所述方法还包括通过将所述参考签名与所述工作签名“异或”而生成所述工作签名的散列值。

    说明书

    说明书使用混合代码签名跟踪程序的调用上下文
    背景技术
    本发明一般地涉及数据处理,更具体地说,涉及使用混合代码签名跟踪程序的调用上下文。
    优化编译器和运行时代码优化器可以通过基于程序的运行时简档执行代码转换,获得显著的性能优势。一个非常有用的运行时简档是捕获程序的控制流历史,这是程序的个体指令或函数调用的执行顺序。这种控制流历史知识可以推动强大的程序优化,例如函数内联、代码克隆、超级块形成和预取插入。
    程序的控制流历史可以由在其执行中采取的一系列分支指令简明地表示。分支指令是程序中的点,在这些点选择应该遵循两个或更多路径中的哪一个。对于代码优化器而言,知道每个分支指令的结果便已足够,可以通过该信息知道在代码的运行时执行中采用的精确指令序列。
    可以使用软件技术收集一系列采用的分支。但是,这些技术需要昂贵的程序插装,并且因此可能产生大量开销。尽管这些软件技术足以用于静态性能分析,但它们可能不足以用于需要将开销保持在低成本的动态运行时环境。为了降低收集数据的开销,微处理器可以采用硬件技术收集该信息。但是,存储其它分支指令(例如,64位分支指令)和目标地址的附加区域开销可能限制专用于记录分支的硬件数量。
    发明内容
    一个实施例是一种方法,其包括用于生成混合代码签名的方法。所述方法包括:通过处理器执行应用,所述执行包括执行所述应用的根指令;通过所述处理器分析所述应用的所述执行,所述分析包括存储从所述根指 令确定的参考签名;通过所述处理器确定在所述根指令的所述执行之后执行的指令的工作签名,所述确定包括响应于存储所述参考签名而实现所述指令的散列函数;通过在计数器中存储值而跟踪所述工作签名的更新;以及当所述工作签名至少与所述参考签名不匹配时,通过所述处理器使用所述散列函数持续更新所述工作签名。
    另一个实施例是一种系统,其具有被配置为执行一种方法的处理器。所述方法包括:执行应用,所述执行包括执行所述应用的根指令;分析所述应用的所述执行,所述分析包括存储参考签名;确定在所述根指令的所述执行之后执行的指令的工作签名,所述确定包括响应于存储所述参考签名而实现所述指令的散列函数;通过在计数器中存储值而跟踪所述工作签名的更新;以及当所述工作签名至少与所述参考签名不匹配时,使用所述散列函数持续更新所述工作签名。
    另一个实施例是一种计算机程序产品,其具有有形存储介质,所述有形存储介质可由处理电路读取并且存储指令以便由所述处理电路执行以执行一种方法。所述方法包括:执行应用,所述执行包括执行所述应用的根指令;分析所述应用的所述执行,所述分析包括存储参考签名;确定在所述根指令的所述执行之后执行的指令的工作签名,所述确定包括响应于存储所述参考签名而实现所述指令的散列函数;通过在计数器中存储值而跟踪所述工作签名的更新;以及当所述工作签名至少与所述参考签名不匹配时,使用所述散列函数持续更新所述工作签名。
    通过本发明的技术实现其它特性和优点。在此详细描述了本发明的其它实施例和方面,并且它们被视为要求保护的本发明的一部分。为了更好地理解本发明以及优点和特性,将参考说明书和附图。
    附图说明
    在说明书结尾处的权利要求中具体指出并明确要求保护了被视为本发明的主题。从下面结合附图的详细描述,本发明的上述和其它特性和优点将变得显而易见,这些附图是:
    图1示出根据示例性实施例的系统的框图的一个实例;
    图2示出其中可以实现示例性实施例的处理系统的另一个框图;
    图3示出根据一个实施例的用于计算混合调用上下文签名的示例性过程流程;
    图4示出根据示例性实施例的用于数据寄存器的示例性接口;以及
    图5示出根据一个实施例的用于混合调用上下文签名的数据结构的一种实例结构。
    具体实施方式
    示例性实施例提供一种混合方法,以便通过使用专用寄存器计算硬件调用上下文签名,使用程序的调用上下文信息增强硬件跟踪。知道调用上下文(即,当前在堆栈中活跃的方法调用链)对于了解大型程序的动态行为而言很重要。根据一个实施例,调用上下文信息以硬件签名表示。各实施例涉及用于概率方法的混合方案,该方法通过使用函数调用深度和程序地址的组合,跟踪调用上下文信息(或代码签名)。通过计数器捕获函数调用深度,该计数器针对函数调用递增和递减,而通过返回地址的散列函数捕获程序地址。一个示例性实施例包括使用签名中的调用深度以及散列函数,以便改进跟踪调用上下文的概率方法。在其它实施例中,针对循环实现混合方案,这些循环使用靠近循环的分支地址的散列,并且实现循环计数器以便跟踪循环的开始和结束,该循环跟踪分支指令并且在分支指令之后继续。
    现在转到各图,图1中示出用于在示例性实施例中实现混合代码签名的计算机系统100的框图。网络数据处理系统100是其中可以实现各实施例的计算机网络。网络数据处理系统100包含网络102,其是用于在网络数据处理系统100中连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括连接,例如有线、无线通信链路或光缆。图1旨在作为一个实例,而不是作为不同实施例的体系结构限制。
    在所示实例中,服务器104和服务器106以及存储单元108连接到网 络102。此外,客户端110、112和114连接到网络102。这些客户端110、112和114例如可以是个人计算机或网络计算机。在所示实例中,服务器104为客户端110、112和114提供数据,例如引导文件、操作系统映像和应用。在该实例中,客户端110、112和114是服务器104的客户端。网络数据处理系统100可以包括其它服务器、客户端和其它设备(未示出)。
    在一个示例性实施例中,网络数据处理系统100是因特网,同时网络102代表全球范围内使用传输控制协议/网际协议(TCP/IP)协议集来相互通信的网络和网关的集合。在其它实施例中,网络数据处理系统100可以实现为许多不同类型的网络,例如内联网、局域网(LAN)或广域网(WAN)。硬件调用上下文签名可以在服务器104-106或客户端110-114中实现。
    现在参考图2,示出其中可以实现示例性实施例的计算机系统200的框图。数据处理系统200是计算机的一个实例,例如图1中的服务器104或客户端110,其中可以针对示例性实施例定位实现所述过程的计算机可用代码或指令。系统200采用外围组件互连(PCI)局域总线体系结构。尽管所示实例采用PCI总线,但可以使用其它总线体系结构,例如图形加速端口(AGP)和工业标准体系结构(ISA)。处理器202和主存储器204通过主机208连接到PCI局域总线206。主机208还可以包括用于处理器202的集成存储控制器和高速缓冲存储器。可以通过直接组件互连或通过附加板与PCI局域总线206进行其它连接。
    在所示实例中,局域网(LAN)适配器210、小型计算机系统接口SCSI主机总线适配器212和扩展总线接口214通过直接组件连接与PCI局域总线206连接。此外,音频适配器216、图形适配器218和音频/视频适配器219通过插入到扩展槽中的附加板连接到PCI局域总线206。扩展总线接口214为键盘及鼠标适配器220、调制解调器222和其它存储器224提供连接。SCSI主机总线适配器212为硬盘驱动器226、磁带驱动器228和CD-ROM驱动器230提供连接。还支持用于PCI扩展槽或附加连接器的其它支持。
    操作系统232在处理器202上运行,并且用于协调和提供对图2中的系统200内的各种组件的控制。在一个实施例中,操作系统232是商用企业操作系统,例如可从国际商业机器公司获得的z/Os。多个面向对象的编程应用(例如C或C++)可以与操作系统232结合运行,并且提供从在客户端200上执行的这些应用对操作系统232的调用。在一个非限制性实例中,系统200包括应用234、236、240以及跟踪应用238,将监视跟踪应用238通过专用寄存器的分析和管理。此外,包括函数、例程等的应用234-240可以存储在存储设备(例如硬盘驱动器226)上,并且可以加载到主存储器204中以便由处理器202执行。用于操作系统、面向对象的编程系统的指令以及应用或程序位于存储设备(例如磁盘驱动器226)上,并且可以加载到主存储器204中以便由处理器202执行。各示例性实施例的过程可以由处理器202使用计算机实现的指令来执行,这些指令可以位于存储器(例如,主存储器204、只读存储器224)或者一个或多个外围设备中。
    除了图2中所示的硬件之外或替代该硬件,可以使用其它内部硬件或外围设备,例如闪存只读存储器(ROM)、等效的非易失性存储器或光盘驱动器等。此外,在各实施例中,可以将所述过程应用于多处理器数据处理系统。例如,系统200(如果可选地被配置为网络计算机)可以不包括SCSI主机总线适配器212、硬盘驱动器226、磁带驱动器228和CD-ROM230。在这种情况下,计算机(正确地称为客户端计算机)包括某种类型的网络通信接口,例如LAN适配器210、调制解调器222等。作为另一个实例,系统200可以是被配置为可在不依赖某种类型网络通信接口的情况下引导的独立系统,无论客户端200是否包括某种类型的网络通信接口。作为另一实例,系统200可以是个人数字助理(PDA),其被配置有ROM和/或闪存ROM以便提供非易失性存储器以存储操作系统文件和/或用户生成的数据。图2中的所示实例和上述实例并非旨在暗示体系结构限制。在各实施例中,所述过程由处理器202使用计算机实现的指令来执行,这些指令可以位于存储器(例如,主存储器204、存储器224)或者一个或多 个外围设备226-230中。
    图3示出根据示例性实施例的用于使用混合方案生成混合代码签名的方法。在一个实施例中,可以在如图2中所示的主存储器204或存储器204中实现硬件签名。所述方法在方框305开始。在方框310,通过利用程序执行路径中的预定指令(例如根指令)的地址,计算参考签名(RSIG)。将所计算的RSIG保存在专用寄存器中,该寄存器称为调用签名寄存器400(如图4中所示的CSIG400)。在一个示例性实施例中,CSIG是64位寄存器,其包括32位参考签名405(图4中所示的RSIG405)和32位调用上下文签名410(图4中所示的WSIG410)。CSIG400是每当执行调用和返回指令时由硬件持续更新的寄存器。RSIG405具有的值是感兴趣的特定指令地址的组合,例如在一个实例中,特定指令地址是在指令序列之前的频繁执行的指令(根指令)的地址,该指令序列始终在根指令之后执行。在各实施例中,在初始化跟踪检测硬件之前,针对每个导向根指令的程序路径,确定要存储为签名RSIG405的根指令签名的值。在各备选实施例中,使用采样机制从硬件寄存器获得签名。图4中示出CSIG400的一种示例性结构。
    再次参考图3,在方框315,将工作签名WSIG410的初始值初始化为RSIG405。此外,在方框320,通过使用CALL级别和返回地址的散列值,计算混合代码签名并将其存储在WSIG410中。通过调用和返回指令标识函数调用及其返回。CSIG400将针对每个调用和返回指令更新WSIG410。对于每个调用,循环计数器递增1以便跟踪调用级别,使用计数器中的位的调用级别实现散列函数并将其与被调用函数的返回地址进行“异或”以便生成混合代码签名。在一个示例性实施例中,散列函数包括ROTATE_LEFT函数。对于每个RETURN,循环计数器递减1,并且使用ROTATE_RIGHT函数计算散列值(使用散列函数计算)。在一个实施例中,散列函数包括ROTATE_RIGHT函数。在调用之前,应用调用和返回函数的结果将产生原始签名。将CSIG400的内容与返回地址一起用于跟踪检测,以便当WSIG410中计算的调用上下文签名与RSIG405 中的指令地址签名相匹配时,以及在其它实施例中,满足其它辅助条件(具体取决于目标应用)时,所述过程在方框325结束。
    如上所述,图4示出CSIG400寄存器的示例性结构。如图所示,CSIG400在位0:31中存储表示调用上下文签名的工作签名410的散列值,并且在位32:64中存储参考签名405。在其它实施例中,RSIG405和WSIG410也可以是64位精度。CSIG400是每当执行调用和返回指令时由硬件持续更新的寄存器。选择用于更新CSIG400寄存器的散列函数,以便该函数在任何指令处的值都表示执行的导向该指令的调用和返回序列。然后增强跟踪检测硬件,以便它将跟踪的开始不是简单地识别为当执行根指令时,而且仅当在RSIG405等于预定值的时候执行根指令时。在其它示例性实施例中,在初始化跟踪检测硬件之前,软件针对每个导向根指令的程序路径,确定RSIG405的在根指令处的值。在执行根指令时确定值RSIG405的一种示例性方法是由软件计算该值。软件可完成此计算,方式为:在初始化程序时从RSIG405的值开始,然后手动计算WSIG410更新,而在遇到调用和返回时遵循程序路径。用于确定RSIG405的另一个示例性实施例包括在给定指令(例如根指令)处导致同步中断,在该指令处将RSIG405初始化为已知值。在根指令处发现RSIG405的值的另一个示例性实施例将是扩展识别频繁执行的指令的地址的硬件。该硬件包括多个寄存器,这些寄存器包含最频繁执行的指令的地址。可以扩展这些寄存器以便包含这些频繁执行的指令的调用签名以及仅包含其地址。
    图5中示出根据示例性实施例的用于计算混合代码签名的示例性散列函数及签名结构。如图所示,使用计数器跟踪调用级别,通过可逆函数计算混合调用上下文签名500。混合调用上下文签名500是M位签名,其包括固定数量的N位,这些位存储在计数器505中以便跟踪每个调用和返回。具体地说,对于每个调用,计数器递增,并且对于每个返回,计数器递减。计数器是循环(wrap-around)计数器,以便在计数器达到最大值时,递增计数器将使其溢出为0,并且从0递减将设置最大位数。在一个实施例中,M为32,N为6。应该理解,使用所计算的散列签名510(图3)和N 位计数器的值,计算M位的混合签名。
    一种示例性混合签名包括下面示出的散列函数,其中用于调用指令的散列函数与ROTATE_LEFT一起使用,用于返回指令的散列函数与ROTATE_RIGHT一起使用。
    散列=ROTATE_LEFT(Hashing,S)XOR(RETURN_ADDRESS>>2);
    散列=ROTATE_RIGHT(Hashing XOR(RETURN_ADDRESS>>2),S)。
    采用散列函数ROTATE_LEFT以及XOR运算符计算混合签名,从而利用混合签名(或散列签名)的值。ROTATE_LEFT(Hashing,S)被定义为将初始化后的WSIG410按位向左旋转S位。在某些示例性实施例中,S=3、5、7或9。在ROTATE_LEFT函数中,针对大于1的调用级别计算并存储在CSIG400中的初始参考签名RSIG405(图4)或混合签名被向左旋转S位。ROTATE_LEFT函数被定义为将散列签名按位向左移动S位并且插入高阶S位作为低阶S位。针对散列签名执行ROTATE_LEFT函数之后,使用针对函数调用预计的RETURN_ADDRESS(向右移动2位)的“异或”来更新散列签名。RETURN_ADDRESS通常是在CALL操作之后的下一个指令。
    同样,对于返回指令,通过散列签名与针对函数调用预计的RETURN_ADDRESS(向右移动2位)的“异或”来计算散列签名。接下来通过将散列签名按位向右移动S位并插入低阶S位作为高阶S位,实现ROTATE_RIGHT函数。在执行调用和返回之后,这些ROTATE_LEFT和ROTATE_RIGHT函数将产生签名WSIG410(图4),即,与指令关联的签名始终是在执行指令之前的签名。在混合签名WSIG410(图4)与参考签名RSIG405(图4)相匹配,并且满足其它辅助条件(具体取决于目标应用)之时,跟踪检测将停止。在一个实施例中,其它辅助条件是指令地址与存储在另一个寄存器中的预定地址相匹配。其它辅助条件的另一个实施例是循环计数寄存器(其跟踪循环中的迭代次数)与存储在另一个 寄存器中的预定值相匹配。在另一个实施例中,其它辅助条件是与指令地址、循环计数器或另一个辅助寄存器“异或”的工作签名WSIG410的散列值与参考RSIG405相匹配。在各实施例中,例如当匹配循环中的特定指令并且其对应循环计数器与所需值匹配时,可以组合上述辅助条件。应该理解,辅助条件适用于在跟踪检测以及其它应用(例如性能分析、调试、动态程序优化以及安全性等)期间提高精度。
    技术效果和益处包括能够针对每个调用和返回生成混合代码签名,并且递增地将其与参考签名相比较,以便实现跟踪检测。
    在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组合的存在或增加。
    下面权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它元件相组合地执行该功能的结构、材料或操作。出于示例和说明目的给出了对本发明的描述,但所述描述并非旨在是穷举的或是将本发明限于所公开的形式。在不偏离本发明的范围和精神的情况下,对于所属技术领域的普通技术人员来说许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定使用时,使得所属技术领域的其它普通技术人员能够理解本发明的具有各种修改的各种实施例。
    此外,所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实 现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
    可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
    计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
    计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
    可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户 计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
    下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
    也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
    也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
    附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬 件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
    在此示出的流程图只是一个实例。在此描述的这些图或步骤(或操作)可以存在许多变化而不偏离本发明的精神。例如,可以按不同的顺序执行步骤,或者可以添加、删除或修改步骤。所有这些变化都被视为要求保护的本发明的一部分。
    尽管描述了本发明的优选实施例,但所属技术领域的技术人员应该理解,可以在现在和将来进行各种落入下面权利要求范围的改进和增强。这些权利要求应该被解释为维护对最初描述的本发明的正确保护。

    关 键  词:
    使用 混合 代码 签名 跟踪 程序 调用 上下文
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:使用混合代码签名跟踪程序的调用上下文.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6226470.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1