保护软件的装置及方法

文档序号:6408152阅读:168来源:国知局
专利名称:保护软件的装置及方法
技术领域
本发明涉及一种保护软件的装置及方法,及能保护存放在存储器内的软件和数据的违法拷贝,防止软件被盗用,或者在未受权的情况下被使用。本发明的软件保护装置及方法,尤其特别适用在电视游戏机的游戏软件程序的保护上,有效防止仿冒,违法拷贝等侵权行为。
在知识产权未受充分尊重的今日,电子商品的防止抄袭仿冒是一个极为重要的课题。熟知的电视游戏机系统(T.V.game system)使用固定而标准化的硬件主机,配以多样性的游戏软件卡或软件磁盘,依使用者的喜好,可以选择各种游戏软件进行游戏。曲型的游戏软件存储在存储器集成电路卡(memory IC catridges)中,可以让使用者很容易地在电视游戏机系统的硬件主机上进行选换,以便变换游戏种类与内容。
一般而言,卡上的软件程序及数据,大部份均以IC存储器来储存,此存储器包括只读存储器(Mask ROM),可擦除式存储器(EPROM或EEPROM)或单次可编程序型存储器(One Time PROM)等,这些存储器内的程序及数据,必须在程序执行时送至主机上的微处理机。由于程序及数据都要透过主机上的总线传送,所以程序及数据很容易为不法商人读出,加以仿制、贩卖,特别是这些IC存储器多为标准化产品,更容易为人仿制。
软件程序及数据乃是多人智慧的结晶,其投入的人力、物力皆非常庞大。又由于上述存储器,十分容易被仿制,故软件的著作权拥有者莫不想尽办法,防范他人的仿冒,所以各种保护装置纷纷出笼。这些保护多用一种特殊的集成电路作为保护之用,以增加仿冒的困难。
而且仿冒的一个最重要且必须的步骤是要读出放在ROM里的程序数据。这在目前现有的技术中,利用微处理器的仿真器(Emulator)就可以很容易地读出放在ROM里的程序数据。
因此,本发明一主要目的在于提供一种电脑程序的软件保护装置与方法,特别是有关于电视游戏机系统的游戏软件程序的保护装置与方法,可以防止潜在仿冒侵权者利用微处理器仿真器,读取储存在存储卡中的游戏软件程序内容。
为达上述目的,本发明利用一附加的保护线路,当发现有试图读出放在ROM里的程序数据情况时,不定时地干扰读出的程序数据,包括针对使用微处理器的仿真器的读出,使得程序数据有些是错误的,由于错误的模式是不固定的,更增加了仿冒者的困难。
在正常的状况下,微处理器执行放在ROM的程序,由于程序中有跳转指令(JUMP),执行子程序及中断(Interrupt)之故,程序的执行是不可能循序执行的。而且,并不是ROM存储器中的每一地址都会被用到,并不是ROM中的每一地址都要放程序或数据。
相对的,当试图读出放在ROM里的程序数据时,如利用微处理器的仿真器,一定是一循序的读取动作,且ROM里的每一地址都会被读取到。因此,试图读出放在ROM里的程序数据和一般程序的执行是有所不同的。我们可以利用试图读取程序正常执行时不会用到某一地址,或一串地址,作为判别仿真器之用。当这种不正常状况发生时,启动一断续信号产生装置,产生断续的信号,并用此断续信号驱动数据总线至某一特定电位(VCC或GND),使得所读取的程序数据中有些是错误的。
本发明利用保护装置中的一种特定地址侦测电路,在侦测到试图读取存储器中的程序内容的情况时,触动一种断续信号产生电路,不定时地干扰存储器数据内容的读出,以使得所读得的数据有些是错误的,而且错误的模式亦不固定,更进一步增加仿冒者的困难。
本发明保护软件的装置的基本组成包括一侦测装置,用以监视至少地址总线、数据总线和控制总线之一,侦测在正常情形下不会发生的存储器存取动作;一切换装置,连接到该侦测装置,用来在该侦测装置侦测到在正常情形下不会发生的存储器存取动作时,启动下一级的信号产生装置;一信号产生装置,连接到该切换装置,用来在被该切换装置启动时,产生一断续信号,以推动下一级的电路装置;以及至少一电路装置,连接到该信号产生装置,且连接到地址总线、数据总线和控制总线的任一信号线,用来接收及根据该断续信号,将该信号线驱动至一预定电位。
本发明保护软件的方法的基本步骤包括(a)将程序数据存放在一存储器中;(b)提供一微处理器,用来自该存储器中读取程序数据执行;
(c)连接该微处理器的数据总线、地址总线和控制总线到该存储器;(d)监视至少地址总线、数据总线和控制总线之一,以便侦测在正常情形下不会发生的存储器存取动作;以及(e)当侦测到上述微处理器在正常情形下不会发生的存储器存取动作时,将地址总线、数据总线和控制总线至少一种信号线,断续地驱动至一预定电位。
本发明其它目的与特点将配合附图,在后面进行详细说明。附图之中

图1为一种典型的电视游戏机系统的电路方块示意图;图2为本发明软件保护装置一较佳实施例的电路方块示意图;图3为本发明软件保护装置另一较佳实施例的电路方块示意图;图4为本发明软件保护装置中侦测装置的一实例;图5为本发明软件保护装置中断续信号产生装置的一实例;以及图6为图5中的断续信号产生装置所产生断续信号的一个例子。
首先参考图1中所显示的典型电视游戏机系统的电路方块示意图。一部典型的电视游戏机可以区分为两个主要部分,亦即执行软件游戏程序的游戏主机10,以及储存游戏软件的游戏软件卡30。游戏主机10的典型结构主要包含了包括了微处理器的中央处理单元CPU14,视频处理器12,音频处理器16,存储器18,以及电视信号合成装置19。另一方面,游戏软件卡30则通常包含有储存软件程序的存储器32,以及某些情况下不存在的软件保护装置34。
接着参考图2,其中显示本发明软件保护装置一较佳实施例的电路方块示意图。本发明此一实施例的软件保护装置34,可装置在一个游戏软件之中(例如图1中的30),作为储存于存储器(例如图1中的存储器32)之中的软件程序码的保护装置。软件保护装置34接收游戏电脑系统所传送来的地址20,数据22与控制信号24,以便执行软件程序码的保护功能。
本发明此实施例的软件保护装置34,其结果组成包括有一个特定地址侦测装置50,一个重置地址侦测装置52,一个RS锁存器54,一个断续信号产生器56,以及一个NMOS开关装置58。
当系统初启动时,会通过游戏电脑系统主机(例如图1中的游戏机主机10)的中央处理单元CPU14所发送出来的重置地址,触发重置地址侦测装置52,并经由信号线66而使RS锁存器54进行重置,使RS锁存器54的Q输出为O信号。此O信号并不至影响RS锁存器54的Q输出连结的断续信号产生器56。
当系统启动之后,特定地址侦测装置50即开始监视着系统地址总线20上,由游戏电脑系统主机10的中央处理单元CPU14所发送出来的数据读取地址。如同前面所叙述的,由于典型的游戏软件并不须使用到所有存储器地址,甚至在游戏软件设计时,更可以特别留下某些特定的存储器地址不予使用。换句话说,这些特别留下来的地址,在游戏软件被游戏主机正常执行时,根本不会出现在系统地址总线20上。不过,试图以仿真器读取游戏软件程序内容的人完全无法知道哪些地址是空的,哪些地址是有数据的,因此便无法避开读取到该些预留地址的位置。一旦这些“陷井地址”被仿真器所读取,特定地址侦测装置50便会侦测到,并立即以信号线64将设定信号传送至RS锁存器54,并将RS锁存器54的Q输出设定为1。
一旦RS锁存器54的Q输出被设定为1,并传送至断续信号产生器56使能输入端EN,断续信号产生器56便被使能,且在输出端所连结的信号线90上送出规律或不规律的断续信号,以便进而驱动NMOS开关装置58,将系统的数据总线22上的数据信号定时或不定时地被拉降至接地电位。此种一旦某些预先设定的、正常情况不该也不会被读取的陷井地址,被不知情的仿冒者读取后,系统的数据总线上的数据便会被定时或不定时地拉降至接地电位。换句话说,有些原先应为高电位的信号被不正确地转换为低电位了,由于仿冒者无从得知是哪些数据被改变了,因此亦无法予以还原。再者,由于断续信号可以是不规律产生的,因此甚至可以设计成让利用仿真器违法拷贝的软件仍可被执行,但会不定时地出现错误,益增不法厂商及违法使用者的困扰,终使不法厂商打消违法拷贝的念头;使用者打消购买或使用盗版软件的念头。
图3显示本发明软件保护另一较佳实施例电路方块示意图。此实施例与图2中的实施例不同之处在于,其将系统的数据总线22上的数据信号定时或不定时地予以扰乱的方式是将正常数据信号拉升至高信号电位的电位VCC。这是利用一PMOS开关装置58来完成的。
图4之中显示本发明软件保护装置中特定地址侦测装置50的一种典型的实例。此电路是将系统主机(例如图1中的游戏主机10)的中央处理单元CPU14所发送出来的地址信号,利用反相器(Inverter)/及(AND)逻辑门进行解码,其解码结果送至图2或图3中的RS锁存器54的S输入,以便在适当的时候触发断续信号产生器56。
接着参考图5,其中显示本发明软件保护装置的断续信号产生装置56的一实例。图5中所显示的断续信号产生装置56是以一个三位计数器(3-bit counter)70为基础,以一个脉冲信号CK71驱动,并在其三个输出位Q0、Q1与Q2端再连接一个与逻辑门,例如利用一个三输入端的与逻辑门92加以逻辑运算,其输出信号90便可以驱动图2或图3中的NMOS或PMOS开关装置58。
图6为图5中的断续信号产生装置56所产生断续信号的一个例子。
当然,熟悉本领域的人士皆可以了解,逻辑门92亦可以为其它任何适当的逻辑电路,例如一个三输入的或门,或更为复杂的逻辑门组合。并且,三位计数器70亦可以由其它的合适数值产生装置来取代,诸如一个随机数产生器,后者可以获得更高的随机码保障程度。
以上是以电视游戏机系统为例进行说明了本发明的软件保护方法及装置,然熟悉此技术者应可理解,本发明的内容亦同样可以适用于其它所有需要保护的软件应用领域之中。
权利要求
1.一种保护软件的装置,用以保护存放在存储器内的软件,该保护软件的装置包括一侦测装置,用以监视至少地址总线、数据总线和控制总线之一,侦测在正常情形下不会发生的存储器存取动作;一切换装置,连接到该侦测装置,用来在该侦测装置侦测到在正常情形下不会发生的存储器存取动作时,启动下一级的信号产生装置;一信号产生装置,连接到该切换装置,用来在被该切换装置启动时,产生一断续信号,以推动下一级的电路装置;以及至少一电路装置,连接到该信号产生装置,且连接到地址总线、数据总线和控制总线的任一信号线,用来接收及根据该断续信号,将该信号线驱动至一预定电位。
2.如权利要求1所述的保护软件装置,其中该侦测装置,包含了当侦测到正常情形下不会发生的存储器存取动作时,产生一输出信号的装置。
3.如权利要求1所述的保护软件装置,其中该侦测装置,包含了用来侦测正常情形下不会发生的某些存储器地址存取动作的电路。
4.如权利要求1所述的保护软件装置,其中该侦测装置,包含了用来侦测正常情形下不会发生的某一连串的存储器地址存取动作的电路。
5.如权利要求1所述的保护软件装置,其中该切换装置,可包括一状态保持装置,用来在侦测到正常情形下不会发生的存储器存取动作时,启动该信号产生装置。
6.如权利要求1所述的保护软件装置,其中该切换装置,包括一状态保持装置,用来在侦测到正常情形下不会发生的存储器存取动作时,启动该信号产生装置,且包括一重置信号,用以停止信号产生装置。
7.如权利要求1所述的保护软件装置,其中该预定电位是一接地电位。
8.如权利要求1所述的保护软件装置,其中该预定电位是一电源电压的电位。
9.一种保护软件的方法,用以保护存放在存储器内的软件及数据的违法拷贝,防止软件数据被盗用,或在未经授权的情况下被使用,该方法包括下列步骤(a)将程序数据存放在一存储器中;(b)提供一微处理器,用来自该存储器中读取程序数据执行;(c)连接该微处理器的数据总线、地址总线和控制总线到该存储器;(d)监视至少地址总线、数据总线和控制总线之一,以便侦测在正常情形下不会发生的存储器存取动作;以及(e)当侦测到上述微处理器在正常情形下不会发生的存储器存取动作时,将地址总线、数据总线和控制总线至少一种信号线,断续地驱动至一预定电位。
10.如权利要求9所述保护软件方法,其中该步骤(e)包括下列步骤(f)提供一断续信号产生装置,用来在侦测到上述在正常情形下不会发生的存储器存取动作时,产生一断续信号;以及(g)提供至少一电路装置,连接到该断续信号产生装置,且连接到地址总线、数据总线和控制总线的任一信号线,用来接收及根据该断续信号,将该信号线驱动至该预定电位。
11.如权利要求10所述保护软件方法,其中该断续信号是由一电路产生的。
12.如权利要求10所述保护软件方法,其中该步骤(d)包括侦测某些存储器的存取动作,而这些存储器的存取是在正常情形下不会发生的动作所产生的。
13.如权利要求10所述保护软件方法,其中该步骤(d)包括侦测某些存储器地址的存取动作,而这些地址的存取在正常情形下是不会发生的。
14.如权利要求10所述保护软件方法,其中该步骤(d)包括侦测在正常情形下不会发生的某一连串的存储器地址存取动作。
15.如权利要求10所述保护软件方法,其中该步骤(d)的侦测,是由一侦测电路完成的。
16.如权利要求10所述保护软件方法,其中该步骤(f)包括一锁存步骤,用来启动该断续信号产生装置,以产生该断续信号。
17.如权利要求10所述保护软件方法,更包括一产生重置信号的步骤,用来停止该断续信号的产生。
18.如权利要求10所述保护软件方法,其中该预定电位是一接地电位。
19.如权利要求10所述保护软件方法,其中该预定电位是一电源电压的电位。
20.一种保护软件的方法,用以保护存放在只读存储器内的电视游戏软件及数据的违法拷贝,防止软件数据被盗用,该方法包括下列步骤(a)将电视游戏机软件程序数据存放在一只读存储器中;(b)提供一微处理器,用来自该只读存储器中读取电视游戏软件程序数据执行,以使影像单元产生视频信号,声音单元产生音频信号;(c)连接该微处理器的数据总线、地址总线和控制总线到该只读存储器;(d)监视至少地址总线、数据总线和控制总线之一,以便侦测在正常情形下不会发生的存储器存取动作;以及(e)当侦测到上述在正常情形下不会发生的存储器存取动作时,将地址总线、数据总线和控制总线的任一信号线,断续地驱动至一预定电位。
21.如权利要求20所述保护软件方法,其中该步骤(e)包括下列步骤(f)提供一断续信号产生装置,用来在侦测到上述在正常情形下不会发生的存储器存取动作时,产生一断续信号;以及(g)提供至少一电路装置,连接到该断续信号产生装置,且连接到地址总线、数据总线和控制总线的任一信号,用来接收及根据该断续信号,将该信号线驱动至该预定电位。
22.如权利要求21所述保护软件方法,其中该断续信号是由一电路产生的。
23.如权利要求21所述保护软件方法,其中该步骤(d)包括侦测某些存储器的存取动作,而这些存储器的存取是在正常情形下不会发生的动作所产生的。
24.如权利要求12所述保护软件方法,其中该步骤(d)包括侦测某些存储器地址的存取动作,而这些地址的存取在正常情形下是不会发生的。
25.如权利要求21所述保护软件方法,其中该步骤(d)包括侦测在正常情形下不会发生的某一连串的存储器地址存取动作。
26.如权利要求21所述保护软件方法,其中该步骤(d)的侦测,是由一侦测电路完成的。
27.如权利要求21所述保护软件方法,其中该步骤(d)包括一锁存步骤,用来启动该断续信号产生装置,以产生该断续信号。
28.如权利要求21所述保护软件方法,更包括一产生重置信号的步骤,用来停止该断续信号的产生。
29.如权利要求21所述保护软件方法,其中该预定电位是一接地电位。
30.如权利要求21所述保护软件方法,其中该预定电位是一电源电压的电位。
31.一种保护软件的方法,用以阻止利用微处理器的仿真器来读取存放在存储器内的软件及数据,防止软件数据被盗用,该方法包括下列步骤(a)将软件程序数据存放在一存储器中;(b)连接微处理器的数据总线、地址总线和控制总线到该存储器;(c)监视至少地址总线、数据总线和控制总线之一,以便侦测在正常情形下不会发生的存储器存取动作;以及(d)当侦测到上述在正常情形下不会发生的存储器存取动作时,将地址总线、数据总线和控制总线的至少一信号线,断续地驱动至一预定电位;因此,微处理器的仿真器所读取的程序数据有些是错误的。
32.如权利要求31所述保护软件方法,其中该步骤(d)包括下列步骤(e)提供一断续信号产生装置,用来在侦测到上述在正常情形下不会发生的存储器存取动作时,产生一断续信号;以及(f)提供至少一电路装置,连接到该断续信号产生装置,且连接到地址总线、数据总线和控制总线的任一信号线,用来接收及根据该断续信号,将该信号线驱动至该预定电位。
33.如权利要求32所述保护软件方法,其中该断续信号是由一电路产生的。
34.如权利要求32所述保护软件方法,其中该步骤(c)包括侦测某些存储器的存取动作,而这些存储器的存取在正常情形下是不会发生的动作所产生的。
35.如权利要求32所述保护软件方法,其中该步骤(c)包括侦测某些存储器地址的存取动作,而这些地址的存取在正常情形下是不会发生的。
36.如权利要求32所述保护软件方法,其中该步骤(c)包括侦测在正常情形下不会发生的某一连串的存储器地址存取动作。
37.如权利要求32所述保护软件方法,其中该步骤(c)的侦测,是由一侦测电路完成的。
38.如权利要求32所述保护软件方法,其中该步骤(e)包括一锁存步骤,用来启动该断续信号产生装置,以产生该断续信号。
39.如权利要求32所述保护软件方法,更包括一产生重置信号的步骤,用来停止该断续信号的产生。
40.如权利要求32所述保护软件方法,其中该预定电位是一接地电位。
41.如权利要求32所述保护软件方法,其中该预定电位是一电源电压的电位。
42.一种保护软件的方法,用以阻止利用微处理器的仿真器来读取存放在存储器内的软件及数据,防止软件数据被盗用,该方法包括下列步骤(a)将软件程序数据存放在一存储器中;(b)在该存储器的地址空间中,保留至少一地址,作为侦测微处理器的仿真器之用;(c)连接微处理器的数据总线、地址总线和控制总线到该存储器;(d)监视至少地址总线、数据总线和控制总线之一,以便侦测在正常情形下不会发生的存储器存取动作;以及(e)当侦测到上述在正常情形下不会发生的存储器存取动作时,将地址总线、数据总线和控制总线至少一信号线,断续地驱动至一预定电位;因此,微处理器的仿真器所读取的程序数据有些是错误的。
43.如权利要求42所述保护软件方法,其中该步骤(e)包括下列步骤(f)提供一断续信号产生装置,用来在侦测到上述在正常情形下不会发生的存储器存取动作时,产生一断续信号;以及(g)提供至少一电路装置,连接到该断续信号产生装置,且连接到地址总线、数据总线和控制总线的任一信号线,用来接收及根据该断续信号,将该信号驱动至该预定电位。
44.如权利要求43所述保护软件方法,其中该断续信号是由一电路产生的。
45.如权利要求43所述保护软件方法,其中该步骤(d)包括侦测某些存储器的存取动作,而这些存储器的存取在正常情形下是不会发生的动作所产生的。
46.如权利要求43所述保护软件方法,其中该步骤(d)包括侦测某些存储器地址的存取动作,而这些地址的存取在正常情形下是不会发生的。
47.如权利要求43所述保护软件方法,其中该步骤(d)包括侦测在正常情形下不会发生的某一连串的存储器地址存取动作。
48.如权利要求43所述保护软件方法,其中该步骤(d)的侦测,是由一侦测电路达成的。
49.如权利要求43所述保护软件方法,其中该步骤(f)包括一锁存步骤,用来启动该断续信号产生装置,以产生该断续信号。
50.如权利要求43所述保护软件方法,更包括一产生重置信号的步骤,用来停止该断续信号的产生。
51.如权利要求43所述保护软件方法,其中该预定电位是一接地电位。
52.如权利要求43所述保护软件方法,其中该预定电位是一电源电压的电位。
全文摘要
一种保护软件的装置及方法,其能保护存放在存储器内的软件及数据的违法拷贝,防止软件被盗用,或者在未经授权的情况下被使用。本发明利用一检查电路,侦测某一程序状态,例如为利用微处理器的仿真器(Emulator)来读出(Dump)程序数据的状态,当侦测到这一种特殊状态时,本发明会促使数据总线或地址总线发生定时或不定时的错误,使得利用微处理器的仿真器读出的程序数据中有些是错误的,完成保护软件的目的。
文档编号G06F17/00GK1123935SQ9411803
公开日1996年6月5日 申请日期1994年12月3日 优先权日1994年12月3日
发明者徐世斌 申请人:联华电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1