防止一程序在找错应用程序下运行的系统和方法。该方法是与一个软件程序一起存储在计算机系统的硬驱上的一个例行程序的一部分。该系统有一个用来运行该软件程序和该例行程序的处理器。该例行程序当处理器在找错模式下运行时将防止对软件程序的非授权访问,当该处理器运行软件程序时,该程序能起动执行该例行程序。该例行程序检验某些寄存器以判断是否操作于找错模式,如果是,则使处理器停止运行该程序。(*该技术在2018年保护过期,可自由使用*)
【技术实现步骤摘要】
本公开一般地涉及计算机和计算机程序,较具体地涉及一种防止在找错应用程序下运行程序的系统和方法。存储在一个计算机内的计算机程序常常含有许多可受保护的知识产权。其中有些产权可以容易地通过版权和/或专利法律得到保护。然而,其他的产权是作为商业秘密来保护的,因此需要最高级的安全性来防止非授权的使用或访问。某一特定程序一旦被一个不受软件许可或其他形式的保护限制的用户得到,要防止该程序的非授权使用或访问将变得困难。例如,计算机制造商经常在计算机正安装一些诊断程序,其中含有许多制造商的商业秘密。典型的情况是,只安装程序的可执行(.exe)部分,由此使用户无法得到源码。而且,程序的可执行部分还常常加了密。例如,威斯康星州Brown Deer市PKWARE公司的PKLITE应用程序对程序的可执行部分进行了压缩,由此在处理中对它进行了加密。然而,这没有能防止用户通过找错应用程序来运行该程序,找错应用程序使计算机处理器工作在暂停执行模式,这一模式使处理器在某些预定的间隔上停止执行或跳到另一个例行程序上。例如,该处理器可以是一个加利福尼亚州Santa Clara市Intel(英特)公司生产的PENTIUM(奔腾)处理器,暂停执行模式的例子有找错模式和单步骤操作模式,在Intel公司提供的“INTEL ARCHITECTURE SOFTWAREDEVELOPER’S MANUAL(英特体系软件开发者手册)”(1997,Vol.1-3)中对这两种模式有较详细的说明,这里引用该手册作为参考。通过使用找错程序,用户可以错误地访问程序,由此访问存储在其中的商业秘密。因此,需要一种用来防止即使通过找错应用程序对一个程序的非授权访问的系统和方法。为此,提供了一种用来防止一个程序在找错应用程序下运行的系统和方法。在一个实施例中,在一个计算机系统的硬驱上存储了一个例行程序和一个软件程序。该计算机系统有一个用来运行软件程序和例行程序两者的处理器,而且该系统能操作于暂停执行模式。该例行程序能防止例如当处理器在一个找错应用程序下运行于暂停执行模式时对软件程序的非授权访问。当处理器正在运行该软件程序时,该程序将能起动例行程序的执行。该例行程序一旦被起动,它将检查某一预定的存储器位置,判断处理器是否操作于暂停执行模式,如果是,则使处理器停止继续运行该软件程序。在一个实施例中,该存储器位置是处理器的一个中断寄存器,其中指明了是否正在使用通常在找错工作模式中使用的中断点。该例行程序检验中断寄存器是否指向任何其他的程序或例行程序。如果是这样,则处理器可能正运行于找错模式,从而该例行程序使处理器停止继续运行原来的程序。在另一个实施例中,该存储器位置是处理器的一个旗标寄存器,其中指明了是否是处理器的其他工作模式。在该实施例中,例行程序检验旗标寄存器是否指明了处理器操作的一个单步骤模式。如果是这样,该例行程序将使处理器停止继续运行原来的程序。附图说明图1是实现一个实施例的计算机的方框图。图2是准备由图1计算机运行的一个例行程序的流程图。参见图1,代号10代表一个含有一些部件的计算机,这些部件包括至少一个处理器12,RAM(随机存取存储器)14,一个硬驱16,以及一个软驱18。各个部件都能通过图中的总线20与处理器12进行通信。在本例中,处理器12运行例如由华盛顿州Redmond市Microsoft(微软)公司提供的DOS操作系统代码。然而应该理解,计算机10及其示例性的部件仅仅是许多不同类型的计算机和部件的一个代表。DOS也仅仅是许多不同类型的操作系统,包括也是由Microsoft公司开发的Windows(视窗)和Windows95的一个代表。处理器12含有多个寄存器,包括中断寄存器22和旗标寄存器24。这里,寄存器22、24的名称是PENTIUM和PENTIUMⅡ处理器中的名称,但其含义仅仅是实际上所有型号和/或牌号的处理器的类似寄存器的示例性代表。寄存器22和24在上面已引入作为参考的“英特体系软件开发者手册”中也有所说明,该手册还说明了几种不同的处理器操作模式,包括正常模式、找错模式和单步骤模式。存储在硬驱16上的一个可执行(.exe)程序文件26。该程序26已利用一个例如上面较详细说明过的PKLITE音通工具进行了压缩和加密。由于程序26已加密,用户不能简单地通过读出硬盘16来访问和解编译该程序。然而,通常用户可以把程序26安装到RAM14中,并利用一个找错应用程序(未示出)来用处理器12运行该程序。这样做的结果是,用户可以了解程序26中的第一代码行,并解编译该程序,由此做到对该程序的非授权访问。参见图2,其中示出也是存储在硬盘16上的一个例行程序100,该例行程序可以防止用户利用找错应用程序去运行程序26。当程序26开始操作时,它将起动例行程序100。因此,作为例子,例行程序100是一个初始化例行程序,然而应该理解,例行程序100也可以在执行程序26过程中的任何时间上运行。在步骤102中,例行程序100检验寄存器22和24。采用上述IntelPENTIUM处理器的例子,上这中断寄存器22是一个找错寄存器7,而上述旗标寄存器24是一个EFLAG(E旗标)寄存器,在步骤104中,例行程序100判断EFLAG寄存器24的捕捉旗标(trap flag)(TF)是否已被设置。如果设置了表明单步骤模式的TF,则例行程序100在步骤106停止执行程序26。如果没有设置TF,则处理进到步骤108,在那里例行程序100判断中断寄存器22的中断点旗标(INT3)指向何处。INT3可能会指向一个常常被找错程序使用的例行程序,例如“中断点除外处理器例行程序(breakpoint exception handler routine)”;或者可能会含有一个返回指令“IRET”,这意味着没有调用其他的程序或例行程序。如果INT3指向除了IRET以外的任何其他指令,则处理将进到前述的步骤106。否则,处理前进到步骤110,在那里例行程序100把控制返回给程序26,使后者可以正常运行。通过检验寄存器22和24,例行程序100将可得知处理器12是否在找错模式下操作,从而可防止程序26在找错应用程序下运行。虽然已经示出并说明了一些示例性实施例,但在上面的公开中仍希望有修改、改变和替代的自由度,而且在某些情况中,可以只利用某些特性而不相应地利用其他的特性。例如,例行程序100可被程序26重复地调用,以此来进一步保证该程序不是被一个找错程序运行的。此外,程序26和例行程序100可以存储在不同的位置;可以检验附加的或另外的寄存器、旗标或存储装置,还可以在不改变所示实施例的范畴的情况下对其加上附加的错误处理例行程序。所以,应该广义地并以符合本专利技术范畴的方式去理解所附的权利要求。权利要求1.一种计算机,它包括至少一个用于运行软件程序的处理器,该处理器能够在一个暂停执行模式下操作,并含有一个能指明该处理器当前是否在暂停执行模式下操作的第一存储器位置;一个可被该处理器访问的存储装置;以及一个位于该存储装置内的例行程序;其中,当处理器运行软件程序时,该程序能起动例行程序;并且其中,当该例行程序一旦被起动时,它将检验第一存储器位置以判断处理器是否处于暂停执行模式,如果是这样,则将使处理器停止继本文档来自技高网...
【技术保护点】
一种计算机,它包括: 至少一个用于运行软件程序的处理器,该处理器能够在一个暂停执行模式下操作,并含有一个能指明该处理器当前是否在暂停执行模式下操作的第一存储器位置; 一个可被该处理器访问的存储装置;以及 一个位于该存储装置内的例行程序; 其中,当处理器运行软件程序时,该程序能起动例行程序;并且 其中,当该例行程序一旦被起动时,它将检验第一存储器位置以判断处理器是否处于暂停执行模式,如果是这样,则将使处理器停止继续运行该软件程序。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:艾伦E贝利茨,
申请(专利权)人:戴尔美国公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。